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

Холи-зангиа: 8 алхам (зурагтай)
Холи-зангиа: 8 алхам (зурагтай)

Видео: Холи-зангиа: 8 алхам (зурагтай)

Видео: Холи-зангиа: 8 алхам (зурагтай)
Видео: Бесшовные следки на 2-х спицах с красивой регланной линией. Подробный мастер класс ДЛЯ НАЧИНАЮЩИХ. 2024, Долдугаар сарын
Anonim
Image
Image

By gwfongMonkey PatchingFollow More by the müəllif:

Гэрэлтдэг нохойн налуу зам
Гэрэлтдэг нохойн налуу зам
Ган зүрх ба хайлуулсан шилэн баримал
Ган зүрх ба хайлуулсан шилэн баримал
Ган зүрх ба хайлуулсан шилэн баримал
Ган зүрх ба хайлуулсан шилэн баримал
Зэс утас ба хайлуулсан шилэн эрвээхэй
Зэс утас ба хайлуулсан шилэн эрвээхэй
Зэс утас ба хайлуулсан шилэн эрвээхэй
Зэс утас ба хайлуулсан шилэн эрвээхэй

Тухайн тухай: Гайхалтай зүйл хийх гэж байгаа залуу зүгээр л gwfong -ийн тухай »

Энэ бол баярын үеэр өмсөх зориулалттай баярын зангиа юм. Flora хавтанг ашигладаг Becky Stern-ийн Ampli-Tie дээр үндэслэсэн Holi-Tie нь Circuit Python Express (CPX) микроконтроллерийг ашиглан NeoPixel анимаци болон хөгжмийг жолооддог. Нэг товчлуур нь 2 өөр NeoPixel анимацын хооронд өөрчлөгддөг. Мэдрэгч багтаамж нь NeoPixel -ийн өнгө, хөдөлгөөнт хурдыг өөрчилдөг. Нөгөө товчлуур нь LED анимац болон хөгжим хооронд өөрчлөгддөг. Самбар дээрх микрофоныг VU тоолуурын хөдөлгөөнт орчны дуу чимээг хэмжихэд ашигладаг. Мөн CPX чанга яригч нь баярын чип аяыг гаргадаг.

Бүгдийг CircuitPython систем дээр ажилладаг Python програмчлалын хэл ашиглан кодчилдог. Энэ нь 3.7V, 500mAH LiPo батерейгаар ажилладаг бөгөөд асаах/унтраах унтраалттай байхаар өөрчлөгдсөн байна.

Holi-Tie-ийг харуулсан хоёр видео клип байна:

  • Холи-зангиа дууссан
  • Холи-зангиа дотор

Алхам 1: Эд анги, багаж хэрэгсэл

Эд анги

  • Тоглоомын талбайн экспресс
  • 15x Flora неопиксел
  • Соронзон утас
  • Наалдамхай дэгээ ба гогцоо соронзон хальс
  • JST холбогчтой 500mAH lipo зай
  • Чихэр таяг зангиа
  • Мини слайд унтраалга, SPDT
  • Дулаан багасгах хоолой

Эд ангиудыг худалдаж авахдаа нэмэлт зүйл худалдаж авах нь ухаалаг хэрэг болно. Би нийт 20 NeoPixel -тэй байсан бөгөөд нэг нь эхнээсээ эвдэрч, нэгийг нь би сүйтгэсэн. Чихэр таяг зангиа нь маш хямд байсан тул эхнийхийг нь эвдсэн тохиолдолд би хоёр дахь нь худалдаж авлаа.

Багаж хэрэгсэл

  • Халуун цавуу буу
  • Гагнуурын станц
  • Утас таслагч
  • Жижиг хутга
  • Мультиметр
  • Компьютер
  • Хөнгөн эсвэл дулааны буу
  • Утас ба зүү

Алхам 2: Зангиа унших

Зангиа уншиж байна
Зангиа уншиж байна
Зангиа уншиж байна
Зангиа уншиж байна
Зангиа уншиж байна
Зангиа уншиж байна

Гол зорилго нь дотоод бэхэлгээний цөмд нэвтрэх, LED -ийг хаана байрлуулахыг зааж өгөх шугамыг тогтоох явдал юм.

Алхам 1: Зангиаг байрлалд нь уя

Цахилгаан хэрэгсэл байгаа үед зангиа зангидахад хэцүү байх болно. Тиймээс зангиа зангидаж, сайхан харагдаж, зангилаа нэлээд бат бөх байх бөгөөд задрахгүй. Дараа нь зангианыхаа жижиг үзүүрийг болгоомжтой татаж, толгой дээрээ зангиа авахын тулд нүхийг нээнэ үү. Энэ бол тэнцсэн дээр ажиллах байр суурь юм.

Янз бүрийн төрлийн зангидах зангилаа байдаг. Би багаасаа сурч мэдсэн Виндзорыг л мэднэ. Аль зангилаа ашиглаж байгаа нь хамаагүй байх ёстой.

Алхам 2: Зангианы арын хэсгийг нээнэ үү

Залгуурын гогцоо ба логоны нэг талын оёдолыг нээж, дараа нь зангианы төвөөс доошлуул. Төгсгөлд нь буцааж оёх ёстой тул болгоомжтой байгаарай.

Алхам 3: LED -ийг байрлуулах шугамыг зур

LED нь зангианы цагаан туузны хэсэгт гарч ирэхийн тулд уяаны цөмийн ар талд цагаан туузны хэсэг бүрийн төв шугамыг олж, дараа нь уяаны цөмийн урд талд байрлуулах нь илүү хялбар болно. Дунд шугам нь 1) төвд, 2) туузтай зэрэгцээ байгаа эсэхийг шалгаад дахин шалгана уу. LED байрлалыг нарийн тохируулах нь жаахан зайтай байвал боломжтой болно. Гэхдээ үүнийг хожим гэхээсээ илүү яг одоо яг ойролцоо байлгах нь дээр.

Шугаман дээр LED байрлуулж, туузан даавууг дээрээс нь тавьснаар шугамын төвийг шалгаж үзээрэй. Шаардлагатай газраа тохируулна уу.

Алхам 3: NeoPixels холбох

NeoPixels -ийг холбох
NeoPixels -ийг холбох
NeoPixels -ийг холбох
NeoPixels -ийг холбох
NeoPixels -ийг холбох
NeoPixels -ийг холбох
NeoPixels -ийг холбох
NeoPixels -ийг холбох

Үндсэндээ бид LED туузыг өөрсдөө хийж байна. Бид LED -ийг уяаны цөмд холбоод дараа нь хооронд нь холбоно.

Алхам 1: NeoPixels -ийг туузны цөмд наана

NeoPixel -ийн ар талд халуун цавуу түрхээд төв шугам дээр байрлуул. 3 NeoPixel бүхий хэсгүүдийн хувьд NeoPixel -ийн төвийг босоо байдлаар тэгшлээд эхлээд доош нь наа. Энэ нь зангианы өргөн нь дээрээс доошоо нэмэгддэг тул зүүн ба баруун NeoPixel -ийг төвтэй харьцуулахад хялбар болгоно.

Бүх NeoPixels -ийг зүүнээс баруун тийш нэг чиглэлд чиглүүлэхээ мартуузай. Хэрэв энэ нь буруу байвал тууз ажиллахгүй болно.

Халуун цавууны тухай тэмдэглэл. Төслийг дуусгахад хангалттай байх болно. Энэ нь олон жилийн турш үргэлжлэх эсэх талаар зөвхөн үзэх л үлдлээ.

Алхам 3: NeoPixels -ийг бие биендээ гагнана

Би NeoPixels -ийг дамжуулагч утас ашиглахын оронд гагнахаар шийдсэн тул NeoPixel дэвсгэр дээрх нүх нь бидний эсрэг бага зэрэг ажилладаг. Утасыг гагнахын тулд дэвсгэр дээрээс сайн газар олж аваарай. Нүхийг гагнуураар дүүргэхийг бүү оролдоорой, гэхдээ хэрэв ийм зүйл тохиолдвол зүгээр болно.

Соронзон утас нь зэс судлын эргэн тойронд нимгэн тусгаарлагч давхаргатай байдаг. Дулаан тусгаарлагчийг гагнаж байх төгсгөлд нь хутгаар хутгана. Утасны тойргийг бүхэлд нь хусах нь дээр.

Алхам 4: Холболтыг шалгах

Мультиметр ашиглан дараах холболтыг шалгана уу.

  1. Эерэг холболтууд. Үзүүрээс сүүл хүртэл холболт байх ёстой. Туршилтын холболтыг утсан дээр биш дэвсгэр дээр хийж байгаа эсэхийг шалгаарай.
  2. Газрын холболтууд. Үүнтэй ижил туршилтыг газрын дэвсгэрээр хий.
  3. Өгөгдлийн мөр бүр. Нэг өгөгдлийн самбараас нөгөө рүү холболт байгаа эсэхийг шалгаарай.

Алхам 4: Circuit Playground Express -ийг холбох

Тоглоомын талбайн тойрог замыг холбох
Тоглоомын талбайн тойрог замыг холбох

Circuit Playground Express (CPX) нь системийн зүрх юм. Adafruit нь энэхүү хянагчийн олон тооны хичээлүүдтэй. Энэхүү зааварчилгааны дараа би MCU -ийн цөөн хэдэн онцлог шинж чанаруудыг тодруулах болно.

Алхам 1: CPX -ийг NeoPixel -ийн доод хэсэгт гагнана

Соронзон утсыг цахилгаан, газардуулга, өгөгдөлд тохирох уртыг хайчилж ав. NeoPixel -ийн хүч, газардуулга, өгөгдлийн дэвсгэрт хүрэхийн тулд тэдгээрийг гол даавуугаар нь түлх. Гагнах, дэвсгэр дээр байгаа утаснууд сайн холболт хийж байгаа эсэхийг шалгаарай.

Дараа нь зангианы голыг эргүүлээд CPX -ийг хүссэн байрлалд байрлуул. Цахилгааны утсыг VOUT дэвсгэрт, газардуулгын утсыг ямар ч газардуулгад, өгөгдлийн утсыг A0 -ээс бусад оролт гаралтын дэвсгэрт өгнө. Миний бичсэн код A3 -ийг ашигладаг.

Холболтыг туршиж үзээрэй.

Алхам 2: CPX -ийг уя

Утас, зүү ашиглан тэнцүү зайтай дөрвөн дэвсгэр сонгоод уяаны гол дээр оё.

Алхам 5: CPX -ийг асаах

CPX -ийг тэжээж байна
CPX -ийг тэжээж байна
CPX -ийг тэжээж байна
CPX -ийг тэжээж байна
CPX -ийг тэжээж байна
CPX -ийг тэжээж байна

CPX дээр асаах/унтраах унтраалга байдаггүй. Энэ нь батерейг залгах үед зангиа асах болно гэсэн үг юм. Энэ нь батерейг салгах замаар л унтраах цорын ганц арга зам бөгөөд энэ нь ихээхэн бэрхшээл учруулдаг гэсэн үг юм. Энгийн шийдэл бол зайгаа унтраах/унтраах явдал юм.

Алхам 1: Шилжүүлэгч дээрх 3 -р зүүг таслана

Төвийн бус голуудын нэг нь шаардлагагүй болно. Шилжүүлэгчийн их биетэй уялдуулан таслана.

Алхам 2: Шилжүүлэгчийг зайны залгуурт гагнах

Зайны газардуулгын утсыг дунд нь хаа нэг газар хайчилж ав. Газрын утас тус бүр дээр дулаан багасгадаг хоолойг гулсуулна уу. Нэг газардуулгын утсыг нэг тээглүүрт, нөгөө газардуулгын утсыг нөгөө зүү рүү гагнана. Тэд бие биедээ хүрэхгүй эсвэл гагнуур нь төмөр биед хүрч байгаа эсэхийг шалгаарай.

Мультиметр ашиглан холбогдоогүй эсэхийг шалгаарай. Хоолойг гагнасан холболтын дээгүүр шургуулж, багасгана. Гулзайлтын ядаргаанаас болж бүтэлгүйтэх аливаа хэсэгт жаахан цахилгаан соронзон хальс нэмнэ.

Алхам 3: Батерей ажиллаж байгаа эсэхийг шалгаарай

Энэ үед зайг CPX -д залгах боломжтой. Хэрэв бүх зүйл сайн болсон бол шилжүүлэгч нь CPX -ийг асаах, унтраах боломжтой байх ёстой.

Алхам 4: Батерейг холбоно уу

Батерейны ар талд, зангилааны гол дээр бага зэрэг наалдсан дэгээ, гогцоо тууз тавь. Хэрэв зангиа хэт их зохицуулагдаагүй бол энэ нь хэвээр үлдэх болно.

Алхам 6: Тоглоомын талбайн экспресс хэлхээг тохируулах

Би CPX -ийг хэрхэн тохируулах талаар дэлгэрэнгүй ярихгүй. Адафрут үүнийг хийдэг, дараа нь заримыг нь хийдэг. Би байнга тулгардаг асуудлуудын талаар хэдэн зөвлөгөө өгөх болно.

CPX хөлддөг

Ажиллах цагийн санах ойн асуудлаас болж CPX ихэвчлэн хөлддөг байсан байх. Шуурхай засвар бол арилгах, дахин флаш хийх явдал юм. Эдгээр заавраас "Хуучин арга зам" -ыг хайж олоорой. Үндсэндээ энэ бол хэдхэн товчлуур дарж, устгахын тулд чирж унагаж, дараа нь дахин асаахын тулд чирж унагах явдал юм.

Анхааруулга: Энэ нь бүх зүйлийг устгадаг. CPX дээрх бүх код устах болно.

CPX -д өөрчлөлт оруулах нь асуудал үүсгэж болзошгүй юм

Заримдаа файлыг CPX дээр хадгалсны дараа python ажиллах хугацаа муу байдалд байдгийг би олж мэдсэн. Засварлах товчлуур дээр дарж python -ийн ажиллах хугацааг дахин эхлүүлсэн. Үүнийг ганцхан удаа дарна уу. Үүнийг хоёр удаа дарахад дахин флаш процесс эхэлнэ.

CPX дээр шууд хадгалах нь эрсдэлтэй

CPX-ийг дахин асаах шаардлагатай байдаг тул хүн бүх кодоо алдах эрсдэлтэй байдаг. Кодыг хоёр удаа алдсаны дараа би энгийн ажлын схемийг гаргаж ирэв. Би кодоо локал хатуу диск дээр хадгалах болно. Үүнийг CPX дээр туршихад бэлэн болмогц би энгийн байршуулах скрипт ажиллуулж хуулбарлах болно.

Алхам 7: Тоглоомын талбайн тойрог замыг кодлох

Энэ үед CPX болон NeoPixels нь бараг бүрэн дууссан байна. Тэдэнтэй өөр механик болон цахилгаан ажил хийх шаардлагагүй. Үлдсэн нь бүгд програм хангамж юм.

Кодыг миний github данснаас олж болно. Питоны үндсэн код нь бүх үйлдлийн системд ямар ч өөрчлөлт оруулахгүйгээр ажиллах ёстой. Adafruit CircuitPython -ийн гадаад номын санг бүү суулгаарай. Тэд ашиглагддаггүй.

Код дээр юу болж байгааг өндөр түвшний хураангуйг энд оруулав.

Ямар оролт юу хийдэг вэ?

  • А товчлуур: LED анимацаар дамждаг
  • Б товч: Дуунуудын дундуур эргэлддэг
  • Capacitive Touch Pad A1: LED анимацийн өнгийг өөрчилдөг
  • Capacitive Touch Pad A6: LED анимацийн хурдыг өөрчилдөг

3 анимэйшн байдаг боловч зөвхөн 2 нь хүчин төгөлдөр байна

code.py

pixelsoff импортлох

# импортын боть импортлох шат импортлох анивчих … led_animations = [pixelsoff. PixelsOff (пиксел), # vumeter. VuMeter (пиксел, 100, 400) шат. Тааз (пиксел), гялалзах

Би Ampli-Tie VU тоолуурын загварын кодыг зөөв. Энэ нь CPX микрофоныг ашиглан дууг авч, дууны далайц дээр үндэслэн NeoPixels -ийг гэрэлтүүлдэг. Гэсэн хэдий ч би илүү олон анимац хийхийг хүсч байсан. Санах ойн хязгаарлагдмал байдлаас шалтгаалан би ямар анимац хүсч байгаагаа сонгох шаардлагатай болсон. Анхдагч байдлаар нөгөө хоёр шат, Twinkle нь кодын өөрчлөлт хийхгүйгээр ажиллах болно. VU тоолуурын анимацийг ажиллуулахын тулд бусад хөдөлгөөнт дүрсүүдийн аль нэгийг эсвэл хоёуланг нь тайлбарлаж, VU тоолуурыг тайлбарлахгүй байх шаардлагатай.

Хөгжмийн менежер ба офлайн кодчилол

хүйтэн жавартай цасан хүн

music_notes -ийг mn болгон импортлох

# Frosty the Snowman # Walter E. Rollins дуу = [(mn. G4, mn. HLF), (mn. E4, mn. DTQ), (mn. F4, mn. ETH), (mn. G4, mn. QTR), (mn. C5, mn. HLF),…

convert_to_binary.py

дуу = [(jingle_bells.song, "jingle_bells.bin"), (frosty_the_snowman.song, "frosty_the_snowman.bin")] дуун дахь дууны хувьд: data = song [0] file = song [1] with open (file, "wb") bin_file байдлаар: өгөгдөл оруулахын тулд: хэвлэх ("бичих:" + str (оруулга)) note = оруулга [0] dur = оруулга [1] bin_file.write (struct.pack ("<HH", note, dur))

Би баярын хөгжим хүсч байсан. CPX нь WAV болон аяыг хоёуланг нь дэмждэг. WAV файлууд нь файлын хэмжээ болон ажиллах цагийн санах ойн хувьд хэт том хэмжээтэй болсон. Питоны өгөгдлийн бүтцийг ашиглан аялгуу, түүний үргэлжлэх хугацааг хэт их санах ойн санах ойд ашигладаг болсон. Тиймээс би Holi-Tie кодыг өөрчилсөн бөгөөд зөвхөн шаардлагатай дууны өгөгдлийг шахсан хоёртын форматтай шахсан хоёртын файлыг уншсан. Би скрипт бичсэн бөгөөд энэ нь python өгөгдлийн бүтцэд байгаа дууг уншиж, хоёртын форматаар бичдэг. Дууг файлд хоёртын өгөгдөл болгон кодчилсон байх нь дууг жижиг, динамик болгодог. Дуу тоглож дуусаад санах ой нь суллагдана.

Илүү олон дуу нэмэх нь утгагүй зүйл юм. Дэлгэрэнгүй мэдээллийг README.md -ээс дуунуудаас үзнэ үү.

A товчлуур нь NeoPixels -ийг хөдөлгөдөг, B хөгжим тоглодог, гэхдээ нэгэн зэрэг биш

code.py

def button_a_pressed ():

if music.is_playing (): # Хөгжим тоглож байвал хөгжимийг зогсоох хөгжим асаах эсвэл унтраах.stop () өөр: music.play ()

Хөгжмийн менежментийн илүү үр дүнтэй системтэй байсан ч гэсэн би 2 анимацыг ажиллуулах санах ойд багтааж чадаагүй бөгөөд 1 -ийг нь тоглуулж, дууг зэрэг тоглож чадаагүй. Ажиллах цагийн санах ойд VU тоолуур байхгүй байхыг би аль хэдийн сонгосон байсан тул би анимацийн тоог 1 хүртэл бууруулахыг хүсээгүй. Тиймээс би анимац тоглож байгаа эсвэл хөгжим тоглож байгаа боловч тоглоогүй байхаар кодоо бичсэн. хоёулаа. Өөр нэг сонголт бол NeoPixels -ийн тоог багасгах явдал байсан боловч энэ нь анимацийн сэрүүн байдлыг алдах болно.

Python кодын функц

Хэдийгээр би ахмад програм хангамж хөгжүүлэгч боловч Python бичээгүй байсан. Ухаан авч, кодлох, модульчлах гэх мэт сайн кодлох практикийг ажиглаж харсны дараа би хэт их санах ойн санах ой ашиглаж байснаа хурдан олж мэдэв. Тиймээс DRY бус код байдаг. Ажиллах цагийн санах ойн асуудлыг цаашид багасгахын тулд би const () гэх мэт MicroPython -ийн зарим техникийг ашиглах шаардлагатай болсон.

Эмхэтгэсэн модулиуд

эмхэтгэх

#!/bin/bash

хөрвүүлэгч = ~/development/circuitpython/mpy-cross-3.x-windows.exe cd дуунууд python3./convert_to_binary.py cd.. for in in *.py; хэрэв

Төслийн эхэнд би Адафрутын зөвлөгөөг дагаж, Adafruit CircuitPython -ийн бүх номын санг хурдан хадгалсан. Гэсэн хэдий ч энэ нь миний төсөлд бага зай үлдээсэн юм. CPX дээр кодоо авахын тулд би модулиудыг эмхэтгэж MCU дээр байрлуулж эхлэв. Энэ нь Holi-Tie-д гадны номын сангийн аль нь ч хэрэггүй юм шиг санагдаж байна. UF2 дахь одоо байгаа номын сангууд энэ төсөлд хангалттай байсан. *. Mpy файлуудыг ажиллуулах нь арай илүү үр дүнтэй байдаг тул би эмхэтгэсэн модулиудыг байршуулах үйл явцыг хадгалсаар ирсэн.

Дээрх хөрвүүлэх скриптээс харахад би Windows машин дээр ажиллаж байгаа боловч bash, python3 гэх мэт Unix хэрэгслүүдийг ашиглаж байна. Үүнийг хийхийн тулд би Cygwin ашигладаг. Энэ скриптийг DOS багц болон Windows -ийн уугуул Python3 програм руу хялбархан орчуулж болно.

Алхам 8: Зангиа товчлох

Зангиа товчлох
Зангиа товчлох
Зангиа товчлох
Зангиа товчлох

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

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