Obsah:
- Krok 1: Použitý / požadovaný materiál
- Krok 2: Lazout a montáž
- Krok 3: Skripty Python
- Krok 4: Príklady videa
- Krok 5: Niektoré poznámky
Video: Dýchacie svetlo ovládané malinou Pi: 5 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:58
Tu popísané „Svetlo na dýchanie“je jednoduché a relatívne lacné pulzujúce svetlo, ktoré vás môže podporovať pri výkone pri dýchaní a pomôže vám udržať konštantný rytmus dýchania. Možno použiť aj napr. ako upokojujúce nočné svetlo pre deti. V súčasnej fáze ide skôr o funkčný prototyp.
Môžete ho použiť aj ako lacný a ľahko zostaviteľný príklad pre „fyzické výpočty“s Raspberry Pi, napr. Na použitie ako vzdelávací projekt na začiatočníckej úrovni. Tu máte analógový (otočný potenciometer) a digitálne vstupy (tlačidlo), ako aj digitálny (LED) a PWM výstup (LED reťaze) a efekty zmien sú priamo viditeľné..
Svetlo prechádza opakujúcimi sa kruhmi, ktoré pozostávajú zo štyroch fáz: zelený (horný) do červeného (dolný) prechod, fáza iba do červena, prechod z červenej do zelenej a iba zelená. Dĺžka týchto fáz je definovaná konštantami, ktoré je možné modifikovať potenciometrami. Proces je možné spustiť, pozastaviť, obnoviť a zastaviť stlačením tlačidiel. LED diódy indikujú aktuálnu fázu. Je založená na príklade „Firefly Light“od Pimoroniho (pozri tu). Podobne ako „Firefly Light“vyžaduje Raspberry Pi (nula), Pimoroni Explorer pHAT (alebo HAT) a dve svetelné reťaze LED IKEA SÄRDAL. Neskôr sú pripojené k dvom portom PMW/motora systému pHAT. Namiesto použitia nádoby som LED diódy umiestnil do rámu obrazu IKEA. Snažil som sa trochu optimalizovať pôvodný skript pythonu „svetluška“, implementoval som voliteľnú funkciu sínus pre zmeny jasu/ šírky impulzu a zaviedol dve fázy „držania“medzi fázami stmievania. Pri úprave parametrov tak, aby bol svetelný vzor príjemnejší, som zistil, že zariadenie môže podporovať veľmi jasne definovaný pravidelný dýchací vzor. Niektorí z vás preto môžu považovať toto „Dýchacie svetlo“za užitočné pri meditácii alebo výcviku. Pretože Explorer pHAT má štyri digitálne a štyri analógové vstupy, je veľmi ľahké regulovať až štyri rôzne parametre pomocou posuvných alebo otočných potenciometrov a zavádzať funkcie štart/reštart/zastavenie svetiel pomocou tlačidiel. To vám umožní používať zariadenie a optimalizovať parametre podľa vašich potrieb bez toho, aby k monitoru Pi bolo potrebné pripojiť monitor.
Explorer pHAT je navyše dodávaný so štyrmi digitálnymi výstupnými portami, ktoré umožňujú pridať diódy LED alebo bzučiaky, plus dva 5 V a dva uzemňovacie porty a dva výstupné porty PWM pre motory alebo podobné zariadenia. Uistite sa, že na zníženie napätia vašich LED diód používate správne odpory.
Pythonová knižnica Pimoroni Explorer pHAT uľahčuje ovládanie všetkých týchto I/O portov.
V tomto návode sú popísané verzie zariadenia s 0, 2 a 4 potenciometrami a tlačidlami. Vyberte si ten, ktorý vyhovuje vašim potrebám.
Na autonómne spustenie zariadenia je možné použiť buď napájací zdroj, alebo kombináciu vložky Pimoroni LiPo a batérie LiPo, ako je popísané pre „Svetlo svetlušky“.
Aktualizované verzie 28. decembra 2018: Bola pridaná verzia „štyri potenciometre a štyri tlačidlá“. Dec. 30: Bol pridaný kód pre 4-poti verziu a fritzing obrázky.
Krok 1: Použitý / požadovaný materiál
- Raspberry Pi Zero (4,80 GBP v Pimoroni, Spojené kráľovstvo) a karta micro SD (> = 8 GB) s Raspian
- Pimoroni Explorer pHAT (10 GBP v Pimoroni, Veľká Británia). Voliteľné: jednoradový záhlavie, prepojovacie káble
- LED reťazové svetlá IKEA SÄRDAL s 12 LED diódami (2 x, 3,99 € v IKEA Nemecko) alebo akákoľvek podobná 3-5V LED reťaz.- Rám obrazu IKEA RIBBA (13 x 18 cm, 2,49 € v IKEA Nemecko).
- Kúsok PU peny (2 x 18 x 13,5 cm) na uchytenie diód LED. Alternatívne môže byť použitá styro pena.
- Kus nepriehľadného plastu (18 x 13,5 cm), pôsobiaci ako difúzor.
- Dva listy farebného priehľadného papiera (každý 9 x 13,5 cm). Použil som červenú a zelenú.
- Kus tenkej, veľmi nepriehľadnej plastovej fólie (18 x 13,5 cm), ktorá slúži ako vonkajšia obrazovka. Použil som tenký biely polykarbonátový plech. Voliteľné, pre laditeľnú verziu:
Na úpravu časovania rampovania a trvania plató alebo alternatívne iných parametrov, ako je jas.- Potenciometre 10, 20 alebo 50 kOhm (až štyri, použil som dva 10 kOhm, respektíve štyri 50 ohmov).
Ako tlačidlá štart/stop/pauza/pokračovanie:- tlačidlá (až štyri, použil som štyri alebo dve)
Ako indikátory pre fázy kruhu:- Farebné LED diódy a potrebné odpory (bude závisieť od charakteristík LED, ktoré budete používať).
- asi 140 ohmov pre 5,2 -> 2, 2 V (žltá, oranžová, červená; niektoré zelené diódy LED),
- asi 100 ohmov pre 5,3 -> 3,3 V (niektoré zelené; modré, biele diódy LED)
- Prepojovacie káble a nepájivá doska
Voliteľné pre verziu poháňanú batériami:
- Napájací zdroj 5 V Micro-USB, príp
- Podložka Pimoroni Zero LiPo a batéria LiPo
Krok 2: Lazout a montáž
Prieskumník pHAT zostavte podľa pokynov výrobcu. Pridal som jednoradovú zásuvku pre zjednodušené pripojenie prepojovacích káblov k vstupno -výstupným portom pHATs. Nastavte svoj Pi a nainštalujte knižnicu Pimoroni pre Explorer HAT/pHAT, ako popisuje Pimoroni. Vypnite Pi a pripevnite pHAT na Pi. Odstráňte batérie z LED reťazcov odstrihnutím vodičov a pocínujte koniec drôtov. V strede odstrihnite dva prepojovacie káble 2x samec, koniec drôtov pocínujte. Prepojte prepojovacie káble s reťazami LED a izolovajte spájkovacie body buď lepiacou páskou alebo zmršťovacou trubicou. Pred spájkovaním skontrolujte, ktoré z drôtov musia byť pripojené k plusovým alebo uzemňovacím portom, a podľa toho ich označte. Použil som prepojovacie vodiče s rôznymi farbami. Odstrihnite penu, aby držala diódy LED, difúzor a obrazovky na príslušnú veľkosť. Na držiaku diód LED označte polohy, kde majú byť diódy LED umiestnené, a vyrazte do peny otvory 3 až 5 mm. Potom vložte 24 LED diód na dané miesta. Farebné papiere a difúzne platne položte na dosku LED (pozri obrázky), pričom rám umiestnia nad balenie. Fixujte penové vrstvy v ráme, napr. pomocou lepiacej pásky. Pripojte káble LED pásov k portom „motora“Explorer pHAT. V prípade laditeľnej verzie umiestnite potenciometre, tlačidlá, kontrolné diódy LED (a/alebo bzučiaky) a odpory na dosku a prepojte ich s príslušnými portami v programe Explorer pHAT.
Spustite svoj Pi a nainštalujte požadované knižnice, ako je popísané na webovej stránke Pimoroni, potom spustite dodaný skript Python 3. Ak jeden z LED reťazcov nefunguje, môže byť zapojený v zlom smere. Potom môžete buď zmeniť plus/mínus pripojenia na pHAT, alebo vykonať zmenu v programe, napr. zmeňte „eh.motor.one.backwards ()“na „… forwards ()“.
V prílohe nájdete skripty s pevnými nastaveniami, ktoré môžete zmeniť v programe, a príklad, kde môžete niektoré nastavenia zmeniť pomocou potenciometrov a pomocou tlačidiel spustiť a zastaviť svetelný cyklus. Úprava skriptov tak, aby zodpovedali vášmu rozloženiu „dýchajúceho svetla“, by nemalo byť príliš ťažké.
Krok 3: Skripty Python
Knižnica Pimoroni Python pre Explorer HAT/pHAT uľahčuje adresovanie komponentov pripojených k I/O portom HATs. Dva príklady: „eh.two.motor.backwards (80)“poháňa zariadenie pripojené k portu PWM/motoru 2 s maximálnou intenzitou 80% v smere dozadu, „eh.output.three.flash ()“zapája LED diódu na výstupný port číslo tri bliká, kým sa nezastaví. Vygeneroval som niekoľko variácií svetla, v zásade pridávam zvyšujúce sa úrovne ovládania pridaním až štyroch tlačidiel a potenciometrov. V prílohe nájdete program v jazyku Python s názvom „Dýchajúce svetlo, pevný lin cosin.py , kde je potrebné v programe zmeniť všetky štyri nastavenia parametrov. Navyše verzia s názvom „Dýchacie svetlo var lin cosin.py“, kde je možné dĺžku dvoch fáz stmievania nastaviť pomocou dvoch potenciometrov a najpropracovanejšia verzia „Dýchacie svetlo var lin cosin3.py“pre verziu so štyrmi potenciometrami a tlačidlami. Programy sú napísané v Pythone 3.
Proces cyklovania je možné vo všetkých prípadoch vyvolať a zastaviť pomocou dvoch tlačidiel, vo verzii so štyrmi tlačidlami môžete proces tiež prerušiť a reštartovať. K digitálnym výstupným portom je navyše možné pripojiť štyri (farebné) diódy LED, ktoré indikujú konkrétne fázy. Cyklus zariadenia pozostáva zo štyroch fáz:
- fáza „vdychovania“, kde sú horné diódy LED stlmené a spodné diódy zvyšujú intenzitu
- fáza „zadržte dych“, kde sú horné diódy LED vypnuté a spodné diódy sú nastavené na maximum
- fáza „výdych“, kde sú dolné diódy LED stlmené a horné diódy LED zvyšujú intenzitu
- fáza „zostaňte vo výdychu“, kde sú dolné diódy LED vypnuté a horné diódy LED sa rozsvietia na maximum.
Dĺžka všetkých štyroch fáz je definovaná individuálnym číselným parametrom, ktorý môže byť buď pevne v programe a/alebo môže byť nastavený pomocou potenciometra.
Piaty parameter definuje maximálnu intenzitu. Umožňuje vám nastaviť maximálny jas LED diód, čo by mohlo byť praktické, ak ho chcete použiť ako nočné svetlo. Navyše vám to môže umožniť zlepšiť proces stmievania, pretože mám dojem, že je ťažké vidieť rozdiel medzi 80 a 100% intenzitou.
Pridal som voliteľnú (ko-) sínusovú funkciu na zvýšenie/zníženie jasu, pretože poskytuje plynulejšie prepojenie medzi fázami. Neváhajte vyskúšať ďalšie funkcie. Napr. môžete eliminovať prestávky a používať dve rôzne (komplexné) sínusové funkcie pre oba reťazce LED a frekvenciu a amplitúdu upravovať potenciometrami.
# „Dýchacia“lampa: verzia s dvoma tlačidlami a dvoma potenciometrami
# modifikácia príkladu svetlušky pre Pimoroni Explorer pHAT # tu: sinoidové zvýšenie/zníženie hodnôt motora/PWM # pre lineárnu funkciu zrušiť stlmenie lineárnej a stlmiť kosinovú funkciu # Táto verzia „var“číta analógové vstupy, prepíše preddefinované nastavenia # číta digitálny vstup, tlačidlá na spustenie a zastavenie „““spustenia po zapnutí Pi môžete použiť Cron: Cron je unixový program, ktorý sa používa na plánovanie úloh, a má praktickú funkciu @reboot, ktorá vám umožňuje spustiť skript vždy, keď sa spustí váš Pi. Otvorte terminál a zadajte crontab -e, aby ste upravili crontab. Prejdite úplne do spodnej časti súboru, za všetky riadky, ktoré začínajú #, a pridajte nasledujúci riadok (za predpokladu, že váš kód je na /home/pi/firefly.py): @reboot sudo python /home/pi/filename.py & Zatvorte a uložte svoj crontab (ak používate nano, stlačením klávesu control-x, y a Enter ukončíte a uložíte). "" "čas importu prieskumník, ktorý importuje napríklad matematické konštanty #sinus xmax = 316 krokov = 5 # šírka kroku, napr. 315/5 dáva 63 krokov/cyklus štart_button = 0 # toto definuje stav tlačidla pripojeného k vstupnému portu č. 1 stop_button = 0 # definuje stav tlačidla pripojeného k vstupnému portu č. 3 pause_1 = 0,02 # nastavuje dĺžku prestávok v krokoch vo fáze „nádychu“, čím sa zvýši rýchlosť a trvanie pauza_2 = 0,04 # nastaví sa rýchlosť výdychu „výdychu“pauza_3 = 1,5 # prestávka medzi fázami nádychu a výdychu (vdychujte) pauza_4 = 1,2 # prestávka na konci výdychu fáza (vydychujte) max_intens = 0,9 # maximálna intenzita/jas max_intens_100 = 100*max_intens # rovnaké v % # Môže umožniť optimalizáciu „dýchajúceho“dojmu z LED diód a obmedzenie blikania. l_cosin = # zoznam s hodnotami odvodenými z kosinu (100> = x> = 0) l_lin = # zoznam s lineárnymi hodnotami (100> = x> = 0) # vygeneruje zoznam funkcií cosinus pre i v rozsahu (0, 316, 3): # 315 sa blíži k Pi*100, 105 krokov # print (i) n_cosin = [(((math.cos (i/100))+1)/2)*100] #generate value # print (n_cosin) l_cosin = l_cosin + n_cosin #pridať hodnotu do zoznamu # print (l_cosin) # vygenerovať lineárny zoznam pre i v rozsahu (100, -1, -1): # odpočítavať od 100 do nuly n_lin = l_lin = l_lin + n_lin # print (l_lin) # ukazuje nudný zoznam print () print ("" "Ak chcete spustiť svetelné cykly, stlačte tlačidlo" Štart "(zadanie jedného)" "") print () tlač ("" "Ak chcete zastaviť kontrolka, stlačte a podržte tlačidlo „Stop“(vstup tri) „““) vytlačte () # počkajte, kým sa tlačidlo Štart nestlačí, kým (start_button == 0): start_button = eh.input.one.read () # čítať tlačidlo číslo jedna eh.output.one.blink () # bliknutie LED číslo jedenkrát. spánok (0,5) # čítanie dvakrát za sekundu # spustenie svieti, kým (stop_button == 0): # čítanie analógových vstupov JEDEN a DVA, definovanie nastavení set_1 = eh.an alog.one.read () # definuje červeno-> zelenú rýchlosť pauzy pauza_1 = set_1*0,02 # hodnoty sa budú pohybovať od 0 do 0,13 s/kroková tlač ("set_1:", set_1, " -> pause _1:", pause_1) set_2 = eh.analog.two.read () # definuje zelenú -> červená rýchlosť rampovania pauza_2 = set_2*0,02 # hodnoty sa budú pohybovať od 0 do 0,13 s/kroková tlač ("set_2:", set_2, " -> pauza _2: ", pause_2) #" inhalačná "fáza eh.output.one.on () # môže poháňať LED alebo bzučiak '' 'pre x v rozsahu (len (l_lin)): fx = max_intens*l_lin [x] # lineárna krivka eh.motor.one.backwards (fx) eh.motor.two.backwards (max_intens_100-fx) time.sleep (pause_1) eh.output.one.off () '' 'for x in range (len (l_cosin)): fx = max_intens*l_cosin [x] # lineárna krivka eh.motor.one.backwards (fx) eh.motor.two.backwards (max_intens_100-fx) time.sleep (pause_1) eh.output.one.off () # skontrolujte, či je stlačené tlačidlo Stop stop_button = eh.input.three.read () # pauza „Zadržte dych“na konci inhalačnej fázy eh.output.two.on () # zapnite LED dve eh.motor.one.zad (0) eh.motor.two.zad () max_intens_100) time.sleep (pause_3) eh.output.two.off () #check if the Stop Button is printed stop_button = eh.input.three.read () # "dych" fáza eh.output.three.on () # zapnite LED tri '' 'pre x v rozsahu (len (l_lin)): fx = max_intens*l_lin [x] # lineárna krivka eh.motor.one.backwards (max_intens_100-fx) eh.motor.two.backwards (fx) time.sleep (pause_2) '' 'pre x v rozsahu (len (l_cosin)): fx = max_intens*l_cosin [x] # lineárna krivka eh.motor.one.backwards (max_intens_100-fx) eh.motor.two. dozadu (fx) time.sleep (pause_2) eh.output.three.off () #kontrolovať, či je stlačené tlačidlo Stop stop_button = eh.input.three.read () # pauza medzi fázami „výdych“a „vdýchnutie“eh. output.four.on () eh.motor.one.wardswards (max_intens_100) eh.motor.two.backwards (0) time.sleep (pause_4) eh.output.four.off () #check if the Stop Button is printed stop_button = eh.input.three.read () # vypnutie, vypnutie všetkých výstupných portov eh.motor.one.stop () eh.motor.two.stop () eh.output.one.off () eh.output.two.off () eh.output.three.off () eh.output.four.off () tlač () vytlačiť („Zbohom“)
Ak chcete použiť svetlo ako samostatné zariadenie, napr. ako svetlo na spanie alebo prebúdzanie môžete do Pi pridať mobilný zdroj energie a spustiť program po zavedení a pomocou „Cron“ho v daný čas zapnúť alebo vypnúť. Ako používať „Cron“bolo podrobne popísané inde.
Krok 4: Príklady videa
V tomto kroku nájdete množstvo videí, ktoré ukazujú svetlo za normálnych (tj. Všetkých hodnôt> 0, #1) a extrémnych podmienok, pretože všetky hodnoty sú nastavené na nulu (#2), iba rampovanie (#3 a #4), a bez rampovania (č. 5 a č. 6).
Krok 5: Niektoré poznámky
Ospravedlňte prosím všetky nesprávne výrazy, preklepy a chyby. Nie som ani rodený hovorca angličtiny, ani nemám vypracované znalosti z elektriky, elektroniky alebo programovania. Čo vlastne znamená, že sa pokúšam napísať návod v angličtine o veciach, v ktorých vo svojom vlastnom jazyku takmer nepoznám správne výrazy. Vítané sú teda všetky rady, opravy alebo nápady na zlepšenie. H.
Odporúča:
Svetlo v miestnosti ovládané pomocou PIR senzora a Arduina: 6 krokov
Svetlo v miestnosti ovládané pomocou senzora PIR a Arduino: Dnes budeme ovládať vaše osvetlenie miestnosti pomocou detekcie pohybu pomocou senzora pohybu Arduino PIR. Realizácia tohto projektu je veľmi zábavná a má veľmi praktické využitie vo vašom dome. Vďaka tomuto projektu vám môže ušetriť aj peniaze. Ju
Koktejlový automat s malinou GUI: 7 krokov (s obrázkami)
Koktejlový automat s malinovým grafickým rozhraním: Máte radi technológie a večierky? Tento projekt je ako stvorený! V tomto návode vytvoríme automatizovaný kokteilový stroj s grafickým rozhraním. Všetko ovládané malinou! EDIT: odkaz som tu urobil jednoduchšie a lacnejšie
Diaľkovo ovládané auto - ovládané pomocou bezdrôtového ovládača Xbox 360: 5 krokov
Diaľkovo ovládané auto - ovládané pomocou bezdrôtového ovládača Xbox 360: Toto sú pokyny na zostavenie vlastného diaľkovo ovládaného auta ovládaného pomocou bezdrôtového ovládača Xbox 360
Stroj na nevyžiadanú poštu poháňaný malinou Pi: 15 krokov (s obrázkami)
Stroj na nevyžiadanú poštu poháňaný Raspberry Pi: Tento návod vám ukáže, ako si vyrobiť robotický bubon na Raspberry Pi. Je to skutočne zábavný, kreatívny a interaktívny projekt. Ukážem vám, ako zabezpečiť vnútorné fungovanie, ale skutočné bubny budú na vás, takže vám
Fotografovanie s malinou Pi: 9 krokov
Fotografovanie s Raspberry Pi: Ako fotografovať s Raspberry Pi