Përmbajtje:

Një dritë frymëmarrjeje e kontrolluar nga një mjedër Pi: 5 hapa
Një dritë frymëmarrjeje e kontrolluar nga një mjedër Pi: 5 hapa

Video: Një dritë frymëmarrjeje e kontrolluar nga një mjedër Pi: 5 hapa

Video: Një dritë frymëmarrjeje e kontrolluar nga një mjedër Pi: 5 hapa
Video: Nuk po dobësoheni dot? Ylli Merja: Ndiqni këto hapa për rënie të suksesshme në peshë 2024, Korrik
Anonim
Një dritë frymëmarrjeje e kontrolluar nga një mjedër Pi
Një dritë frymëmarrjeje e kontrolluar nga një mjedër Pi

"Drita e ushtrimit të frymëmarrjes" e përshkruar këtu është një dritë pulsuese e thjeshtë dhe relativisht e lirë që mund t'ju mbështesë në ekzekutimet tuaja të frymëmarrjes dhe t'ju ndihmojë të mbani një ritëm të vazhdueshëm të frymëmarrjes. Mund të përdoret gjithashtu p.sh. si një dritë qetësuese nate për fëmijët. Në fazën aktuale është më shumë një prototip pune.

Ju gjithashtu mund ta përdorni atë si një shembull të lirë dhe të thjeshtë për të ndërtuar për "llogaritjen fizike" me një Raspberry Pi, p.sh. për t'u përdorur si një projekt edukativ në nivelin fillestar, Këtu keni hyrje analoge (potenciometër rrotullues) dhe dixhital (buton shtytës), si dhe dalje dixhitale (LED) dhe PWM (zinxhirë LED), dhe efektet e ndryshimeve janë drejtpërdrejt të dukshme Me

Drita kalon nëpër qarqe të përsëritura të përbëra nga katër faza: një tranzicion i gjelbër (i sipërm) në të kuq (i poshtëm), një fazë vetëm e kuqe, një kalim nga e kuqe në jeshile dhe një fazë vetëm e gjelbër. Gjatësia e këtyre fazave përcaktohet nga konstante të cilat mund të modifikohen me potenciometra. Procesi mund të fillojë, ndalohet, rifillojë dhe ndalet duke shtypur butonat e shtypjes. LED janë duke treguar fazën aktuale. Bazohet në shembullin "Light Firefly" nga Pimoroni (shiko këtu). Ngjashëm me "Light Firefly" kërkon një Raspberry Pi (Zero), Pimoroni Explorer pHAT (ose HAT) dhe dy zinxhirë të lehtë IKEA SÄRDAL LED. Të mëvonshmet janë të lidhura me dy portat PMW/motorike të pHAT. Në vend që të përdor një kavanoz, unë i kam vendosur LED -et në një kornizë fotografie të IKEA -s. Unë jam përpjekur të optimizoj pak shkrimin python origjinal "drita e zjarrit", duke zbatuar një funksion opsional të sinusit për ndryshimet e shkëlqimit/ gjerësisë së pulsit dhe kam futur dy faza "të mbajtjes" midis fazave të zbehjes. Ndërsa modifikoja parametrat për të gjetur një model të lehtë që ndihet më komod, zbulova se pajisja mund të jetë e dobishme për të mbështetur një model të frymëmarrjes të përcaktuar qartë dhe qartë. Kështu, disa prej jush mund ta gjejnë këtë "Dritë Frymëmarrëse" të dobishme për meditim ose qëllime stërvitore. Duke qenë se PHAT Explorer ka katër hyrje dixhitale dhe katër analoge, është shumë e lehtë të rregullosh deri në katër parametra të ndryshëm duke përdorur potenciometra rrëshqitës ose rrotullues dhe të futësh funksionet e fillimit/rinisjes/ndalimit për dritat duke përdorur butona shtytës. Kjo do t'ju lejojë të përdorni pajisjen dhe të optimizoni parametrat sipas nevojave tuaja pa një monitor që duhet të jetë i bashkangjitur në Pi.

Për më tepër, PHAT Explorer vjen me katër dalje dixhitale, të cilat lejojnë të shtoni LED ose zile, plus dy porte 5V dhe dy Ground dhe dy porte dalëse PWM për motorë ose pajisje të ngjashme. Ju lutemi sigurohuni që po përdorni rezistorët e duhur për të zvogëluar tensionin për LED -të tuaj.

Biblioteka python e Pimoroni Explorer pHAT e bën jashtëzakonisht të thjeshtë kontrollin e të gjitha këtyre porteve I/O.

Në këtë versionet udhëzuese të pajisjes me 0, 2 dhe 4 potenciometra dhe butona janë përshkruar. Zgjidhni atë që i përshtatet nevojave tuaja.

Për të drejtuar pajisjen në mënyrë autonome, mund të përdorni ose një paketë energjie, ose kombinimin e një pimoni Pimoroni LiPo dhe një bateri LiPo, siç përshkruhet për "Firefly Light".

Versionet e përditësuara 28 Dhjetor 2018: versioni 'katër potenciometra dhe katër butona shtimi' u shtua. Dhjetor. 30: kodi për versionin 4-poti dhe u shtuan imazhe tërheqëse.

Hapi 1: Materialet e përdorura / të kërkuara

Materialet e përdorura / të kërkuara
Materialet e përdorura / të kërkuara
Materialet e përdorura / të kërkuara
Materialet e përdorura / të kërkuara
Materialet e përdorura / të kërkuara
Materialet e përdorura / të kërkuara

- Raspberry Pi Zero (4.80 GBP në Pimoroni, MB), dhe një kartë micro SD (> = 8 GB) w/ Raspian

- Pimoroni Explorer pHAT (10 GBP në Pimoroni, MB). Opsionale: një kokë me një rresht të vetëm, kabllo kërcyes

- Dritat e zinxhirit LED të IKEA SÄRDAL me 12 LED (2 x, 3.99 € secila në IKEA Gjermani), ose ndonjë zinxhir LED të ngjashëm 3-5V.- Kornizë fotografie IKEA RIBBA (13 x 18 cm, 2.49 € në IKEA Gjermani).

- Një copë shkumë PU (2 x 18 x 13.5 cm), për të mbajtur LED -të. Përndryshe, mund të përdoret shkuma stiro.

- Një copë plastike e errët (18 x 13.5 cm), që vepron si difuzor.

- Dy fletë letre transparente me ngjyrë (9 x 13.5 cm secila). Kam përdorur të kuqe dhe jeshile.

- Një copë fletë plastike e hollë, shumë e errët (18 x 13.5 cm), që vepron si ekrani i jashtëm. Kam përdorur një fletë të hollë të bardhë polikarbonat. Opsionale, për versionin e rregullueshëm:

Për të rregulluar kohën e ngritjes dhe kohëzgjatjen e rrafshnaltës, ose alternativa të tjera si shkëlqimi.- potenciometra 10, 20 ose 50 kOhm (deri në katër, kam përdorur dy 10 kOhm respektivisht katër 50 Ohm).

Si butona të fillimit/ndalimit/pauzës/rifillimit:- Shtypni butonat (deri në katër, kam përdorur katër ose dy)

Si tregues për fazat e rrethit:- LED me ngjyra dhe rezistorët e nevojshëm (do të varen nga karakteristikat e LED që do të përdorni).

  1. rreth 140 Ohm për 5.2 -> 2, 2 V (të verdhë, portokalli, të kuqe; disa LED të gjelbër),
  2. rreth 100 Ohm për 5.3 -> 3.3 V (disa jeshile; LED blu, të bardhë)

- Kabllo kërcyes dhe një dërrasë buke

Opsionale, për një version të drejtuar nga bateria:

  • Paketa e energjisë 5V Micro-USB, ose
  • Shim Pimoroni Zero LiPo dhe një bateri LiPo

Hapi 2: Lazout dhe Montimi

Lazout dhe Kuvendi
Lazout dhe Kuvendi
Lazout dhe Kuvendi
Lazout dhe Kuvendi
Lazout dhe Kuvendi
Lazout dhe Kuvendi

Mblidhni pHAT Explorer siç përshkruhet nga prodhuesi. Unë kam shtuar një kokë të vetme të rreshtit femër për lidhjen e thjeshtuar të kabllove kërcyes në portat I/O të pHATs. Vendosni Pi -in tuaj dhe instaloni bibliotekën Pimoroni për Explorer HAT/pHAT, siç përshkruhet nga Pimoroni. Fikni Pi dhe bashkojeni pHAT në Pi. Hiqni paketat e baterive nga zinxhirët LED duke prerë telat dhe kallajoni fundin e telave. Pritini dy kabllo bluzë 2x meshkuj në mes, kallajoni fundin e telave. Ngjitni kabllot e bluzave në zinxhirët LED dhe izoloni pikat e bashkimit duke përdorur ose shirit ngjitës ose tuba tkurrës. Para bashkimit, kontrolloni se cilat tela duhet të lidhen me portet plus ose tokësore dhe shënojini ato në përputhje me rrethanat. Kam përdorur tela bluzë me ngjyra të ndryshme. Pritini shkumën për të mbajtur LED, difuzorin dhe fletët e ekranit në madhësinë e duhur. Në pllakën mbajtëse LED shënoni pozicionet ku duhet të vendosen LED-et dhe krijoni vrima 3-5 mm në shkumë. Pastaj futni 24 LED në pozicionet e dhëna. Vendosni letrat me ngjyra dhe pllakat e difuzorit në pllakën LED (shiko imazhet), ato vendosin kornizën mbi paketën. Fiksoni shtresat e shkumës në kornizë, p.sh. duke përdorur shirit ngjitës. Bashkangjitni kabllot e shiritit LED në portet "motorike" të pHAT Explorer. Për versionin e rregullueshëm vendosni potenciometra, butona, LED të kontrollit (dhe/ose gumëzhitës) dhe rezistorë në dërrasën e bukës dhe lidhini ato me portat përkatëse në pHAT Explorer.

Filloni Pi tuaj dhe instaloni bibliotekat e kërkuara, siç përshkruhen në faqen e internetit të Pimoroni, pastaj drejtoni skriptin e ofruar Python 3. Nëse një nga zinxhirët LED nuk punon, mund të lidhet në drejtim të gabuar. Atëherë ju ose mund të ndryshoni lidhjet plus/minus në pHAT ose të bëni një ndryshim në program, p.sh. ndryshoni "eh.motor.one.backwards ()" në "… përpara ()".

Bashkangjitur gjeni skriptet me cilësime fikse që mund t'i ndryshoni brenda programit dhe një shembull ku mund të modifikoni disa nga cilësimet me potenciometra, dhe të filloni dhe ndaloni ciklin e dritës duke përdorur butona shtytës. Nuk duhet të jetë shumë e vështirë të rregulloni skriptet që i përshtaten modelit tuaj të "dritës së frymëmarrjes".

Hapi 3: Shkrimet Python

Biblioteka Python e Pimoroni -t për Explorer HAT/pHAT e bën jashtëzakonisht të thjeshtë adresimin e përbërësve të bashkangjitur në portat e HATs 'I/O. Dy shembuj: "eh.two.motor.backwards (80)" drejton pajisjen e lidhur me portin PWM/motor 2 me 80% intensitet maksimal në drejtim të kundërt, "eh.output.three.flash ()" lidh një LED për të dalë porta numër tre ndizet derisa të ndalet. Unë kam krijuar disa ndryshime të dritës, në thelb duke shtuar nivele në rritje të kontrollit duke shtuar deri në katër butona dhe potenciometra. Bashkangjitur gjeni një program Python të quajtur "Frymëmarrje me dritë fikse lin kozin.py "ku të katër cilësimet e parametrave duhet të modifikohen brenda programit. Për më tepër një version i quajtur "Breathing light var lin cosin.py" ku gjatësia e dy fazave të zbehjes mund të rregullohet duke përdorur dy potenciometra dhe versionin më të përpunuar "Breathing light var lin cosin3.py" për versionin me katër potenciometër dhe buton Me Programet janë të shkruara në Python 3.

Në të gjitha rastet procesi i çiklizmit mund të evokohet dhe ndalohet duke përdorur dy butona shtytës, në versionin me katër butona gjithashtu mund të ndërprisni dhe rifilloni procesin. Përveç kësaj katër LED (me ngjyra) mund të lidhen me portat dixhitale të daljes, duke treguar fazat specifike. Një cikël i pajisjes përbëhet nga katër faza:

- faza e "thithjes", ku LED -et e sipërme janë zbehur ulët dhe LED -et e ulëta rrisin intensitetin

- faza "mbaj frymën", ku LED -et e sipërme fiken dhe LED -et e poshtme vendosen në maksimum

- faza e "nxjerrjes", ku LED -të e ulëta zbehen ulët dhe LED -et e sipërme rrisin intensitetin

- faza e "qëndrimit të nxjerrë jashtë", ku LED -et e poshtëm fiken dhe LED -et e sipërme ndizen në maksimum.

Gjatësia e të katër fazave përcaktohet nga një parametër numerik individual, i cili ose mund të fiksohet në program dhe/ose mund të rregullohet duke përdorur një potenciometër.

Një parametër i pestë përcakton intensitetin maksimal. Kjo ju lejon të vendosni shkëlqimin maksimal të LED -ve, të cilat mund të jenë të përshtatshme nëse dëshironi ta përdorni si dritë nate. Përveç kësaj mund t'ju lejojë të përmirësoni procesin e zbehjes, pasi kam përshtypjen se është e vështirë të shihet një ndryshim midis intensitetit 80 dhe 100%.

Po shtoja një funksion opsional (bashkë) sinus për rritjen/uljen e shkëlqimit, pasi jep një lidhje më të qetë midis fazave. Mos ngurroni të provoni funksione të tjera. P.sh. ju mund të eliminoni pushimet dhe të përdorni dy funksione të ndryshme (komplekse) të sinusit për të dy zinxhirët LED dhe të rregulloni frekuencën dhe amplituda me potenciometra.

# Llamba "e frymëmarrjes": dy butona dhe dy versione potenciometër

# një modifikim i shembullit të zjarrfikëses për Pimoroni Explorer pHAT # këtu: rritja/ulja e sinoidit të vlerave të motorit/PWM # për funksionin linear çaktivizoni funksionin linear dhe heshtjen e kosinit # Ky version "var" lexon hyrje analoge, anashkalon cilësimet e paracaktuara # lexon hyrje dixhitale, butona për të filluar dhe ndaluar "" "për të filluar me ndezjen e Pi që mund të përdorni Cron: Cron është një program Unix që përdoret për të planifikuar punët dhe ka një funksion të përshtatshëm @reboot që ju lejon të ekzekutoni një skript sa herë që Pi -ja juaj fillon. Hapni një terminal dhe shkruani crontab -e për të redaktuar crontab -in tuaj. Shkoni deri në fund të skedarit, kaloni të gjitha rreshtat që fillojnë me #, dhe shtoni rreshtin e mëposhtëm (duke supozuar se kodi juaj është në /home/pi/firefly.py): @reboot sudo python /home/pi/filename.py & Mbyll dhe ruaj crontab-in tënd (nëse po përdor nano atëherë shtyp kontrollin-x, y dhe fut për të dalë dhe ruajtur). "" "importo kohë importo eksplorues si eh importo vlera konstante të matematikës # sinus xmax = 316 hap = 5 # gjerësi hapi, p.sh. 315/5 jep 63 hapa/cikli start_button = 0 # kjo përcakton gjendjen e një butoni të shtypur të lidhur me portën hyrëse nr 1 stop_button = 0 # kjo përcakton gjendjen e një butoni shtytës të lidhur me portën hyrëse nr 3 pauzë = = 0.02 # vendos gjatësi i ndërprerjeve brenda hapave në fazën e "thithjes", në këtë mënyrë shkallën e ngritjes dhe kohëzgjatjen pause_2 = 0.04 # vendos shkallën e ngritjes së "nxjerrjes" pauzë_3 = 1.5 # pushim midis fazave të thithjes dhe nxjerrjes (mbajeni frymën) pauzë_4 = 1.2 # pushim në fund të nxjerrjes faza (mbani frymën) max_intens = 0.9 # intensiteti maksimal/shkëlqimi max_intens_100 = 100*max_intens # e njëjtë në % # Mund të lejojë të optimizoni përshtypjen "frymëmarrëse" të LED -ve dhe të zvogëloni ndezjen. l_cosin = # listë me vlera të prejardhura nga kozinusi (100> = x> = 0) l_lin = # listë me vlera lineare (100> = x> = 0) # gjeneroni listën e funksioneve të kosinusit për i në rang (0, 316, 3): # 315 është afër Pi*100, 105 hapa # print (i) n_cosin = [(((math.cos (i/100))+1)/2)*100] #gjeneroj vlerë # print (n_cosin) l_cosin = l_cosin + n_cosin # shtoni vlerë në listën # print (l_cosin) # gjeneroni listë lineare për i në rang (100, -1, -1): # numëroni nga 100 në zero n_lin = l_lin = l_lin + n_lin # print (l_lin) # tregon një listë të mërzitshme print () print () "" Për të filluar ciklet e dritës, shtypni butonin "Start" (Input One) "" ") print () print (" "" Për të ndaluar dritën, shtypni dhe mbani butonin "Stop" (Hyrja Tre) "" ") print () # prisni derisa butoni Start të shtypet ndërsa (butoni start_ == 0): start_button = eh.input.one.read () # lexo butoni numër një eh.output.one.blink () # blink LED numër një herë. gjumë (0.5) # lexo dy herë në sekondë # ndez dritat ndërsa (butoni stop_ = 0): # lexo hyrjet analoge NJ and dhe DY, përcakto cilësimet e vendosura_1 = eh.an alog.one. set_2 = eh.analog.two.read () # përcakton ngjyrën e gjelbër -> kuqe shkallën e ngritjes pause_2 = set_2*0.02 # vlerat do të shkojnë midis 0 dhe 0.13 sekonda/hap printimi ("set_2:", set_2, " -> pauzë _2: ", pause_2) #" inhalacion "faza eh.output.one.on () # mund të drejtojë një LED ose sinjalizues" "për x në interval (len (l_lin)): fx = max_intens*l_lin [x] # kurbë lineare eh.motor.one. mbrapsht (fx) eh.motor.two.backwards (max_intens_100-fx) time.sleep (pause_1) eh.output.one.off () '' 'për x në rang (len (l_cosin)): fx = max_intens*l_cosin [x] # kurbë lineare eh.motor.one.prapa (fx) eh.motor.two.backwards (max_intens_100-fx) time.sleep (pause_1) eh.output.one.off () # kontrolloni nëse butoni Stop është shtypur stop_button = eh.input.three.read () # "Mbani frymën" pauzë në fund të fazës së thithjes eh.output.two.on () # ndizni LED dy eh.motor.one.mbrapsht (0) eh.motor.two.prapa (max_intens_100) time.sleep (pause_3) eh.output.two.off () # kontrolloni nëse butoni Stop shtypet butoni stop_button = eh.input.three.read () # "nxjerr" fazën eh.output.three.on () # ndizni LED tre "" për x në rang (len (l_lin)): fx = max_intens*l_lin [x] # kurbë lineare eh.motor.one.prapa (max_intens_100-fx) eh.motor.two.prapa (fx) koha. gjumi (pauzë_2) '' 'për x në interval (len (l_kosin)): fx = max_intens*l_cosin [x] # kurbë lineare eh.motor.one. mbrapsht (max_intens_100-fx) eh.motor.two. prapa (fx) koha.gjumë (pauzë_2) eh.output.three.off () # kontrolloni nëse butoni Stop është shtypur stop_button = eh.input.three.read () # pauzë midis fazave "nxjerr" dhe "thith" eh. output.four.on () eh.motor.one.backwards (max_intens_100) eh.motor.two.backwards (0) time.sleep (pause_4) eh.output.four.off () #check if Button Stop shtypet stop_button = eh.input.three.read () # mbyllje, kthesë e të gjitha porteve dalëse eh.motor.one.stop () eh.motor.two.stop () eh.output.one.off () eh.output.two.off () eh.output.three.off () eh.output.four.off () print () print ("Mirupafshim")

Nëse dëshironi të përdorni dritën si një pajisje më vete, p.sh. si dritë gjumi ose zgjimi, mund të shtoni një burim energjie celular në Pi dhe të filloni programin pas nisjes dhe përdorni "Cron" për ta ndezur ose fikur atë në kohë të caktuara. Si të përdorni "Cron" është përshkruar në detaje të mëdha diku tjetër.

Hapi 4: Shembuj video

Në këtë hap do të gjeni një numër videosh që tregojnë dritën nën normale (p.sh. të gjitha vlerat> 0, #1) dhe kushtet ekstreme, pasi të gjitha vlerat janë vendosur në zero (#2), duke u rritur vetëm (#3 ), dhe pa pjerrësi (#5 ).;

Hapi 5: Disa vërejtje

Ju lutemi kërkoni falje për termat, gabimet dhe gabimet e gabuara. Unë nuk jam as një folës amtare i anglishtes, as nuk kam njohuri të përpunuara në elektrikë, elektronikë ose programim. Që në të vërtetë do të thotë që unë jam duke u përpjekur të shkruaj një anglisht të mësueshëm për gjëra ku vështirë se i njoh termat e saktë në gjuhën time. Kështu, çdo sugjerim, korrigjim ose ide për përmirësim janë të mirëseardhura. H.

Recommended: