Мазмұны:

Таңқурай Пи басқаратын тыныс алу жарығы: 5 қадам
Таңқурай Пи басқаратын тыныс алу жарығы: 5 қадам

Бейне: Таңқурай Пи басқаратын тыныс алу жарығы: 5 қадам

Бейне: Таңқурай Пи басқаратын тыныс алу жарығы: 5 қадам
Бейне: Таңқурай диетасы: 2 күнде - 3 кг! 2024, Шілде
Anonim
Таңқурай Пи басқаратын тыныс алу жарығы
Таңқурай Пи басқаратын тыныс алу жарығы

Мұнда сипатталған «Тыныс алу жаттығулары шамы» - бұл қарапайым және салыстырмалы түрде арзан импульсті жарық, ол сіздің тыныс алу жаттығуларыңызды қолдайды және тыныс алудың тұрақты ырғағын сақтауға көмектеседі. Ол сондай -ақ қолданылуы мүмкін, мысалы балаларға тыныштандыратын түнгі жарық ретінде. Қазіргі кезеңде бұл жұмыс прототипі.

Сіз оны Raspberry Pi көмегімен «физикалық есептеу» үшін арзан және қарапайым үлгі ретінде пайдалана аласыз, мысалы: бастауыш деңгейдегі білім беру жобасы ретінде пайдалануға болады, мұнда сізде аналогтық (айналмалы потенциометр) және цифрлық кірістер (басу түймесі), сондай -ақ сандық (жарықдиодты) және PWM шығысы (жарық диодты тізбектер) бар, және өзгерістердің әсері тікелей көрінеді.

Жарық төрт фазадан тұратын қайталанатын шеңберлер арқылы өтеді: жасылдан (жоғарыдан қызылға) (төменгіден) өту, тек қызылға, қызылдан жасылға өту және жасылға ғана фаза. Бұл фазалардың ұзақтығы потенциометрлермен өзгертілетін тұрақтылармен анықталады. Процесті батырмаларды басу арқылы бастауға, кідіртуге, жалғастыруға және тоқтатуға болады. Жарықдиодты шамдар ағымдағы кезеңді көрсетеді, ол Pimoroni -дің «Firefly Light» мысалына негізделген (мұнда қараңыз). «Firefly Light» сияқты оған Raspberry Pi (нөл), Pimoroni Explorer pHAT (немесе HAT) және екі IKEA SÄRDAL жарық диодты жарық тізбегі қажет. Соңғылары pHAT екі PMW/мотор порттарына қосылған. Мен құмыраны пайдаланудың орнына жарық диодты IKEA сурет жақтауына қойдым. Мен жарықтық/ импульстің енін өзгерту үшін қосымша синус функциясын қолдана отырып, түпнұсқалық «отты жарық» питон сценарийін аздап оңтайландыруға тырыстым және күңгірттеу фазалары арасында екі «ұстау» фазасын енгіздім. Өзін жайлы сезінетін жеңіл үлгіні табу үшін параметрлерді өзгерте отырып, мен бұл құрылғы тыныс алудың нақты анықталған үлгісін қолдауға көмектесетінін білдім. Осылайша, сіздердің кейбіреулеріңіз бұл «тыныс алу жарығын» медитация немесе жаттығу үшін пайдалы деп санай аласыз. Explorer pHAT төрт цифрлық және төрт аналогтық кіріске ие болғандықтан, сырғымалы немесе айналмалы потенциометрлерді қолдана отырып төрт түрлі параметрді реттеу және жарық түймелеріне старт/қайта қосу/тоқтату функцияларын енгізу өте оңай. Бұл сізге құрылғыны пайдалануға және мониторға қосылмай параметрлерді қажеттіліктеріңізге қарай оңтайландыруға мүмкіндік береді.

Сонымен қатар, Explorer pHAT төрт жарықдиодты немесе дыбыстық сигналды қосуға мүмкіндік беретін төрт цифрлық шығыс портымен, сонымен қатар қозғалтқыштарға немесе ұқсас құрылғыларға арналған екі 5В және екі Ground порты мен екі PWM шығыс портымен бірге келеді. Жарық диодты кернеуді төмендету үшін дұрыс резисторларды қолданғаныңызға көз жеткізіңіз.

Pimoroni Explorer pHAT питон кітапханасы барлық енгізу -шығару порттарын басқаруды өте қарапайым етеді.

Құрылғының 0, 2 және 4 потенциометрлері мен түймелері бар нұсқаулық нұсқаларында сипатталған. Сіздің қажеттіліктеріңізге сәйкес келетінін таңдаңыз.

Құрылғыны автономды түрде іске қосу үшін қуат жинағын немесе Pimoroni LiPo шымы мен LiPo аккумуляторының комбинациясын қолдануға болады.

Жаңартылған нұсқалар 28 желтоқсан 2018 ж: «төрт потенциометр мен төрт түйме» нұсқасы қосылды. 30: 4-poti нұсқасының коды және фритингтік суреттер қосылды.

1 -қадам: Қолданылған материалдар / Қажетті

Қолданылатын материалдар / Қажетті
Қолданылатын материалдар / Қажетті
Қолданылатын материалдар / Қажетті
Қолданылатын материалдар / Қажетті
Қолданылатын материалдар / Қажетті
Қолданылатын материалдар / Қажетті

- Raspberry Pi Zero (Pimoroni, Ұлыбританияда 4,80 фунт стерлинг) және микро SD картасы (> = 8 ГБ) Raspian

- Pimoroni Explorer pHAT (10 GBP, Pimoroni, Ұлыбритания). Қосымша: бір қатарлы тақырып, өтпелі кабельдер

- IKEA SÄRDAL светодиодты шамдар 12 светодиодпен (2 x, әрқайсысы 3,99 евро IKEA Германияда) немесе кез келген ұқсас 3-5В жарық диодты тізбектермен.- IKEA RIBBA сурет жақтауы (13 x 18 см, IKEA Германияда 2,49 евро).

- жарықдиодты ұстауға арналған PU көбік бөлігі (2 x 18 x 13,5 см). Немесе стирол көбігін қолдануға болады.

- диффузордың рөлін атқаратын мөлдір емес пластиктен (18 x 13,5 см).

- түрлі -түсті мөлдір қағаздың екі парағы (әрқайсысы 9х13,5 см). Мен қызыл мен жасыл түстерді қолдандым.

- жұқа, өте мөлдір емес пластикалық парақ (18 x 13,5 см), сыртқы экран қызметін атқарады. Мен жіңішке ақ поликарбонат парағын қолдандым. Қосымша, реттелетін нұсқа үшін:

Қозғалыс уақытын және үстірт ұзақтығын немесе жарықтық сияқты басқа параметрлерді реттеу үшін.- 10, 20 немесе 50 кОм потенциометрлер (төртке дейін мен сәйкесінше 50 50 Ом екі 10 кОм екі қолдандым).

Бастау/тоқтату/кідірту/жалғастыру түймелері ретінде:- түймелерді басу (төртке дейін, мен төрт немесе екі қолдандым)

Шеңбер фазаларының көрсеткіштері ретінде:- түрлі-түсті жарық диодтар мен қажетті резисторлар (сіз қолданатын жарықдиодты шамдардың сипаттамасына байланысты болады).

  1. шамамен 140 Ом 5,2 -> 2, 2 В үшін (сары, қызғылт сары, қызыл; кейбір жасыл жарық диодтары),
  2. шамамен 100 Ом 5.3 -> 3.3 В үшін (кейбір жасыл; көк, ақ жарық диодты шамалар)

- Өтпелі кабельдер мен тақта

Қосымша, батареямен жұмыс істейтін нұсқа үшін:

  • 5V Micro-USB қуат жинағы немесе
  • Pimoroni Zero LiPo shim және LiPo батареясы

2 -қадам: Лазут және құрастыру

Лазут және құрастыру
Лазут және құрастыру
Лазут және құрастыру
Лазут және құрастыру
Лазут және құрастыру
Лазут және құрастыру

Өндіруші сипаттағандай Explorer pHAT жинаңыз. Мен pHATs I/O порттарына секіргіш кабельдердің жеңілдетілген қосылуы үшін бір қатарлы әйел тақырыбын қостым. Pi орнатыңыз және Pimoroni сипаттағандай Explorer HAT/pHAT үшін Pimoroni кітапханасын орнатыңыз. Пиді сөндіріп, pHAT -ты Pi -ге бекітіңіз. Сымдарды кесіп, сымдардың ұшын қаңылтырлау арқылы аккумулятор пакеттерін жарық диодты тізбектерден алыңыз. Сымдардың соңына қаңылтырмен 2x ерлерге арналған екі кабельді кесіңіз. Өткізгіш кабельдерді жарық диодты тізбектерге дәнекерлеңіз және дәнекерлеу нүктелерін жабысқақ таспамен немесе шөгілетін түтіктің көмегімен оқшаулаңыз. Дәнекерлеу алдында сымдардың қайсысын плюс немесе жерге қосу порттарына қосу керек екенін тексеріп, сәйкесінше белгілеңіз. Мен светодиодтарды, диффузорды және экран парақтарын тиісті мөлшерде ұстау үшін көбікті кесіп, түрлі түсті сымдарды қолдандым. Жарықдиодты ұстағыш тақтада жарықдиодты орналастыру керек орындарды белгілеңіз және көбікке 3-5 мм тесік жасаңыз. Содан кейін берілген позицияларға 24 жарықдиодты қосыңыз. Түрлі түсті қағаздар мен диффузорлық тақталарды жарықдиодты тақтаға салыңыз (суреттерді қараңыз), олар раманы қаптаманың үстіне қояды. Көбік қабаттарын жақтауға бекітіңіз, мысалы. жабысқақ таспаны қолдану. Жарықдиодты жолақты кабельдерді Explorer pHAT «қозғалтқыш» порттарына бекітіңіз. Реттелетін нұсқа үшін потенциометрлерді, түймелерді, басқару светодиодтарын (және/немесе дыбыстық сигналдарды) және резисторларды тақтаға орналастырыңыз және оларды Explorer pHAT сәйкес порттарына қосыңыз.

Pi -ді іске қосыңыз және Pimoroni веб -сайтында сипатталғандай қажетті кітапханаларды орнатыңыз, содан кейін берілген Python 3 сценарийін іске қосыңыз. Егер жарықдиодты тізбектердің бірі жұмыс істемесе, ол дұрыс емес бағытта қосылған болуы мүмкін. Содан кейін сіз pHAT -та плюс/минус қосылыстарын өзгерте аласыз немесе бағдарламаға өзгеріс енгізе аласыз, мысалы. “eh.motor.one.backwards ()” дегенді “… алға ()” етіп өзгертіңіз.

Бағдарлама ішінде өзгертуге болатын, сонымен қатар потенциометрлердің көмегімен кейбір параметрлерді өзгертуге және жарық түймесін басу түймешіктерінің көмегімен бастауға және тоқтатуға болатын мысалға бекітілген сценарийлер табылған. Сценарийлерді өзіңіздің «тыныс алу жарығының» орналасуына сәйкес келтіру өте қиын болмауы керек.

3 -қадам: Python сценарийлері

Explorer HAT/pHAT үшін Pimoroni Python кітапханасы HATs енгізу -шығару порттарына бекітілген компоненттерді енгізуді өте қарапайым етеді. Екі мысал: «eh.two.motor.backwards (80)» PWM/мотор портына 2 бекітілген құрылғыны 80% максималды қарқындылықпен кері бағытта жүргізеді, «eh.output.three.flash ()» жарықдиодты қосады Жарықтың бірнеше вариациясын шығардым, негізінен төрт түймешіктер мен потенциометрлерді қосу арқылы басқару деңгейінің жоғарылауын қосамын. Сізге «Тыныс алатын жарық линусының косинасы» деп аталатын Python бағдарламасы табылған..py «мұнда барлық төрт параметрдің параметрлері бағдарлама ішінде өзгертілуі керек. Қосымша «Breathing light var lin cosin.py» деп аталатын нұсқа, онда екі күңгірттеу фазасының ұзындығын екі потенциометр көмегімен және төрт потенциометр мен түймешік нұсқасы үшін «Breathing light var lin cosin3.py» ең жетілдірілген нұсқасын қолдана отырып реттеуге болады.. Бағдарламалар Python 3 -те жазылған.

Барлық жағдайларда велосипед процесін екі түймені басу арқылы шақыруға және тоқтатуға болады, төрт түйменің нұсқасында процесті үзуге және қайта бастауға болады. Сонымен қатар, цифрлық шығыс порттарына белгілі бір фазаларды көрсететін төрт (түрлі -түсті) жарықдиодты қосуға болады. Құрылғының циклы төрт фазадан тұрады:

- жоғарғы индикаторлар күңгірттенеді, ал төменгі светодиодтар қарқындылығын жоғарылататын «дем алу» фазасы

- «тыныс алуды тоқтату» фазасы, онда жоғарғы жарық диодтары өшірулі, ал төменгі жарық диодтары максимумға орнатылады

- «дем шығару» фазасы, онда төменгі жарық диодтары төмен қараңғыда, ал жоғарғы жарық диодты интенсивтілікті арттырады

- «тыныс шығаруды тоқтату» кезеңі, онда төменгі жарық диодтары өшірулі, ал жоғарғы жарық диодтары максималды түрде жанады.

Барлық төрт фазаның ұзақтығы бағдарламада бекітілген және/немесе потенциометр көмегімен реттелетін жеке сандық параметрмен анықталады.

Бесінші параметр максималды қарқындылықты анықтайды. Бұл жарық диодтарының максималды жарықтығын орнатуға мүмкіндік береді, егер сіз оны түнгі жарық ретінде қолданғыңыз келсе ыңғайлы болады. Сонымен қатар, бұл сізге күңгірттеу процесін жақсартуға мүмкіндік береді, өйткені менде 80 -ден 100% -ға дейінгі қарқындылық арасындағы айырмашылықты көру қиын сияқты әсер қалдырады.

Мен жарықтықты жоғарылату/азайту үшін қосымша (қосалқы) синус функциясын қостым, себебі бұл фазалар арасындағы тегіс байланысты береді. Басқа функцияларды қолдануға тырысыңыз. Мысалы, Сіз үзілістерді жоя аласыз және жарық диодты тізбектер үшін екі түрлі (күрделі) синус функциясын қолдана аласыз және жиілік пен амплитудасын потенциометрлермен реттей аласыз.

# «Тыныс алатын» шам: екі түйме және екі потенциометрдің нұсқасы

# Pimoroni Explorer pHAT үшін отты мысалдың модификациясы # мұнда: мотор/PWM мәндерінің синоидті жоғарылауы/төмендеуі # сызықтық функция үшін сызықтық және дыбыссыз косин функциясының дыбысын өшіру # Бұл «var» нұсқасы аналогтық кірістерді оқиды, алдын ала анықталған параметрлерді өзгертеді # оқиды цифрлық енгізу, «» «қосуға және тоқтатуға арналған түймелер Pi қосқан кезде басталады, сіз Cron пайдалана аласыз: Cron - бұл тапсырмаларды жоспарлау үшін қолданылатын Unix бағдарламасы және оның сценарийді іске қосуға мүмкіндік беретін @ @қайта жүктеу функциясы бар. Pi жүктелген сайын. Терминалды ашыңыз және crontab -e теріңіз, crontab өңдеу үшін. #басталатын барлық жолдарды өтіп, файлдың төменгі жағына дейін айналдырыңыз және келесі жолды қосыңыз (егер сіздің кодыңыз бар болса) /home/pi/firefly.py): @reboot sudo python /home/pi/filename.py & Жабу және crontab сақтау «» «импорт уақыты импорттаушы импорт математикалық тұрақты мәндер ретінде #sinus xmax = 316 қадам = 5 # қадам ені, мысалы 315/5 63 қадам береді/циклды бастау_түймешігі = 0 # бұл кіріс портына қосылған түйменің күйін анықтайды № 1 stop_button = 0 # бұл кіріс портына жалғанған түйменің күйін анықтайды pause_1 = 0.02 # ұзақтығын орнатады «тыныс алу» фазасындағы қадамдар арасындағы үзілістер, осылайша жылдамдық пен ұзақтығы кідірту_2 = 0,04 # «дем шығару» жиілігін орнатады кідіріс_3 = 1,5 # тыныс алу мен дем шығару фазалары арасындағы үзіліс (тыныс алуды жалғастырыңыз) үзіліс_4 = 1,2 # дем шығару соңында үзіліс фаза (тыныс алуды жалғастырыңыз) max_intens = 0.9 # максималды қарқындылық/жарықтық max_intens_100 = 100*max_intens # бірдей % # Светодиодтардың «тыныс алу» әсерін оңтайландыруға және жыпылықтауды азайтуға мүмкіндік береді. l_cosin = косинус туынды мәндері бар # тізім (100> = x> = 0) l_lin = # сызықтық мәндері бар тізім (100> = x> = 0) # i ауқымында косинус функцияларының тізімін жасайды (0, 316, 3): # 315 Pi*100 -ге жақын, 105 қадам # print (i) n_cosin = [((((math.cos (i/100))+1)/2)*100] # генерациялау мәні # басып шығару (n_cosin) l_cosin = l_cosin + n_cosin # тізімге мән қосу # басып шығару (l_cosin) # ауқымындағы i үшін сызықтық тізім жасау (100, -1, -1): # 100 -ден нөлге дейін санау n_lin = l_lin = l_lin + n_lin # print (l_lin) # жалықтыратын тізімді көрсетеді басып шығару () басып шығару («» «Жарық циклдарын бастау үшін» Іске қосу «түймесін (Бір енгізу)» «») басып шығару () басып шығару («» «Тоқтату үшін) жарық, «Тоқтату» батырмасын басып тұрыңыз (Үш енгізу) «» «) басып шығару () # Бастау түймесі басылғанша күтіңіз (старт_түймесі == 0): старт_түймесі = eh.input.one.read () # оқу 1 нөмірлі түйме eh.output.one.blink () # жыпылықтау светодиод нөмірі бір рет. ұйқы (0,5) # секундына екі рет оқу = иә alog.one.read () # қызыл-> жасыл түсу жылдамдығын анықтайды pause_1 = set_1*0.02 # мәндері 0 мен 0.13 сек/қадамдық басып шығару арасында болады («set_1:», set_1, « -> _1:», pause_1) set_2 = eh.analog.two.read () # жасыл -> қызыл түсу жиілігін анықтайды кідіріс_2 = set_2*0,02 # мәндері 0 мен 0,13 сек/қадамдық басып шығару арасында болады («set_2:», set_2, « -> кідірту _2: «, пауза_2) #» ингаляция «фазасы eh.output.one.on () # диапазондағы x (len (l_lin)) үшін светодиоды немесе '' 'сигналын шығаруы мүмкін: fx = max_intens*l_lin [x] # сызықтық қисық eh.motor.one.backwards (fx) eh.motor.two.backwards (max_intens_100-fx) time.sleep (pause_1) eh.output.one.off () '' 'x үшін x ауқымында (len (l_cosin)): fx = max_intens*l_cosin [x] # сызықтық қисық eh.motor.one.backwards (fx) eh.motor.wo.backwards (max_intens_100-fx) time.sleep (pause_1) eh.output.one.off () # Тоқтату түймесінің басылғанын тексеріңіз stop_button = eh.input.three.read () # ингаляция кезеңінің соңында «тынысыңызды сақтаңыз» үзілісі. артқа (0) eh.motor.two.backwards (max_intens_100) time.sleep (pause_3) eh.output.two.off () # Stop Stop батырмасы басылғанын тексеріңіз stop_button = eh.input.three.read () # «дем шығару» фазасы eh.output.three.on () # x диапазонында үш дюймдік жарықдиодты қосыңыз (len (l_lin)): fx = max_intens*l_lin [x] # сызықтық қисық eh.motor.one.backwards (max_intens_100-fx) eh.motor.two.backwards (fx)) time.sleep (pause_2) '' 'x үшін диапазонда (len (l_cosin)): fx = max_intens*l_cosin [x] # сызықтық қисық eh.motor.one.backwards (max_intens_100-fx) eh.motor.two. артқа (fx) уақыт.ұйықтау (кідірту_2) eh.output.three.off () # Тоқтату түймесінің басылғанын тексеріңіз stop_button = eh.input.three.read () # «тыныс алу» мен «дем шығару» фазаларының арасында # үзіліс eh. output.four.on () eh.motor.one.backwards (max_intens_100) eh.motor.two.backwards (0) time.sleep (pause_4) eh.output.four.off () #Stop Stop батырмасы басылғанын тексеріңіз. = eh.input.three.read () # өшіру, барлық шығыс порттарының ауысуы eh.motor.one.stop () eh.motor.two.stop () eh.output.one.off () eh.output.two.off () eh.output.three.off () eh.output.four.off () басып шығару () басып шығару («Қош бол»)

Егер сіз жарықты дербес құрылғы ретінде пайдаланғыңыз келсе, мысалы. ұйықтау немесе ояту шамы ретінде сіз Pi-ге мобильді қуат көзін қоса аласыз және жүктелгеннен кейін бағдарламаны іске қосуға болады және оны белгілі бір уақытта қосу немесе өшіру үшін «Cron» қолданыңыз. «Cron» қалай қолдануға болатыны басқа жерде кеңінен сипатталған.

4 -қадам: бейне мысалдары

Бұл қадамда сіз жарықты қалыпты жағдайда көрсететін бірнеше бейнелерді таба аласыз (яғни барлық мәндер> 0, #1) және төтенше жағдайларда, өйткені барлық мәндер нөлге (#2) орнатылған, тек ену (#3 және #4), және пандус жоқ (#5 ).;

5 -қадам: Кейбір ескертулер

Қате терминдер, қателер мен қателер үшін кешірім сұраймыз. Мен ағылшын тілінде сөйлейтін адам емеспін, электрика, электроника немесе бағдарламалау бойынша толық білімім жоқ. Бұл шын мәнінде мен өз тілімде дұрыс терминдерді білмейтін нәрселер туралы ағылшын тілінде нұсқаулық жазуға тырысамын дегенді білдіреді. Жақсартуға қатысты кез келген кеңестер, түзетулер немесе идеялар құпталады

Ұсынылған: