Агуулгын хүснэгт:

Raspberry Pi -ийн удирддаг амьсгалын гэрэл: 5 алхам
Raspberry Pi -ийн удирддаг амьсгалын гэрэл: 5 алхам

Видео: Raspberry Pi -ийн удирддаг амьсгалын гэрэл: 5 алхам

Видео: Raspberry Pi -ийн удирддаг амьсгалын гэрэл: 5 алхам
Видео: Raspberry Pi IoT Course Хичээл #1 - Танилцуулга хичээл 2024, Долдугаар сарын
Anonim
Raspberry Pi -ийн удирддаг амьсгалын гэрэл
Raspberry Pi -ийн удирддаг амьсгалын гэрэл

Энд тайлбарласан "Амьсгалын дасгалын гэрэл" нь энгийн бөгөөд харьцангуй хямд импульсийн гэрэл бөгөөд амьсгалын дасгал хийхэд тань тусалж, амьсгалын тогтмол хэмнэлийг хадгалахад тусалдаг. Үүнийг бас ашиглаж болно, жишээ нь. хүүхдүүдийг тайвшруулах шөнийн гэрэл болгон. Одоогийн шатанд энэ нь илүү сайн ажилладаг загвар юм.

Та үүнийг Raspberry Pi -тай "физик тооцоолох" жишээг бий болгоход хямд, энгийн жишээ болгон ашиглаж болно. Анхан шатны түвшинд боловсролын төсөл болгон ашиглахын тулд энд танд аналог (эргэлтэт потенциометр) ба дижитал оролт (түлхэх товчлуур), дижитал (LED) ба ХОУХ -ны гаралт (LED гинж) байгаа бөгөөд өөрчлөлтийн үр нөлөө шууд харагдана..

Гэрэл нь ногоон (дээд) улаан (доод) шилжилт, зөвхөн улаан үе, улаанаас ногоон хүртэлх шилжилт, зөвхөн ногоон гэсэн дөрвөн үе шатаас бүрдэх давтагдсан тойрог замаар дамждаг. Эдгээр үе шатуудын уртыг потенциометрээр өөрчилж болох тогтмолуудаар тодорхойлдог. Товчлуурыг дарж процессыг эхлүүлэх, түр зогсоох, үргэлжлүүлэх, зогсоох боломжтой. LED нь одоогийн үе шатыг илэрхийлдэг бөгөөд энэ нь Пиморонигийн "Firefly Light" жишээн дээр үндэслэсэн болно (эндээс үзнэ үү). "Firefly Light" -тэй адил Raspberry Pi (Zero), Pimoroni Explorer pHAT (эсвэл HAT) болон IKEA SÄRDAL LED гэрлийн хоёр гинж хэрэгтэй. Хожим нь pHAT -ийн PMW/моторын хоёр порт руу холбогддог. Би ваар ашиглахын оронд LED -ийг IKEA -ийн зургийн жаазанд байрлуулсан. Би анхны "галт гэрэл" питон скриптийг бага зэрэг оновчтой болгохыг хичээж, гэрэл/ импульсийн өргөний өөрчлөлтийн нэмэлт синусын функцийг хэрэгжүүлж, бүдгэрүүлэх үеүүдийн хооронд хоёр "барих" үеийг нэвтрүүлсэн. Илүү тохь тухтай хөнгөн хэв маягийг олохын тулд параметрүүдийг өөрчлөх явцад төхөөрөмж нь маш тодорхой тодорхойлогдсон, тогтмол амьсгалын хэв маягийг дэмжихэд тустай болохыг олж мэдсэн. Тиймээс та нарын зарим нь энэхүү "Амьсгалах гэрэл" -ийг бясалгал эсвэл сургалтын зорилгоор ашиглахад тустай байж магадгүй юм. Explorer pHAT нь дөрвөн дижитал, дөрвөн аналог оролттой тул слайд эсвэл эргэдэг потенциометр ашиглан дөрвөн өөр параметрийг зохицуулах, товчлуур ашиглан гэрлийг эхлүүлэх/дахин эхлүүлэх/зогсоох функцийг нэвтрүүлэхэд маш хялбар байдаг. Энэ нь төхөөрөмжийг ашиглах боломжийг танд олгож, параметрүүдийг өөрийн хэрэгцээнд нийцүүлэн оновчтой болгохын тулд Pi -д дэлгэц суурилуулах шаардлагагүй болно.

Нэмж дурдахад Explorer pHAT нь дижитал гаралтын дөрвөн портоор тоноглогдсон бөгөөд энэ нь LED эсвэл дуут дохио нэмэх боломжийг олгодог бөгөөд 5V ба хоёр Ground хоёр порт, мотор эсвэл үүнтэй төстэй төхөөрөмжүүдийн хоёр PWM гаралтын порт юм. LED -ийн хүчдэлийг бууруулахын тулд зөв резистор ашиглаж байгаа эсэхийг шалгаарай.

Pimoroni -ийн Explorer pHAT питоны номын сан нь эдгээр бүх оролт/гаралтын портуудыг удирдахад маш хялбар болгодог.

Энэхүү зааварчилгааны хувилбарт 0, 2, 4 потенциометр ба товчлууртай төхөөрөмжийг тайлбарласан болно. Таны хэрэгцээнд нийцсэн нэгийг нь сонгоорой.

Төхөөрөмжийг бие даан ажиллуулахын тулд та "Firefly Light" -д тайлбарласан цахилгаан тэжээлийн багц эсвэл Pimoroni LiPo shim болон LiPo батерейны хослолыг ашиглаж болно.

2018 оны 12 -р сарын 28 -ны шинэчилсэн хувилбарууд: 'Дөрвөн потенциометр ба дөрвөн товчлууртай' хувилбарыг нэмсэн. 30: 4-пот хувилбарын код болон фризинг зургуудыг нэмсэн.

Алхам 1: Ашигласан материал / Шаардлагатай

Ашигласан материал / Шаардлагатай
Ашигласан материал / Шаардлагатай
Ашигласан материал / Шаардлагатай
Ашигласан материал / Шаардлагатай
Ашигласан материал / Шаардлагатай
Ашигласан материал / Шаардлагатай

- Raspberry Pi Zero (Их Британийн Пиморонид 4.80 GBP), мөн Raspian -тай бичил SD карт (> = 8 GB)

- Pimoroni Explorer pHAT (Их Британийн Пиморонид 10 GBP). Нэмэлт: нэг эгнээний толгой, холбогч кабель

- IKEA SÄRDAL LED гинжин гэрэл 12 LED (2 х, тус бүр 3.99 евро IKEA Герман), эсвэл үүнтэй төстэй 3-5V LED гинж.- IKEA RIBBA зургийн жааз (13 х 18 см, IKEA Германд 2.49 евро).

- LED -ийг барих зориулалттай PU хөөс (2 x 18 x 13.5 см). Эсвэл стирол хөөс ашиглаж болно.

- Тунгалаг бус хуванцар (18 x 13.5 см), сарниулагчийн үүрэг гүйцэтгэдэг.

- Хоёр хуудас өнгийн тунгалаг цаас (тус бүр 9х13.5 см). Би улаан, ногоон өнгийг ашигласан.

- Гаднах дэлгэцийн үүрэг гүйцэтгэдэг нимгэн, тунгалаг бус хуванцар хуудас (18 x 13.5 см). Би нимгэн цагаан поликарбонат хуудас ашигласан. Сонголт хийх боломжтой хувилбарын хувьд:

Налуу замын цаг хугацаа, өндөрлөг газрын үргэлжлэх хугацаа, эсвэл гэрэлтүүлэг гэх мэт өөр бусад параметрүүдийг тохируулахын тулд.- 10, 20 эсвэл 50 кОм потенциометр (дөрөв хүртэл, би хоёр 10 кОм тус бүр дөрвөн 50 Ом ашигладаг байсан).

Эхлэх/зогсоох/түр зогсоох/үргэлжлүүлэх товчлууруудын хувьд:- Товчлуурыг дарах (дөрөв хүртэл, би дөрөв эсвэл хоёр ашигласан)

Тойргийн үе шатуудын индикаторын хувьд:- Өнгөт LED ба шаардлагатай резистор (таны ашиглах LED-ийн онцлогоос хамаарна).

  1. ойролцоогоор 140 Ом 5.2 -> 2, 2 В (шар, улбар шар, улаан; зарим ногоон LED)
  2. ойролцоогоор 100 Ом 5.3 -> 3.3 В (зарим ногоон; хөх, цагаан LED)

- Холбогч кабель ба талхны самбар

Нэмэлт, батерейгаар ажилладаг хувилбарын хувьд:

  • 5V микро-USB тэжээлийн багц, эсвэл
  • Pimoroni Zero LiPo shim болон LiPo батерей

Алхам 2: Лазут ба угсралт

Лазут ба угсралт
Лазут ба угсралт
Лазут ба угсралт
Лазут ба угсралт
Лазут ба угсралт
Лазут ба угсралт

Үйлдвэрлэгчийн тайлбарласнаар Explorer pHAT -ийг угсарна. Би pHATs I/O порт руу холбогч кабелийг хялбаршуулсан байдлаар холбохын тулд нэг эгнээний эмэгтэй толгойг нэмсэн. Pi -ээ тохируулаад Pimoroni -ийн тайлбарласнаар Explorer HAT/pHAT -д зориулсан Пиморони номын санг суулгаарай. Pi -г унтрааж, pHAT -ийг Pi дээр холбоно уу. Утасыг огтолж, төгсгөлийг нь боож, LED сүлжээнээс зайны багцыг салга. 2 ширхэг 2 ширхэг эрэгтэй холбогч кабелийг дундуур нь хайчилж, утасны үзүүрийг нь тугал. Холбогч кабелийг LED хэлхээнд гагнаж, наалдамхай тууз эсвэл агшилтын хоолой ашиглан гагнуурын цэгүүдийг тусгаарлана. Гагнахаас өмнө аль утсыг нэмэх эсвэл газардуулгын порт руу холбох ёстойг шалгаж, зохих ёсоор тэмдэглээрэй. Би янз бүрийн өнгөт холбогч утас ашигладаг байсан бөгөөд LED, диффузор, дэлгэцийн хуудсыг зохих хэмжээгээр барихын тулд хөөсийг хайчилж ав. LED барих хавтан дээр LED байрлуулах байрлалыг тэмдэглээд хөөс рүү 3-5 мм-ийн нүх гарга. Дараа нь 24 LED -ийг өгөгдсөн байрлалд оруулна. Өнгөт цаас, диффузор хавтанг LED хавтан дээр байрлуулна уу (зургийг үзнэ үү). Хөөсний давхаргыг хүрээ дотор засах, жишээ нь. наалдамхай тууз ашиглан. LED туузны кабелийг Explorer pHAT -ийн "мотор" порт руу холбоно уу. Тохируулж болох хувилбарын хувьд потенциометр, товчлуур, хяналтын LED (ба/эсвэл дуут дохио), резисторыг талхны тавцан дээр байрлуулж, Explorer pHAT -ийн харгалзах портуудтай холбоно уу.

Pi -ээ эхлүүлээд Pimoroni вэбсайт дээр тайлбарласны дагуу шаардлагатай номын санг суулгаад дараа нь өгсөн Python 3 скриптийг ажиллуулна уу. Хэрэв LED хэлхээний аль нэг нь ажиллахгүй бол буруу чиглэлд холбогдсон байж магадгүй юм. Дараа нь та pHAT дээрх нэмэх/хасах холболтыг өөрчлөх эсвэл програмд өөрчлөлт оруулах боломжтой. "eh.motor.one.backwards ()" -ийг "… урагш ()" болгож өөрчилнө үү.

Та програмын дотор өөрчилж болох тогтмол тохиргоотой скриптүүдийг олох бөгөөд зарим тохиргоог потенциометрээр өөрчлөх, товчлууруудыг ашиглан гэрлийн мөчлөгийг эхлүүлэх, зогсоох боломжтой болно. Скриптийг өөрийн "амьсгалах гэрэл" -ийн зохион байгуулалтад тохируулах нь тийм ч хэцүү биш байх ёстой.

Алхам 3: Python скриптүүд

Pimoroni -ийн Explorer HAT/pHAT -д зориулсан Python номын сан нь HATs -ийн I/O портууд дээр хавсаргасан бүрэлдэхүүн хэсгүүдийг хялбархан оруулж өгдөг. "Eh.two.motor.backwards (80)" гэсэн хоёр жишээ нь PWM/мотор порт 2 -т залгагдсан төхөөрөмжийг 80% хамгийн их эрчимтэйгээр урагш чиглүүлдэг, "eh.output.three.flash ()" нь LED -ийг холбосон болгодог. Би гэрлийн хэд хэдэн хувилбарыг үүсгэсэн бөгөөд үндсэндээ дөрвөн товчлуур, потенциометр хүртэл нэмэх замаар хяналтын түвшинг нэмэгдүүлсэн. "Амьсгалах гэрэл тогтмол лин косин.py "програмын бүх дөрвөн параметрийн тохиргоог өөрчлөх шаардлагатай. Нэмж дурдахад "Breathing light var lin cosin.py" хэмээх хувилбар нь хоёр бүдэгрүүлэх фазын уртыг хоёр потенциометр, хамгийн боловсронгуй хувилбар болох "Breathing light var lin cosin3.py" гэсэн дөрвөн потенциометр ба түлхэх товчлуурын хувилбарт тохируулж болно.. Програмуудыг Python 3 дээр бичсэн болно.

Бүх тохиолдолд дугуй унах үйл явцыг хоёр товчлуур ашиглан өдөөж, зогсоож болно, дөрвөн товчлуурын хувилбарт та үйл явцыг тасалдуулж, дахин эхлүүлж болно. Нэмж дурдахад дижитал гаралтын порт руу дөрвөн үе (өнгөт) LED холбож болох бөгөөд энэ нь тодорхой үе шатуудыг илтгэнэ. Төхөөрөмжийн эргэлт дөрвөн үе шатаас бүрдэнэ.

- "Амьсгалах" үе шат, дээд LED нь бага зэрэг бүдэг, доод LED нь эрчимийг нэмэгдүүлдэг

- "Амьсгалаа барих" үе, дээд LED -ийг унтрааж, доод LED -ийг хамгийн дээд хэмжээнд хүртэл тохируулна

- "Амьсгалах" үе шат, доод LED нь бүдэгрэх ба дээд LED нь эрч хүчийг нэмэгдүүлдэг

- "Амьсгалах" үе шат, доод LED -ийг унтрааж, дээд LED нь хамгийн их асдаг.

Бүх дөрвөн үе шатны уртыг тоон параметрээр тодорхойлдог бөгөөд үүнийг програмд суулгаж болох ба/эсвэл потенциометр ашиглан тохируулж болно.

Тав дахь параметр нь хамгийн их эрчмийг тодорхойлдог. Энэ нь LED -ийн хамгийн дээд гэрэлтүүлгийг тохируулах боломжийг олгодог бөгөөд хэрэв та үүнийг шөнийн гэрэл болгон ашиглахыг хүсч байвал ашиглах боломжтой болно. Нэмж дурдахад энэ нь гэрэлтүүлэх үйл явцыг сайжруулах боломжийг танд олгоно, учир нь 80 -аас 100% -ийн эрчмийн хоорондох ялгааг харахад хэцүү юм шиг надад санагдаж байна.

Би фазын хооронд илүү уялдаа холбоог бий болгодог тул гэрэлтүүлгийг нэмэгдүүлэх/бууруулах зорилгоор нэмэлт (синусын) функцийг нэмж оруулсан. Бусад функцүүдийг туршиж үзээрэй. Жишээлбэл Та завсарлагааг арилгаж, LED хэлхээний хувьд хоёр өөр (нарийн төвөгтэй) синусын функцийг ашиглаж, давтамж, далайцыг потенциометрээр тохируулж болно.

# "Амьсгалах" гэрэл: хоёр товчлуур ба хоёр потенциометрийн хувилбар

# Pimoroni Explorer pHAT -ийн галт жишээний өөрчлөлт # энд: мотор/ХОУХ -ны утгуудын бууралт # шугаман функцийн хувьд шугаман болон хэлгүй косинус функцийн дууг хаах # Энэ хувилбар "var" нь аналог оролтыг уншдаг, урьдчилан тодорхойлсон тохиргоог хүчингүй болгодог # уншдаг дижитал оролт, "" "эхлүүлэх, зогсоох товчлуурууд нь Pi -г асаахад эхлэхийн тулд та Cron: Cron -ийг ашиглан ажлын хуваарь гаргахад зориулагдсан Unix програм бөгөөд скрипт ажиллуулах боломжийг олгодог тохиромжтой @дахин ачаалах функцтэй. Таны Pi ачаалах болгонд. Терминал нээгээд crontab -e гэж бичээд crontab -аа засна уу. #-р эхэлсэн бүх мөрүүдийг өнгөрөөж файлын ёроол руу гүйлгээд дараах мөрийг нэмнэ үү (хэрэв таны код байгаа бол. "" "импортын цаг импортлох судлаач eh import math тогтмол утгууд гэж # sinus xmax = 316 step = 5 # step width, жишээ нь 315/5 нь 63 алхам/мөчлөгийн эхлэх_товчлуур = 0 # энэ нь оролтын порт руу холбогдсон түлхэх товчлуурын төлөвийг тодорхойлдог no 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 # % -тай ижил # LED -ийн "амьсгалах" сэтгэгдлийг оновчтой болгож, анивчихыг багасгах боломжтой. l_cosin = косинусын гаралтай утгатай # жагсаалт (100> = x> = 0) l_lin = # шугаман утгатай жагсаалт (100> = x> = 0) # i мужид cosinus функцын жагсаалт үүсгэх (0, 316, 3): # 315 нь Pi*100, 105 алхамтай ойролцоо байна # хэвлэх (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 # хэвлэх (l_lin) # уйтгартай жагсаалтыг харуулна print () print ("" "Гэрлийн мөчлөгийг эхлүүлэхийн тулд" Start "товчлуурыг дарна уу (Нэг оролт)" "") print () хэвлэх ("" "зогсоох. гэрэл, "Зогсоох" товчлуурыг дарж барина уу (Гурван оролт) нэг дугаар товчлуур eh.output.one.blink () # нэг удаа LED анивчих. унтах (0.5) # секундэд хоёр удаа унших = тийм ээ alog.one.read () # нь улаан-> ногоон налуу хурдны зогсолтыг тодорхойлдог_1 = set_1*0.02 # утга нь 0-1.13 сек/алхам хэвлэх хооронд хэлбэлзэнэ ("set_1:", set_1, " -> pause _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 () # нь LED эсвэл дуут дохиог жолоодож болно. eh.motor.one.backwards (fx) eh.motor.two.backwards (max_intens_100-fx) time.sleep (pause_1) eh.output.one.off () '': fx = max_intens*l_cosin [x] # шугаман муруй eh.motor.one.backwards (fx) eh.motor.two.backwards (max_intens_100-fx) time.sleep (pause_1) eh.output.one.off () # Stop товчлуур дарагдсан эсэхийг шалгана уу stop_button = eh.input.three.read () # Амьсгалах үе дуусахад eh.output.two.on () # "амьсгалаа үргэлжлүүл" гэж түр зогсооно уу eh.motor.one. ухрах (0) eh.motor.two.backwards (max_intens_100) time.sleep (pause_3) eh.output.two.off () # Stop Button дарагдсан эсэхийг шалгана уу stop_button = eh.input.three.read () # "амьсгал гаргах" үе eh.output.three.on () # x "len (l_lin)) диодын гурван инчийн LED-ийг асаана уу: fx = max_intens*l_lin [x] # шугаман муруй eh.motor.one.backwards (max_intens_100-fx) eh.motor.two.backwards (fx) time.sleep (pause_2) '' 'for x for range ухрах (fx) цаг. унтах (pause_2) eh.output.three.off () # Stop Button дарагдсан эсэхийг шалгана уу stop_button = eh.input.three.read () output.four.on () eh.motor.one.backwards (max_intens_100) eh.motor.two.backwards (0) time.sleep (pause_4) eh.output.four.off () #Stop товчлуур дарагдсан эсэхийг шалгах = eh.input.three.read () # shutdown, бүх гаралтын портуудыг эргүүлэх 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 ), болон налуу байхгүй (#5 ).;

Алхам 5: Зарим тайлбар

Буруу нэр томъёо, алдаа, алдаа гаргасан бол уучлал хүсье. Би англи хэлээр ярьдаг хүн биш, цахилгаан, электроник, програмчлалын чиглэлээр нарийн мэдлэг эзэмшээгүй. Энэ нь үнэндээ би өөрийн хэлээр зөв нэр томъёог бараг мэддэггүй зүйлийн талаар англи хэлээр зааварчилгаа өгөхийг хичээж байна гэсэн үг юм. Тиймээс сайжруулах зөвлөмж, залруулга, санааг хүлээн авах боломжтой

Зөвлөмж болгож буй: