ATNEL tech-forum
https://forum.atnel.pl/

Efekt bicia serca LED
https://forum.atnel.pl/topic22841.html
Strona 1 z 2

Autor:  Tom277 [ 5 lut 2020, o 10:06 ]
Tytuł:  Efekt bicia serca LED

Po raz kolejny zwracam się do pomysłowego forum :)
Chciałbym zrobić sygnalizację dioda LED w rytm bijącego serca, niestety mino wielu prób i czasu zastanawiania się, efekt jest mizerny, wciąż wychodzi mi zwykła migająca dioda. Czy macie jakieś pomysły, podpowiedzi, może ktoś zna źródło gdzie szukać podobnego programu? Wklepując w Googl-a wyskakuje cała masa serduszek walentynkowych i innych pierdółek z diodami które po prostu migają.
Myślę, że zrobiłbym to z wykorzystaniem tablicy w której będą wartości pwm dla diody, niestety mimo wielu kombinacji z wartościami jakoś to nie działa jak serce. Poniżej przykład który "męczyłem". Oczywiście to tylko sama uproszczona obsługa pwm-a , jak tylko osiągnę zamierzony efekt wkleję do docelowego programu.

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


aaaa..... i nie, nie jest to z okazji Walentynek :lol:

Autor:  Marhef [ 5 lut 2020, o 10:29 ]
Tytuł:  Re: Efekt bicia serca LED

Efekt bicia serca widziałem w arduino w przykładzie arduino as ISP. Spróbuj tam podejrzeć, jak to jest zrobione

Autor:  micky [ 5 lut 2020, o 11:01 ]
Tytuł:  Re: Efekt bicia serca LED

Szukaj frazy "breathing led" - nie wiem czy o to Ci chodziło?

Autor:  Jarecki [ 5 lut 2020, o 11:03 ]
Tytuł:  Re: Efekt bicia serca LED

Jak masz zestaw atb i dużo wolnego czasu to możesz zrobić w ten sposób, że skonfigurujesz sobie mikrofon na atb i napiszesz program tak, aby próbkował napięcie z mikrofonu (wzmocnione przez wzmacniacz) za pomocą ADC i te próbki trzeba albo wypluć po UART-cie albo wrzucić gdzieś do RAMU.

Okres próbkowania trzeba jakoś dobrać, można zacząć np. od 10ms. Dźwięk bicia serca puścisz sobie na PC-cie.

Później jak już będziesz miał te próbki z ADC podejdziesz do tematu w drugą stronę, czyli będziesz je wrzucał jako wypełnienie PWM-a w timerze.

Według mnie fajne ćwiczenie i warte wykonania ale trzeba mieć czas żeby się w to bawić :)

------------------------ [ Dodano po: 4 minutach ]

Panie Panie...

ile masz elementów tablicy gamma_correctionR[] ?

a do jakiej wartości inkrementujesz zmienną "i" ?

i zmiejsz tego delay do 50ms :)

Autor:  Tom277 [ 5 lut 2020, o 11:48 ]
Tytuł:  Re: Efekt bicia serca LED

Jarecki oszalałeś ? :lol: to ma być prosty sygnalizator, chciałem zamiast banalnego migania diodą LED zrobić taki mały bajer, ale dziękuję za chęci, na prawdę. :)
Co do wklejonego programu to tak masz rację, być może coś tam się nie zgadza bo kombinowałem, wklejałem, usuwałem itp i mogłem coś poknocić, ale to tylko był zarys mojego "pomysłu".

micky i Marhef tak mniej więcej o to mi chodziło, dzięki serdeczne. Jeszcze tylko jakby ktoś mi powiedział jak się w tym nieszczęsnym Arduino "podgląda" ciało funkcji gdzie tego szukać. Znalazłem jeden z programów który robi fajny efekt, ale trochę mnie "onieśmielają" zmienne po przecinku do migania diodą LED :lol:
Dziękuję serdecznie koledzy.

Autor:  micky [ 5 lut 2020, o 12:27 ]
Tytuł:  Re: Efekt bicia serca LED

Wklej ten kod, może ktoś sie pokusi o analizę floatów w Arduino :)

Autor:  SylwekK [ 5 lut 2020, o 12:34 ]
Tytuł:  Re: Efekt bicia serca LED

Jak to ma być mały bajer to wcale nie potrzeba tablicy pwm ani nawet samego pwm. Wystarczy charakterystyczny dla serca rytm do migania diodą. Ja wszelkie niekonwenjonalne migania robię na talicy bitowej 1- świeci, 0 - nie świeci. Jako matryca służy zmienna 8 lub nawet 32 bitowa jeśli jest taka potrzeba. Robisz rotację takiej zmiennej i sprawdzasz stan bitu po prostu. Można uzyskać bardzo skomplikowane kombinacje migania.

Autor:  Tom277 [ 5 lut 2020, o 12:59 ]
Tytuł:  Re: Efekt bicia serca LED

SylwekK :?:
zaciekawiłeś mnie, mógłbyś coś na szybko nakreślić, tylko to co istotne? Nie do końca wiem o co Ci chodzi.

Na razie zrobiłem sobie na swoim kodzie z wykorzystaniem tablicy, coś już przypomina oczekiwany efekt, ale to jeszcze nie serce ;)

Z kodami Arduino dałem sobie spokój, choć efekt diody jest podobny do oczekiwanego to denerwują mnie sketche pisane tak rozpaśle i nadmiarowo bez jakichkolwiek hamulców nakierowanych na rozmiar kodu i jego elegancję. Za chwilę minimalnym wymaganiem będą 32 bity i 2M pamięci Flasch. Może to wyrobiona i zakorzeniona niechęć do Arduino przemawia prze zemnie.

Autor:  micky [ 5 lut 2020, o 13:28 ]
Tytuł:  Re: Efekt bicia serca LED

Przecież zawsze można kod zaadaptować. Po drugie możesz podłączyć analizator stanów logicznych i zaobserwować co jest wysyłane (albo zmniejszyc zegar i obserwować 'na oko'). A z analizatora możesz wyeksportować stany do tablicy o której pisze Sylwekk.

Autor:  Tom277 [ 5 lut 2020, o 13:55 ]
Tytuł:  Re: Efekt bicia serca LED

micky chyba trochę źle mnie zrozumiałeś. Ja po prostu nie lubię Arduino, nie dla tego, że uważam, że jest gorsze czy lepsze tylko dla tego, że w mojej ocenie uczy takiego trochę oderwania od sprzętu, programowania jak na "nieskończonej" maszynie typu PC gdzie nie muszę się kompletnie przejmować miejscem i szybkością działania programu. Mam kolegę, który "bawi" się Arduino o C nie ma pojęcia. Dla niego coś takiego jak typ float to tylko typ, wyznaje zasadę (On), że jak działa to już jest super, ale jak, to nie ważne, problem i płacz jest wtedy gdy trzeba cokolwiek pozmieniać i nie chodzi tu o modyfikację parametrów tylko o logikę działania. Wielu "Arduinowców" nazywa się programistami, ale ich pisanie kodów ogranicza się jedynie do wklejana wyszukanych sketch-y w internecie, nie mają pojęcia co i jak działa i ich to w ogóle nie interesuje. Wielkim plusem Arduino jest ogromna liczka przykładów i łatwość uruchomienia czegokolwiek, minusem jest ogłupianie, że to co istotne i ważne jest nieistotne i nieważne. Z kolegą często przekomarzamy się kto ma rację i faktem pozostaje, że On już dawno coś uruchomił a ja walczę i walczę :lol:
Przyzwyczaiłem się do Eclips-a, że najeżdżając na np funkcje mam szybki podgląd do jej ciała w IDE Arduino mam tylko nagłówki i odwołania a ciało w funkcji w myśl ideologi Arduino mnie nie obchodzi :cry:

A kolega SylwekK właśnie napisał, że nie potrzeba w ogóle żadnej tablicy a nawet pwm-a. :shock:

Autor:  Marhef [ 5 lut 2020, o 15:04 ]
Tytuł:  Re: Efekt bicia serca LED

Ech, przecież arduino jest tak prostackie, że aż łatwe. Funkcja z arduino:
Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

W C to będzie mniej więcej tak (w obsłudze przerwania od timera co 40 ms). Zmienne hbval i hbdelta deklarujesz jako statyczne (dobrze pamiętam, zmienna z dopiskiem static zapamiętuje wartość?):
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Autor:  SylwekK [ 5 lut 2020, o 16:00 ]
Tytuł:  Re: Efekt bicia serca LED

Myślałem o czymś takim:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


To właściwie cały program tylko trzeba biblioteki dołączyć i zdefiniować LED ON/OFF
Tu wykorzystałem 32 bitową zmienną, ale można nawet 8bit zrobić a jeśli jest taka potrzeba to z 32bitowej wykorzystać tylko 20 bitów (wystarczy ograniczyć licznik w ostatniej linii). Czas opóźnienia (_delay_ms) to minimalny interwał świecenia/przerwy.
Jako że lubię różne migadełka to powyższy sposób bardzo często wykorzystuje, bo daje to banalnie łatwą kreację dowolnego migania. Nic nie stoi na przeszkodzie aby matryc zrobić kilka i wybierać w zależności od potrzeb migania w programie. Oczywiście tyle i jedynek obok siebie to tyle razy dłuższy czas świecenia i analogicznie dotyczy to też przerwy.

Autor:  micky [ 5 lut 2020, o 16:29 ]
Tytuł:  Re: Efekt bicia serca LED

Widzisz, chyba mnie nie zrozumiałeś. Chodziło o to, byś wyciągnął sekwencje z tego przykładu w Arduino po hardware (dlatego pisałem o logic analyzerze - taki reverse engineering) a nie żebyś w nim kodował/poprawiał czyjś kod.

Po drugie tablica oczywiście nie jest obligatoryjna, ale jak byś chciał robić sekwencje na więcej niż 32 bity, to jak byś chciał to zrobić?

Autor:  SylwekK [ 5 lut 2020, o 17:10 ]
Tytuł:  Re: Efekt bicia serca LED

@micky, chyba pomyliłeś adresatów :) Mój powyższy program to odpowiedź na:

Tom277 napisał(a):
SylwekK
zaciekawiłeś mnie, mógłbyś coś na szybko nakreślić, tylko to co istotne? Nie do końca wiem o co Ci chodzi.


a co do tego

micky napisał(a):
jak byś chciał robić sekwencje na więcej niż 32 bity, to jak byś chciał to zrobić?


ależ to żaden problem - tablica matryc migadełek! :)
Na ten pomysł migania wpadłem dawno temu przez przypadek, bo było mi potrzeba jakiś trzy- czy cztero-mig i skojarzyło mi się z transmisją danych i tą migającą diodą przy jakimś ruterze :) Tak, to nic innego jak kolejne wysyłanie bitów... no może nie do końca całych bitów, ale informacji dokładnie tak jak ma to miejsce w typowej transmisji szeregowej.

------------------------ [ Dodano po: 3 minutach ]

Można oczywiście tablicować sobie konkretne czasy przerw czy świecenia - sposobów na miganie jest wiele, ten jednak wydaje mi się dużo prostszy i w większości wypadków najbardziej optymalny :)

Autor:  micky [ 5 lut 2020, o 17:52 ]
Tytuł:  Re: Efekt bicia serca LED

Pisałem do Tom277.

A ws tablicowania pisalem jak by to Tom277 chciał/widział rozwiązać przy ponad 32bitach bez tablicowania.

Autor:  SylwekK [ 5 lut 2020, o 18:22 ]
Tytuł:  Re: Efekt bicia serca LED

Jest jeszcze 64 bitowa zmienna ;-)

------------------------ [ Dodano po: 1 minucie ]

A nie wiem czy strukturą by tego jeszcze nie rozbudował... :)

Autor:  miki53 [ 5 lut 2020, o 20:04 ]
Tytuł:  Re: Efekt bicia serca LED

Witajcie
moim zdaniem serce można przyrównać do zwykłego generatora

to jeśli chcemy imitować jego pracę to wystarczy zastosować również generator
a raczej kilka generatorów aby było łatwiej symulować pracę serca

ja to widzę w ten sposób

mam kilka generatorów i każdego z nich ustawiam na osobne uderzenie serca
czyli dłuższe uderzenie generator nr 1
troszkę krótsze uderzenie generator nr 2
itd.
potem je puszczam po kolei i masz bicie serca a jak dodasz jeszcze mały głośnik
to będzie słychać jak serce bije

aby stworzyć wrażenie powolnego wygaszania diody wstaw równolegle z diodą jakiś
elektrolit (będzie robił jako pwm )

To tylko taki sobie pomysł nie wiem czy Ci się przyda

Autor:  mirekk36 [ 5 lut 2020, o 21:16 ]
Tytuł:  Re: Efekt bicia serca LED

SylwekK napisał(a):
Jest jeszcze 64 bitowa zmienna

ale można zastosować po prostu tablicę najzwyklejszą jak coś

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


tylko później ciut lekko przerobić logikę pobierania bajtów i dzięki temu nie trzeba sięgać po zmienną 64-bit. A można użyć dowolnej ilości bitów/bajtów.

Autor:  micky [ 5 lut 2020, o 21:39 ]
Tytuł:  Re: Efekt bicia serca LED

Do tego Mirku właśnie zmierzałem :)

Autor:  SylwekK [ 5 lut 2020, o 21:46 ]
Tytuł:  Re: Efekt bicia serca LED

Ej no, panowie! A co ja pisałem parę postów wcześniej?? :D
SylwekK napisał(a):
ależ to żaden problem - tablica matryc migadełek!

Autor:  mirekk36 [ 6 lut 2020, o 01:30 ]
Tytuł:  Re: Efekt bicia serca LED

SylwekK napisał(a):
Ej no, panowie! A co ja pisałem parę postów wcześniej?? :D
SylwekK napisał(a):
ależ to żaden problem - tablica matryc migadełek!

a ok - to przeoczyłem, ale jak zobaczyłem uint64_t to po prostu pokazałem tylko ot taką zwykłą tabliczkę. Zresztą to była bardziej podpowiedź dla autora wątku - bo ty to i tak i tak sobie poradzisz ;)

Autor:  Tom277 [ 6 lut 2020, o 07:17 ]
Tytuł:  Re: Efekt bicia serca LED

O...joj koledzy dziękuję serdecznie za wielkie zaangażowanie.

Muszę to przeanalizować bo głos zabrali HI-endowscy, co piszą skomplikowane kody jeszcze przed śniadaniem a dla mnie to trochę bardziej zawiłe i skomplikowane, potrzebuje czasu na przegryzienie waszych podpowiedzi.
Serdecznie dziękuję :)

Autor:  Marhef [ 6 lut 2020, o 11:16 ]
Tytuł:  Re: Efekt bicia serca LED

Ja tylko dodam, że propozycje podane przez kolegów wyżej, to proste, "cyfrowe" mruganie.
Autorowi (wnosząc z pierwszego postu) chodzi o rozjaśnianie/ściemnianie diody.
Podany przeze mnie przykład, chociaż z arduino (bleee), daje fajny efekt - sam przechodziłem "fascynację" arduino kilka lat temu.

A efekt arduinowego bicia serca można zobaczyć na tym filmiku (niebieska dioda) - filmik nie jest mój :)

Autor:  SylwekK [ 6 lut 2020, o 11:34 ]
Tytuł:  Re: Efekt bicia serca LED

Dziwnie miga ta niebieska dioda - bardziej jak oddychanie :)
To już chyba bardziej to by się nadawało




albo to



Niech się autor zdecyduje na konkretny efekt i do najlepszego rozwiązania wspólnie dojdziemy :)

Autor:  Marhef [ 6 lut 2020, o 11:45 ]
Tytuł:  Re: Efekt bicia serca LED

W sumie faktycznie... na swoją obronę mogę napisać tylko, że ten efekt (jak nazwa funkcji wskazuje) nazywa się... heartbeat
Mówiłem już, że arduino jest dziwne?

Autor:  micky [ 6 lut 2020, o 12:19 ]
Tytuł:  Re: Efekt bicia serca LED

Wszystko da się zrobić z tą diodą - przecież jest sterowana 1 bitem :) To co cały czas wcześniej próbuje przekazać, to to, żeby zgrać jaka sekwencja jest wysyłana na diodę i po zgrabowaniu logic analizerem wysłać to po swojemu na diodę Czyli w skrócie zrobić pattern generatora :)

Autor:  miki53 [ 6 lut 2020, o 20:06 ]
Tytuł:  Re: Efekt bicia serca LED

Witajcie
Oto moja wersja imitacji rytmu serca na jednej diodzie LED



Kod do jego wykonania najprostszy z możliwych, ale to miała być zwykła mrygałka
na jednej diodzie
To te delaje nie powinny być przeszkodą

oto kod
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Autor:  SylwekK [ 6 lut 2020, o 20:12 ]
Tytuł:  Re: Efekt bicia serca LED

Film jest prywatny, odblokuj.

Autor:  miki53 [ 6 lut 2020, o 20:49 ]
Tytuł:  Re: Efekt bicia serca LED

film powinien być już dostępny
ale jeśli coś nie jest ok to dajcie znać

Autor:  mirekk36 [ 6 lut 2020, o 21:26 ]
Tytuł:  Re: Efekt bicia serca LED

miki53 napisał(a):
ale jeśli coś nie jest ok to dajcie znać

hmmm niby taki prosty wątek ale sam z coraz większą ciekawością obserwuję efekty ;)

I racja że to co było prezentowane w kocim andruino to wygląda jak hmmmm obraz oddychania (jak to słusznie określił SylwekK) a ja dodałem - zmarłego ;)

ale później coraz lepsze efekty ;)

miki53 - NO! już DUŻO DUŻO lepiej niż andruino i na razie nie ważne delaje ;)

Strona 1 z 2 Strefa czasowa: UTC + 1
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/