Satura rādītājs:

Elpošanas gaisma, ko kontrolē Raspberry Pi: 5 soļi
Elpošanas gaisma, ko kontrolē Raspberry Pi: 5 soļi

Video: Elpošanas gaisma, ko kontrolē Raspberry Pi: 5 soļi

Video: Elpošanas gaisma, ko kontrolē Raspberry Pi: 5 soļi
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, Jūlijs
Anonim
Elpošanas gaisma, ko kontrolē Raspberry Pi
Elpošanas gaisma, ko kontrolē Raspberry Pi

Šeit aprakstītā "elpošanas vingrinājumu gaisma" ir vienkārša un salīdzinoši lēta pulsējoša gaisma, kas var atbalstīt jūsu elpošanas izpildi un palīdzēt uzturēt nemainīgu elpošanas ritmu. To var izmantot arī, piem. kā nomierinoša nakts gaisma bērniem. Pašreizējā posmā tas ir vairāk strādājošs prototips.

Varat to izmantot arī kā lētu un vienkārši veidojamu piemēru "fiziskai skaitļošanai" ar Raspberry Pi, piem. izmantojams kā izglītojošs projekts iesācēju līmenī, šeit jums ir analogās (rotējošais potenciometrs) un digitālās ieejas (spiedpoga), kā arī digitālā (LED) un PWM izeja (LED ķēdes), un izmaiņu sekas ir tieši redzamas.

Gaisma iet cauri atkārtotiem apļiem, kas sastāv no četrām fāzēm: pāreja no zaļas (augšējā) uz sarkano (apakšējā), tikai sarkanā fāze, pāreja no sarkanā uz zaļo un tikai zaļā fāze. Šo fāžu garumu nosaka konstantes, kuras var mainīt ar potenciometriem. Procesu var sākt, apturēt, atsākt un apturēt, nospiežot spiedpogas. Gaismas diodes norāda pašreizējo fāzi. Tas ir balstīts uz Pimoroni “Firefly Light” piemēru (skatīt šeit). Līdzīgi kā “Firefly Light”, tam ir nepieciešams Raspberry Pi (Zero), Pimoroni Explorer pHAT (vai HAT) un divas IKEA SÄRDAL LED gaismas ķēdes. Pēdējie ir savienoti ar diviem pHAT PMW/motora portiem. Tā vietā, lai izmantotu burku, es ievietoju gaismas diodes IKEA attēlu rāmī. Es esmu mēģinājis nedaudz optimizēt sākotnējo “firefly light” python skriptu, ieviešot papildu sinusa funkciju spilgtuma/ impulsa platuma izmaiņām, un esmu ieviesis divas “aizturēšanas” fāzes starp aptumšošanas fāzēm. Mainot parametrus, lai atrastu ērtāku gaismas modeli, es atklāju, ka ierīce var palīdzēt atbalstīt ļoti skaidri definētu, regulāru elpošanas modeli. Tādējādi dažiem no jums šī “elpošanas gaisma” var noderēt meditācijas vai apmācības nolūkos. Tā kā Explorer pHAT ir četras digitālās un četras analogās ieejas, ir ļoti viegli regulēt līdz četriem dažādiem parametriem, izmantojot bīdāmos vai rotējošos potenciometrus, kā arī ieviest gaismas iedarbināšanas/restartēšanas/apturēšanas funkcijas, izmantojot spiedpogas. Tas ļaus jums izmantot ierīci un optimizēt parametrus savām vajadzībām bez monitora pievienošanas Pi.

Turklāt Explorer pHAT ir aprīkots ar četriem digitālajiem izejas portiem, kas ļauj pievienot gaismas diodes vai skaņas signālus, kā arī divus 5V un divus zemējuma portus un divus PWM izejas portus motoriem vai līdzīgām ierīcēm. Lūdzu, pārliecinieties, vai izmantojat pareizos rezistorus, lai samazinātu gaismas diodes spriegumu.

Pimoroni Explorer pHAT python bibliotēka ļauj ārkārtīgi vienkārši kontrolēt visus šos I/O portus.

Šajā instrukcijā ir aprakstītas ierīces versijas ar 0, 2 un 4 potenciometriem un pogām. Izvēlieties to, kas atbilst jūsu vajadzībām.

Lai ierīci darbinātu autonomi, var izmantot vai nu barošanas bloku, vai arī Pimoroni LiPo starpliku un LiPo akumulatoru kombināciju, kā aprakstīts "Firefly Light".

Atjauninātās versijas, 2018. gada 28. decembris: pievienota versija “četri potenciometri un četras spiedpogas”. 30: pievienots 4-poti versijas kods un frizējoši attēli.

1. darbība. Izmantotie / nepieciešamie materiāli

Izmantotie / nepieciešamie materiāli
Izmantotie / nepieciešamie materiāli
Izmantotie / nepieciešamie materiāli
Izmantotie / nepieciešamie materiāli
Izmantotie / nepieciešamie materiāli
Izmantotie / nepieciešamie materiāli

- Raspberry Pi Zero (4,80 GBP Pimoroni, Apvienotā Karaliste) un micro SD karte (> = 8 GB) ar Raspian

- Pimoroni Explorer pHAT (10 GBP Pimoroni, Lielbritānija). Pēc izvēles: vienas rindas galvene, džemperu kabeļi

- IKEA SÄRDAL LED ķēdes gaismas ar 12 gaismas diodēm (2 x, 3,99 € katra IKEA Vācijā) vai jebkura līdzīga 3-5 V LED ķēde.- IKEA RIBBA attēla rāmis (13 x 18 cm, 2,49 € IKEA Vācijā).

- PU putu gabals (2 x 18 x 13,5 cm), lai turētu gaismas diodes. Alternatīvi var izmantot styro putas.

- necaurspīdīgas plastmasas gabals (18 x 13,5 cm), kas darbojas kā izkliedētājs.

- Divas krāsaina caurspīdīga papīra lapas (katra 9 x 13,5 cm). Es izmantoju sarkanu un zaļu.

- plānas, ļoti necaurspīdīgas plastmasas loksnes gabals (18 x 13,5 cm), kas darbojas kā ārējais ekrāns. Es izmantoju plānu baltu polikarbonāta loksni. Pēc izvēles, regulējamai versijai:

Lai pielāgotu nobīdes laiku un plato ilgumu vai citus parametrus, piemēram, spilgtumu.- 10, 20 vai 50 kOhm potenciometri (līdz četriem, es izmantoju divus 10 kOhm attiecīgi četrus 50 omus).

Kā sākuma/apturēšanas/pauzes/atsākšanas pogas:- spiedpogas (līdz četrām, es izmantoju četras vai divas)

Kā apļa fāžu indikatori:- krāsainas gaismas diodes un nepieciešamie rezistori (būs atkarīgs no izmantoto gaismas diodes īpašībām).

  1. aptuveni 140 omi pie 5,2 -> 2, 2 V (dzeltena, oranža, sarkana; dažas zaļas gaismas diodes),
  2. aptuveni 100 omi pie 5,3 -> 3,3 V (dažas zaļas; zilas, baltas gaismas diodes)

- Jumper kabeļi un maizes dēlis

Pēc izvēles, ar akumulatoru darbināmai versijai:

  • 5V Micro-USB barošanas bloks vai
  • Pimoroni Zero LiPo starplikas un LiPo akumulators

2. solis: Lazout un montāža

Lazout un montāža
Lazout un montāža
Lazout un montāža
Lazout un montāža
Lazout un montāža
Lazout un montāža

Salieciet Explorer pHAT, kā aprakstījis ražotājs. Esmu pievienojis vienas rindas sieviešu galveni, lai vienkāršotu savienojuma kabeļu pievienošanu pHAT I/O portiem. Iestatiet savu Pi un instalējiet Pimoroni bibliotēku Explorer HAT/pHAT, kā aprakstījis Pimoroni. Izslēdziet Pi un pievienojiet pHAT Pi. Izņemiet akumulatorus no LED ķēdēm, nogriežot vadus un tinot vadu galu. Izgrieziet divus 2x vīriešu savienojuma kabeļus vidū, tiniet vadu galu. Lodējiet savienojuma kabeļus ar LED ķēdēm un izolējiet lodēšanas punktus, izmantojot līmlenti vai saraušanās cauruli. Pirms lodēšanas pārbaudiet, kurš no vadiem jāpievieno plus vai zemējuma portiem, un attiecīgi atzīmējiet tos. Es izmantoju džemperu vadus ar dažādām krāsām. Izgrieziet putas, lai gaismas diodes, izkliedētājs un ekrāna loksnes būtu atbilstošā izmērā. Uz gaismas diodes turēšanas plāksnes atzīmējiet vietas, kur gaismas diodes jāievieto, un ieduriet putās 3-5 mm caurumus. Pēc tam ievietojiet 24 gaismas diodes norādītajās vietās. Novietojiet krāsaino papīru un difuzora plāksnes uz LED plāksnes (skatiet attēlus), tās novieto rāmi virs iepakojuma. Piestipriniet putu slāņus rāmī, piem. izmantojot līmlenti. Pievienojiet LED sloksnes kabeļus Explorer pHAT “motora” portiem. Noskaņojamajai versijai novietojiet potenciometrus, spiedpogas, vadības gaismas diodes (un/vai skaņas signālus) un rezistorus uz maizes dēļa un savienojiet tos ar atbilstošajiem portiem Explorer pHAT.

Sāciet savu Pi un instalējiet nepieciešamās bibliotēkas, kā aprakstīts Pimoroni vietnē, un pēc tam palaidiet piedāvāto Python 3 skriptu. Ja viena no LED ķēdēm nedarbojas, tā var būt pievienota nepareizā virzienā. Tad jūs varat vai nu mainīt plus/mīnus savienojumus pHAT, vai veikt izmaiņas programmā, piem. mainiet “eh.motor.one.backwards ()” uz “… uz priekšu ()”.

Pielikumā atrodami skripti ar fiksētiem iestatījumiem, kurus varat mainīt programmas ietvaros, un piemērs, kurā var mainīt dažus iestatījumus ar potenciometriem, kā arī sākt un pārtraukt gaismas ciklu, izmantojot spiedpogas. Nevajadzētu būt pārāk grūti pielāgot skriptus atbilstoši jūsu “elpošanas gaismas” izkārtojumam.

3. darbība: Python skripti

Pimoroni Python bibliotēka pārlūkprogrammai Explorer HAT/pHAT padara ārkārtīgi vienkāršu HATs I/O portiem pievienoto komponentu adresēšanu. Divi piemēri: "eh.two.motor.backwards (80)" vada ierīci, kas pievienota PWM/motora portam 2 ar 80% maksimālo intensitāti atpakaļgaitā, "eh.output.three.flash ()" savieno LED lai izvadītu trešā porta zibspuldzi, līdz tā tiek apturēta. Esmu ģenerējis dažas gaismas variācijas, būtībā pievienojot arvien lielāku vadības līmeni, pievienojot līdz četrām spiedpogām un potenciometriem. Pievienots, jūs atradīsit Python programmu ar nosaukumu "Elpošanas gaismas fiksētā līnija.py ", kur programmā ir jāmaina visi četri parametru iestatījumi. Turklāt versija ar nosaukumu "Breathing light var lin cosin.py", kurā divu aptumšošanas fāžu garumu var regulēt, izmantojot divus potenciometrus, un vismodernāko versiju "Breathing light var lin cosin3.py" četru potenciometru un spiedpogu versijai.. Programmas ir rakstītas Python 3.

Visos gadījumos riteņbraukšanas procesu var izsaukt un apturēt, izmantojot divas spiedpogas; četru pogu versijā jūs varat arī pārtraukt un atsākt procesu. Turklāt digitālās izejas portiem var pievienot četras (krāsainas) gaismas diodes, norādot konkrētās fāzes. Ierīces cikls sastāv no četrām fāzēm:

- "ieelpošanas" fāze, kurā augšējās gaismas diodes ir vāji aptumšotas un apakšējās gaismas diodes palielina intensitāti

- "aizturiet elpu" fāze, kurā augšējās gaismas diodes ir izslēgtas un apakšējās gaismas diodes ir iestatītas maksimāli

- "izelpas" fāze, kad apakšējās gaismas diodes ir vāji aptumšotas un augšējās gaismas diodes palielina intensitāti

- "palieciet izelpā" fāze, kad apakšējās gaismas diodes ir izslēgtas un augšējās gaismas diodes iedegas maksimāli.

Visu četru fāžu garumu nosaka individuāls skaitlisks parametrs, kas programmā var tikt fiksēts un/vai pielāgots, izmantojot potenciometru.

Piektais parametrs nosaka maksimālo intensitāti. Tas ļauj iestatīt maksimālo gaismas diožu spilgtumu, kas varētu būt ērti, ja vēlaties to izmantot kā naktslampiņu. Turklāt tas var ļaut jums uzlabot aptumšošanas procesu, jo man ir radies iespaids, ka ir grūti saskatīt atšķirību starp 80 un 100% intensitāti.

Es pievienoju papildu (blakus) sinusa funkciju spilgtuma palielināšanai/samazināšanai, jo tas nodrošina vienmērīgāku savienojumu starp fāzēm. Jūtieties brīvi izmēģināt citas funkcijas. Piem. Jūs varat novērst pārtraukumus un izmantot divas dažādas (sarežģītas) sinusa funkcijas abām LED ķēdēm un regulēt frekvenci un amplitūdu ar potenciometriem.

# "Elpošanas" lampa: divu pogu un divu potenciometru versija

# Fireim piemēra modifikācija Pimoroni Explorer pHAT # šeit: motora/PWM vērtību sinoīds palielinājums/samazinājums # lineārai funkcijai, lai izslēgtu lineāro un izslēgtu kosinuma funkciju # Šī versija "var" nolasa analogās ieejas, ignorē iepriekš definētos iestatījumus # lasa digitālā ieeja, pogas, lai sāktu un apturētu "" ", lai sāktu, ieslēdzot Pi, jūs varat izmantot Cron: Cron ir Unix programma, ko izmanto, lai ieplānotu darbus, un tai ir ērta funkcija @reboot, kas ļauj palaist skriptu ikreiz, kad sāk darboties Pi. Atveriet termināli un ierakstiet crontab -e, lai rediģētu crontab. Ritiniet līdz faila apakšai, aiz visām rindām, kas sākas ar #, un pievienojiet šādu rindu (pieņemot, ka jūsu kods ir /home/pi/firefly.py): @reboot sudo python /home/pi/filename.py & Aizveriet un saglabājiet crontab (ja izmantojat nano, nospiediet taustiņu control-x, y un ievadiet, lai izietu un saglabātu). "" "importēšanas laika importēšanas pārlūks kā eh importēt matemātikas konstantas vērtības #sinus xmax = 316 solis = 5 # soļa platums, piem. 315/5 dod 63 soļus/cikla start_button = 0 # tas nosaka spiedpogu stāvokli, kas savienota ar ievades portu Nr. 1 stop_button = 0 # tas nosaka spiedpogu, kas savienota ar ievades portu Nr. 3 pauze_1 = 0,02 # nosaka garumu pārtraukumu pa posmiem "ieelpošanas" fāzē, tādējādi palielinot pauzes ātrumu un ilgumu; fāze (izelpot) max_intens = 0.9 # maksimālā intensitāte/spilgtums max_intens_100 = 100*max_intens # tas pats % # Var ļaut optimizēt gaismas diodes "elpošanas" iespaidu un samazināt mirgošanu. l_cosin = # saraksts ar cosinus atvasinātām vērtībām (100> = x> = 0) l_lin = # saraksts ar lineārām vērtībām (100> = x> = 0) # ģenerē cosinus funkciju sarakstu i diapazonā (0, 316, 3): # 315 ir tuvu Pi*100, 105 soļi # print (i) n_cosin = [(((math.cos (i/100))+1)/2)*100] #generate value # print (n_cosin) l_cosin = l_cosin + n_cosin # pievienot vērtību sarakstam # print (l_cosin) # ģenerēt lineāru sarakstu i diapazonā (100, -1, -1): # skaitīt atpakaļ no 100 līdz nullei n_lin = l_lin = l_lin + n_lin # print (l_lin) # rāda garlaicīgu sarakstu print () print ("" "Lai sāktu gaismas ciklus, nospiediet pogu" Start "(Sākt vienu)" "") print () print ("" "Lai apturētu gaismu, nospiediet un turiet pogu "Apturēt" (trešā ievade) "" ") print () # pagaidiet, līdz tiek nospiesta poga Sākt, kamēr (start_button == 0): start_button = eh.input.one.read () # read poga numur viens eh.output.one.blink () # mirgo vienreiz LED indikators. miega režīmā (0.5) # divreiz sekundē nolasīt # palaist, kamēr (stop_button == 0): # lasīt analogās ieejas VIENU un DIVI, definēt iestatījumus = eh.an alog.one.read () # definē sarkano -> zaļo ramping rate pause_1 = set_1*0.02 # vērtības būs robežās no 0 līdz 0.13 sec/drukas solis ("set_1:", set_1, " -> pause _1:", pause_1) set_2 = eh.analog.two.read () # definē zaļo -> sarkano nobīdes ātrumu pauze_2 = set_2*0.02 # vērtības būs robežās no 0 līdz 0,13 sekundēm drukāt ("set_2:", set_2, " -> pauze _2: ", pause_2) #" ieelpošanas "fāze eh.output.one.on () # var vadīt gaismas diodi vai skaņas signālu '' 'x diapazonā (len (l_lin)): fx = max_intens*l_lin [x] # lineāra līkne eh.motor.one.backwards (fx) eh.motor.two.backwards (max_intens_100-fx) time.sleep (pause_1) eh.output.one.off () "" x diapazonā (len (l_cosin)): fx = max_intens*l_cosin [x] # lineāra līkne eh.motor.one.backwards (fx) eh.motor.two.backwards (max_intens_100-fx) time.sleep (pause_1) eh.output.one.off () # pārbaudiet, vai ir nospiesta apturēšanas poga..atpakaļ (0) eh.motor.two.backwards (maks. ieslēdziet LED trīs collas x diapazonā (len (l_lin)): fx = max_intens*l_lin [x] # lineāra līkne eh.motor.one.backwards (max_intens_100-fx) eh.motor.two.backwards (fx) time.sleep (pause_2) '' 'x diapazonā (len (l_cosin)): fx = max_intens*l_cosin [x] # lineāra līkne eh.motor.one.backwards (max_intens_100-fx) eh.motor.two. atpakaļ (fx) time.sleep (pauze_2) eh.output.three.off () #pārbaudiet, vai tiek nospiesta Stop poga stop_button = eh.input.three.read () # pauze starp "izelpas" un "ieelpas" fāzēm eh. output.four.on () eh.motor.one.backwards (max_intens_100) eh.motor.two.backward (0) time.sleep (pause_4) eh.output.four.off () #pārbaudiet, vai Stop poga ir nospiesta stop_button = eh.input.three.read () # shutdown, visu izejas portu pagrieziens eh.motor.one.stop () eh.motor.two.stop () eh.output.one.off () eh.output.two. off () eh.output.three.off () eh.output.four.off () drukāt () drukāt ("Bye bye")

Ja vēlaties izmantot gaismu kā atsevišķu ierīci, piem. kā miega vai modināšanas gaismu, jūs varat pievienot mobilo barošanas avotu Pi un sākt programmu pēc palaišanas un izmantot "Cron", lai to ieslēgtu vai izslēgtu noteiktā laikā. Kā lietot "Cron", ir sīki aprakstīts citur.

4. darbība. Video piemēri

Šajā solī jūs atradīsit vairākus videoklipus, kuros redzama gaisma normālos (ti, visas vērtības> 0, #1) un ekstremālos apstākļos, jo visas vērtības ir iestatītas uz nulli (#2), tikai rampas (#3 un #4), un bez rampas (#5 ).;

5. solis: dažas piezīmes

Lūdzu, atvainojiet par nepareiziem noteikumiem, drukas kļūdām un kļūdām. Es neesmu angļu valodas dzimtā valoda, kā arī man nav padziļinātu zināšanu par elektriku, elektroniku vai programmēšanu. Kas patiesībā nozīmē, ka es cenšos uzrakstīt pamācību angļu valodā par lietām, kurās es diez vai zinu pareizos terminus savā valodā. Tādējādi visi ieteikumi, labojumi vai idejas uzlabošanai ir apsveicami. H

Ieteicams: