Orodha ya maudhui:

Taa ya Kupumua inayodhibitiwa na Raspberry Pi: Hatua 5
Taa ya Kupumua inayodhibitiwa na Raspberry Pi: Hatua 5

Video: Taa ya Kupumua inayodhibitiwa na Raspberry Pi: Hatua 5

Video: Taa ya Kupumua inayodhibitiwa na Raspberry Pi: Hatua 5
Video: Cheki jama alivyo paa na ndege ya kichawi utashangaa 2024, Julai
Anonim
Taa ya Kupumua inayodhibitiwa na Raspberry Pi
Taa ya Kupumua inayodhibitiwa na Raspberry Pi

"Taa ya Zoezi la Kupumua" iliyoelezewa hapa ni taa rahisi na ya bei rahisi inayoweza kukusaidia katika kupumua kwako na kukusaidia kuweka mdundo wa kupumua mara kwa mara. Inaweza pia kutumika k.m. kama taa nyepesi ya usiku kwa watoto. Katika hatua ya sasa ni mfano zaidi wa kazi.

Unaweza pia kuitumia kama gharama nafuu na rahisi kujenga mfano wa "kompyuta ya mwili" na Raspberry Pi, n.k. kutumika kama mradi wa elimu kwa kiwango cha Kompyuta, Hapa una analog (potentiometer ya rotary) na pembejeo za dijiti (kitufe cha kushinikiza) na vile vile dijiti (LED) na pato la PWM (minyororo ya LED), na athari za mabadiliko zinaonekana moja kwa moja.

Nuru hutembea kupitia miduara inayojirudia inayojumuisha awamu nne: mabadiliko ya kijani (juu) hadi nyekundu (chini), awamu ya nyekundu tu, mpito wa nyekundu-kijani na awamu ya kijani tu. Urefu wa awamu hizi hufafanuliwa na viboreshaji ambavyo vinaweza kubadilishwa na potentiometers. Mchakato unaweza kuanza, kusitishwa, kuanza tena na kusimamishwa kwa kubonyeza vifungo vya kushinikiza. LED zinaonyesha awamu ya sasa. Inategemea mfano wa "Mwanga wa Firefly" na Pimoroni (tazama hapa). Sawa na "Taa ya Firefly" inahitaji Raspberry Pi (Zero), Pimoroni Explorer pHAT (au HAT) na minyororo miwili ya taa ya IKEA SÄRDAL. Baadaye zimeunganishwa na bandari mbili za PMW / motor za pHAT. Badala ya kutumia jar, nimeweka LED kwenye fremu ya picha ya IKEA. Nimekuwa nikijaribu kuongeza maandishi ya chatu ya mwangaza wa "mwangaza wa moto", kutekeleza kazi ya sinus ya hiari kwa mabadiliko ya mwangaza / mapigo na nimeanzisha awamu mbili za "kushikilia" kati ya awamu za kufifia. Wakati wa kurekebisha vigezo ili kupata muundo mwepesi ambao huhisi raha zaidi, niligundua kuwa kifaa kinaweza kusaidia kuunga mkono muundo wa kupumua ulioelezewa wazi kabisa. Kwa hivyo, wengine wanaweza kupata "Nuru ya Kupumua" ikisaidia kutafakari au kusudi la mafunzo. Kwa kuwa Explorer pHAT ina pembejeo nne za dijiti na nne za analog, ni rahisi sana kudhibiti hadi vigezo vinne tofauti kwa kutumia potentiometers za slaidi au rotary, na kuanzisha kazi za kuanza / kuanzisha upya / kuacha taa kwa kutumia vifungo vya kushinikiza. Hii itakuruhusu kutumia kifaa na kuboresha vigezo kwa mahitaji yako bila mfuatiliaji lazima aambatishwe kwa Pi.

Kwa kuongezea Explorer pHAT inakuja na bandari nne za dijiti, ambazo huruhusu kuongeza LED au buzzers, pamoja na 5V mbili na bandari mbili za chini na bandari mbili za PWM za motors au vifaa sawa. Tafadhali hakikisha unatumia vipinga sahihi ili kupunguza voltage kwa LED zako.

Maktaba ya Pimatoni ya Pimoroni ya pimtoni hufanya iwe rahisi sana kudhibiti bandari hizi zote za I / O.

Katika toleo hili linaloweza kufundishwa la kifaa kilicho na potentiometers 0, 2 na 4 na vifungo vimeelezewa. Chagua ile inayofaa mahitaji yako.

Ili kuendesha kifaa kwa uhuru, mtu anaweza kutumia pakiti ya nguvu, au mchanganyiko wa Pimoroni LiPo shim na betri ya LiPo, kama ilivyoelezewa kwa "Taa ya Firefly".

Toleo zilizosasishwa Desemba 28, 2018: 'potentiometers nne na toleo la vifungo vinne vya kushinikiza' liliongezwa. 30: nambari ya toleo la 4-poti na picha za fritzing zilizoongezwa.

Hatua ya 1: Vifaa Vilivyotumiwa / vinahitajika

Vifaa vilivyotumiwa / vinahitajika
Vifaa vilivyotumiwa / vinahitajika
Vifaa vilivyotumiwa / vinahitajika
Vifaa vilivyotumiwa / vinahitajika
Vifaa vilivyotumiwa / vinahitajika
Vifaa vilivyotumiwa / vinahitajika

- Raspberry Pi Zero (4.80 GBP huko Pimoroni, Uingereza), na kadi ndogo ya SD (> = 8 GB) w / Raspian

- Pimoroni Explorer pHAT (10 GBP huko Pimoroni, Uingereza). Chaguo: kichwa cha safu moja, nyaya za kuruka

- IKEA SÄRDAL taa za mnyororo wa LED w / 12 LEDs (2 x, 3.99 € kila moja kwenye IKEA Ujerumani), au mnyororo wowote ule wa 3-5V wa LED. - IKEA RIBBA fremu ya picha (13 x 18 cm, 2.49 € huko IKEA Ujerumani).

- Kipande cha povu ya PU (2 x 18 x 13.5 cm), kushikilia taa. Vinginevyo povu ya styro inaweza kutumika.

- Kipande cha plastiki isiyo na rangi (18 x 13.5 cm), ikifanya kazi ya kutawanya.

- Karatasi mbili za karatasi ya uwazi yenye rangi (9 x 13.5 cm kila moja). Nilitumia nyekundu na kijani.

- kipande cha karatasi nyembamba ya plastiki nyembamba (18 x 13.5 cm), ikicheza kama skrini ya nje. Nilitumia karatasi nyembamba nyeupe ya polycarbonate. Hiari, kwa toleo linaloweza kurekebishwa:

Kurekebisha muda na urefu wa mwamba, au vinginevyo vigezo vingine kama mwangaza.

Kama kuanza / kuacha / kusitisha / kuendelea na vifungo: - Vifungo vya kushinikiza (hadi nne, nilitumia nne au mbili)

Kama viashiria vya awamu za duara: - Rangi za rangi na vipingamizi muhimu (itategemea sifa za taa utakazotumia).

  1. karibu 140 Ohm kwa 5.2 -> 2, 2 V (manjano, machungwa, nyekundu; taa za kijani kibichi),
  2. karibu 100 Ohm kwa 5.3 -> 3.3 V (kijani kibichi; bluu, nyeupe za LED)

- Chuma za jumper na ubao wa mkate

Hiari, kwa toleo linaloendeshwa na betri:

  • Kifurushi cha nguvu cha 5V Micro-USB, au
  • Pimoroni Zero LiPo shim na betri ya LiPo

Hatua ya 2: Kavu na Mkutano

Kinga na Mkutano
Kinga na Mkutano
Kinga na Mkutano
Kinga na Mkutano
Kinga na Mkutano
Kinga na Mkutano

Kukusanya Explorer pHAT kama ilivyoelezewa na mtengenezaji. Nimeongeza kichwa cha kike cha safu moja kwa unganisho rahisi wa nyaya za kuruka kwa bandari za I / O za pHATs. Sanidi Pi yako na usakinishe maktaba ya Pimoroni kwa HAT / pHAT ya Explorer, kama ilivyoelezewa na Pimoroni. Zima Pi na ambatisha pHAT kwenye Pi Ondoa vifurushi vya betri kutoka kwa minyororo ya LED kwa kukata waya na kubandika mwisho wa waya. Kata nyaya mbili za kuruka za kiume 2x katikati, weka mwisho wa waya. Solder nyaya za jumper kwenye minyororo ya LED, na utenganishe sehemu za kutengeneza kwa kutumia mkanda wa wambiso au neli ya kupungua. Kabla ya kutengenezea, angalia ni waya gani lazima uunganishwe na bandari za kuongeza au za ardhini, na uziweke alama sawa. Nilitumia waya za kuruka na rangi tofauti. Kata povu kushikilia taa za LED, disusor na karatasi za skrini kwa saizi inayofaa. Kwenye bamba la kushikilia la LED weka nafasi ambazo taa za taa zitawekwa na kupiga mashimo 3-5 mm kwenye povu. Kisha ingiza LED 24 katika nafasi zilizopewa. Weka karatasi zenye rangi na sahani za kutawanya kwenye bamba la LED (angalia picha), ziweke sura juu ya kifurushi. Rekebisha tabaka za povu kwenye sura, k.v. kutumia mkanda wa wambiso. Ambatisha nyaya za mkanda wa LED kwenye bandari za "motor" za Explorer pHAT. Kwa toleo linalowezekana weka potentiometers, vifungo vya kushinikiza, taa za kudhibiti (na / au buzzers) na vipinga kwenye ubao wa mkate na uziunganishe na bandari zinazofanana kwenye Explorer pHAT.

Anza Pi yako na usakinishe maktaba zinazohitajika, kama ilivyoelezewa kwenye wavuti ya Pimoroni, kisha tumia hati iliyotolewa ya Python 3. Ikiwa moja ya minyororo ya LED haifanyi kazi inaweza kuunganishwa katika mwelekeo mbaya. Basi unaweza kubadilisha mabadiliko ya pamoja / kupunguza kwenye pHAT au ufanye mabadiliko katika programu, k.v. badilisha "eh.motor.one.backward ()" kuwa "… forward ()".

Ukiambatanisha unapata hati zilizo na mipangilio ya kudumu unaweza kubadilisha ndani ya programu na mfano ambapo unaweza kurekebisha mipangilio na potentiometers, na kuanza na kusimamisha mzunguko wa mwanga ukitumia vifungo vya kushinikiza. Haipaswi kuwa ngumu sana kurekebisha hati zinazofaa kwa mpangilio wako mwenyewe wa "taa ya kupumua".

Hatua ya 3: Hati za Python

Maktaba ya chatu ya Pimoroni ya Explorer HAT / pHAT inafanya iwe rahisi sana kushughulikia vifaa vilivyowekwa kwenye bandari za I / O za HAT. Mifano miwili: "eh.two.motor.backwards (80)" huendesha kifaa kilichounganishwa na PWM / bandari ya 2 na 80% kiwango cha juu kwa mwelekeo wa kurudi nyuma, "eh.output.three.flash ()" hufanya LED kushikamana kutoa bandari nambari tatu hadi itasimamishwa. Nimezalisha tofauti kadhaa za taa, kimsingi nikiongeza viwango vya udhibiti kwa kuongeza hadi vifungo vinne vya kushinikiza na potentiometers. Ukiambatanishwa unapata programu ya chatu inayoitwa "Pumzi ya taa iliyosimamishwa lin cosin.py "ambapo mipangilio yote minne ya parameta inapaswa kubadilishwa ndani ya programu. Kwa kuongezea toleo linaloitwa "Pumzi ya taa var lin cosin.py" ambapo urefu wa awamu mbili za kufifia unaweza kubadilishwa kwa kutumia potentiometers mbili na toleo lililofafanuliwa zaidi "Pumzi ya taa var lin cosin3.py" kwa toleo la nne la potentiometer & kifungo cha kushinikiza. Programu zimeandikwa katika Python 3.

Katika hali zote mchakato wa baiskeli unaweza kutolewa na kusimamishwa kwa kutumia vifungo viwili vya kushinikiza, katika toleo la vifungo vinne pia unaweza kusumbua na kuanzisha tena mchakato. Kwa kuongezea LED nne (zenye rangi) zinaweza kushikamana na bandari za pato za dijiti, zinaonyesha awamu maalum. Mzunguko wa kifaa una awamu nne:

- awamu ya "kuvuta pumzi", ambapo taa za juu zimepunguzwa chini na taa za chini huongeza nguvu

- "shikilia pumzi yako", ambapo taa za juu zimezimwa na taa za chini zimewekwa kwa kiwango cha juu

- "exhale" awamu, ambapo taa za chini zimepunguzwa chini na taa za juu huongeza nguvu

- awamu ya "kukaa nje", ambapo taa za chini zimezimwa na taa za juu zinawaka juu.

Urefu wa awamu zote nne hufafanuliwa na parameta ya kibinafsi, ambayo inaweza kusanidiwa katika programu na / au inaweza kubadilishwa kwa kutumia potentiometer.

Kigezo cha tano kinafafanua kiwango cha juu. Inakuruhusu kuweka mwangaza wa juu wa LED, ambazo zinaweza kuwa rahisi ikiwa unataka kuitumia kama mwangaza wa usiku. Kwa kuongeza inaweza kukuruhusu kuboresha mchakato wa kufifia, kwani nina maoni kuwa ni ngumu kuona tofauti kati ya kiwango cha 80 na 100%.

Nilikuwa nikiongeza hiari (co-) kazi ya sinus kwa kuongezeka / kupungua kwa mwangaza, kwani inatoa unganisho laini kati ya awamu. Jisikie huru kujaribu kazi zingine. Mfano. unaweza kuondoa mapumziko na utumie kazi mbili tofauti (ngumu) za sinus kwa minyororo yote ya LED na urekebishe masafa na amplitude na potentiometers.

# Taa ya "kupumua": kifungo mbili & toleo la potentiometer mbili

# marekebisho ya mfano wa firefly kwa Pimoroni Explorer pHAT # hapa: ongezeko la sinoid / kupungua kwa motor / PWM maadili # kwa kazi ya mstari ongeza laini na kufanya kazi ya cosin pembejeo za dijiti, vifungo kuanza na kuacha "" "kuanza kuwasha Pi ambayo unaweza kutumia Cron: Cron ni mpango wa Unix ambao hutumiwa kupanga kazi, na ina kazi rahisi ya @reboot ambayo hukuruhusu kuendesha hati wakati wowote buti zako za Pi. Fungua kituo, na chapa crontab -e kuhariri crontab yako. Tembeza hadi chini ya faili, pita mistari yote inayoanza #, na ongeza laini ifuatayo (kudhani nambari yako iko /home/pi/firefly.py): "" "kuagiza muda wa kugundua kama eh kuagiza nambari za hesabu za mara kwa mara # sinus xmax = 316 hatua = 5 # upana wa hatua, mf. 315/5 inatoa hatua 63 / kuanza kwa mzunguko_button = 0 # hii inafafanua hali ya kitufe cha kushinikiza kilichounganishwa kwenye bandari ya kuingiza hakuna 1 stop_button = 0 # hii inafafanua hali ya kitufe cha kushinikiza kilichounganishwa na bandari ya kuingiza hakuna pause_1 = 0.02 # set set ya mapumziko ndani ya hatua katika awamu ya "kuvuta pumzi", na kwa hivyo kiwango cha kukanyaga na pause_2 = 0.04 # seti "exhale" kiwango cha kasi pause_3 = 1.5 # mapumziko kati ya awamu za kuvuta pumzi na kutolea nje (weka pumzi) pause_4 = 1.2 # mapumziko mwisho wa exhale awamu (endelea kutolea nje) max_intens = 0.9 # kiwango cha juu / mwangaza max_intens_100 = 100 * max_intens # sawa katika% # Inaweza kuruhusu kuongeza hisia za "kupumua" kwa mwangaza wa LED na kupunguza kuangaza. l_cosin = orodha # na maadili yaliyotokana na cosinus (100> = x> = 0) l_lin = orodha # yenye viwango vya mstari (100> = x> = 0) # hutengeneza orodha ya kazi ya cosinus kwa i katika masafa (0, 316, 3): # 315 iko karibu na Pi * 100, hatua 105 # chapa (i) n_cosin = [(((math.cos (i / 100)) + 1) / 2) * 100] # thamani ya kuzaliwa # chapa (n_cosin) l_cosin = l_cosin + n_cosin #ongeza thamani kuorodhesha # chapa (l_cosin) # toa orodha ya safu kwa i katika anuwai (100, -1, -1): # hesabu kutoka 100 hadi sifuri n_lin = l_lin = l_lin + n_lin # chapa (l_lin) # inaonyesha orodha ya kuchosha chapa () chapisha ("" "Ili kuanza mizunguko nyepesi, bonyeza kitufe cha" Anza "(Ingiza Moja)" "")) chapa () chapisha ("" "Ili kusimamisha taa, bonyeza na ushikilie kitufe cha "Stop" (Ingizo la Tatu) "" ")) (subiri hadi Kitufe cha Anza kibonye wakati (start_button == 0): start_button = eh.input.one.read () # soma kitufe namba moja eh.output.one.blink () # blink nambari ya LED mara moja. lala (0.5) # soma mara mbili kwa sekunde #winda taa wakati (stop_button == 0): # soma pembejeo za analogi moja na mbili, fafanua mipangilio set_1 = eh alog.one.read () # inafafanua nyekundu-> kiwango cha kijani kibichi pause_1 = set_1 * 0.02 # maadili yatatofautiana kati ya 0 na 0.13 sec / step print ("set_1:", set_1, "-> pause _1:", pause_1) set_2 = eh.analog.two.read () # inafafanua kijani -> nyekundu kiwango cha kukatisha pause_2 = set_2 * 0.02 # maadili yatatofautiana kati ya 0 na 0.13 sec / print hatua ("set_2:", set_2, "-> pause _2: ", pause_2) #" kuvuta pumzi "awamu eh.output.one.on () # inaweza kuendesha LED au beeper ' eh.motor.one.backback (fx) eh.motor.two.backwards (max_intens_100-fx) muda. kulala (pause_1) eh.output.one.off () '' kwa x katika masafa (len (l_cosin)): fx = max_intens * l_cosin [x] # mstari wa mstari eh.motor.one.backwards (fx) eh.motor.two.backwards (max_intens_100-fx) muda. kulala (pause_1) eh.output.one.off () # angalia ikiwa Kitufe cha Kuacha kimeshinikizwa stop_button = eh.input.three.read () # "Weka pumzi yako" pause mwisho wa awamu ya kuvuta pumzi eh.output.two.on () # washa LED mbili eh.motor.one nyuma (0) eh.motor.two.backwards (max_intens_100) saa. lala (pause_3) eh.tput.two.off () # angalia ikiwa Kitufe cha Kuacha kimesisitizwa stop_button = eh input.three.read () # "exhale" awamu eh.output.three.on () # washa LED tatu "kwa x katika masafa (len (l_lin)): fx = max_intens * l_lin [x] # mstari wa eh eh.motor.one.backwards (max_intens_100-fx) eh.motor.two.backwards (fx Kulala (pause_2) '' kwa x katika masafa (len (l_cosin)): fx = max_intens * l_cosin [x] # curve linear eh.motor.one.backwards (max_intens_100-fx) eh.motor.two. wakati wa kurudi nyuma (fx). lala (pause_2) eh.tput.three.off () # angalia ikiwa Kitufe cha Kuacha kimesisitizwa stop_button = eh.input.three.read () # pause kati ya "exhale" na "inhale" awamu eh. pato.nne () eh.motor.one.backwards (max_intens_100) eh.motor.two.backward (0) muda.kulala (pause_4) eh.output.four.off () # angalia ikiwa Button Stop imesisitizwa stop_button = eh..off () eh.pato.tatu.off () eh.tokeo.4.off () chapa () chapa ("Kwaheri")

Ikiwa unataka kutumia taa kama kifaa cha kujitegemea, k.m. kama taa ya kulala au kuamka, unaweza kuongeza chanzo cha nguvu ya rununu kwa Pi na kuwa na programu inayoanza baada ya kuwasha tena na kutumia "Cron" kuiwasha au kuzima kwa nyakati zilizopewa. Jinsi ya kutumia "Cron" imeelezea kwa undani sana mahali pengine.

Hatua ya 4: Mifano ya Video

Katika hatua hii utapata video kadhaa zinazoonyesha mwangaza chini ya kawaida (yaani maadili yote> 0, # 1) na hali mbaya, kwani maadili yote yamewekwa hadi sifuri (# 2), inayozunguka tu (# 3 ), na hakuna njia panda (# 5 ).;

Hatua ya 5: Maneno mengine

Tafadhali samahani maneno yoyote yasiyofaa, typos na makosa. Mimi sio mzungumzaji asili wa Kiingereza, wala sijafafanua maarifa katika vifaa vya umeme, elektroniki au programu. Ambayo kwa kweli inamaanisha kuwa ninajaribu kuandika Kiingereza inayoweza kufundishwa juu ya vitu ambavyo siwezi kujua maneno sahihi katika lugha yangu mwenyewe. Kwa hivyo vidokezo, marekebisho au maoni yoyote ya kuboresha yanakaribishwa

Ilipendekeza: