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

Дохионы удирдлагатай хэт авианы Pi төгөлдөр хуур!: 10 алхам (зурагтай)
Дохионы удирдлагатай хэт авианы Pi төгөлдөр хуур!: 10 алхам (зурагтай)

Видео: Дохионы удирдлагатай хэт авианы Pi төгөлдөр хуур!: 10 алхам (зурагтай)

Видео: Дохионы удирдлагатай хэт авианы Pi төгөлдөр хуур!: 10 алхам (зурагтай)
Видео: 5 САМЫХ ИННОВАЦИОННЫХ ЭЛЕКТРОМОБИЛЕЙ 2021 ГОДА (ПЕРВЫЕ В МИРЕ) 2024, Долдугаар сарын
Anonim
Image
Image
Дохионы удирдлагатай хэт авианы Pi төгөлдөр хуур!
Дохионы удирдлагатай хэт авианы Pi төгөлдөр хуур!

Энэхүү төсөл нь хямд үнэтэй HC-SR04 хэт авианы мэдрэгчийг оролт болгон ашигладаг бөгөөд өндөр чанартай дуу гаргахын тулд Raspberry Pi дээрх синтезатороор тоглуулах боломжтой MIDI тэмдэглэлийг бий болгодог.

Төсөлд дохио зангаа хянах үндсэн хэлбэрийг ашигладаг бөгөөд хөгжмийн зэмсгийг хамгийн гадна талын хоёр мэдрэгч дээр хэдэн секундын турш барьснаар өөрчилж болно. Та хийж дууссаныхаа дараа Raspberry Pi -г хаахын тулд өөр дохио зангаа ашиглаж болно.

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

Би энэ төслийг The Gizmo Dojo (Broomfield, CO дахь миний орон нутгийн үйлдвэрлэгчид) -тэй хамтран орон нутгийн STEM/STEAM арга хэмжээ, Maker Faires -д авч болох зарим интерактив үзмэрүүдийг хийхийн тулд бүтээсэн.

Мөн энэ төслийн Python хувилбарын талаархи мэдээллийг агуулсан https://theotherandygrove.com/octasonic/ дээрх хамгийн сүүлийн үеийн баримт бичиг, хичээлүүдтэй танилцана уу (энэ заавар нь Rust хувилбарт зориулагдсан болно).

Алхам 1: Найрлага

Энэхүү зааварчилгааны хувьд танд дараах найрлага хэрэгтэй болно.

  • SD карттай Raspberry Pi (2 эсвэл 3)
  • 8 HC-SR04 хэт авианы мэдрэгч
  • Octasonic Breakout Board
  • Хоёр чиглэлтэй логик түвшний хөрвүүлэгч
  • Хэт авианы мэдрэгчийг холбох зориулалттай 32 х 12 "Эмэгтэй-Эмэгтэй холбогч утас
  • Raspberry Pi, Octasonic, Logic Level Converter-ийг холбох 13 x 6 "Эмэгтэй-Эмэгтэй холбогч утас
  • Raspberry Pi -ийн тохиромжтой цахилгаан хангамж
  • PC чанга яригч эсвэл үүнтэй төстэй

Боломжтой бол Raspberry Pi 3 -ийг ашиглахыг зөвлөж байна, учир нь энэ нь илүү тооцоолох чадвартай тул илүү мэдрэмжтэй, тааламжтай дуу гаргах болно. Энэ нь Raspberry Pi 2 -тэй бага зэрэг тохируулгатай ажиллах боломжтой боловч би энэ төсөлд анхны Raspberry Pi -ийг ашиглахыг оролдохгүй.

HC -SR04 хэт авианы мэдрэгч нь 5V, GND, Trigger, Echo гэсэн 4 холболттой. Ихэвчлэн Trigger ба Echo нь микроконтроллер эсвэл Raspberry Pi -ийн тусдаа тээглүүртэй холбогддог боловч энэ нь 8 мэдрэгчийг холбохын тулд 16 зүү ашиглах шаардлагатай болно гэсэн үг бөгөөд энэ нь практик биш юм. Энэ бол Octasonic таслах самбар юм. Энэ самбар нь бүх мэдрэгчтэй холбогддог бөгөөд тусгай микроконтроллертой бөгөөд мэдрэгчийг хянадаг бөгөөд дараа нь Raspberry Pi -тэй SPI дамжуулдаг.

HC-SR04 нь 5V, Raspberry Pi нь ердөө 3.3V хүчдэл шаарддаг тул Raspberry Pi-ийг Octasonic таслах самбартай холбох логик түвшний хөрвүүлэгч хэрэгтэй болно.

Алхам 2: Хэт авианы мэдрэгчийг Octasonic самбартай холбоно уу

Хэт авианы мэдрэгчийг наймдугаар хавтантай холбоно уу
Хэт авианы мэдрэгчийг наймдугаар хавтантай холбоно уу
Хэт авианы мэдрэгчийг наймдугаар хавтантай холбоно уу
Хэт авианы мэдрэгчийг наймдугаар хавтантай холбоно уу

Хэт авианы мэдрэгч бүрийг самбарт холбохын тулд 4 эмэгтэй, эмэгтэй холбогч утас ашиглан зөв холбож өгөх хэрэгтэй. Самбарыг хэт авианы мэдрэгч дээрх тээглүүртэй ижил дарааллаар байрлуулахаар зохион бүтээжээ. Самбар дээр зүүнээс баруун тийш зүү нь GND, Trigger, Echo, 5V байна.

Алхам 3: Логик түвшний хөрвүүлэгчийг Octasonic Board -тэй холбоно уу

Логик түвшний хөрвүүлэгчийг Octasonic Board -тэй холбоно уу
Логик түвшний хөрвүүлэгчийг Octasonic Board -тэй холбоно уу

Raspberry Pi болон Octasonic Board нь SPI -ээр дамжуулан харилцдаг. SPI нь 4 утас ашигладаг:

  • Мастер, боолчлол (MISO)
  • Master Out, Slave In (MOSI)
  • Цуваа цаг (SCK)
  • Боол сонгох (SS)

Нэмж хэлэхэд бид хүчийг (5V ба GND) холбох хэрэгтэй.

Логик түвшний хөрвүүлэгч нь бага хүчдэл (LV) ба өндөр хүчдэл (HV) гэсэн хоёр талтай. Raspberry нь 3.3V тул LV тал руу холбогдох болно. Octasonic нь 5V хүчдэлтэй тул HV тал руу холбогдох болно.

Энэ алхам нь Octasonic -ийг логик түвшний хөрвүүлэгчийн HV тал руу холбоход зориулагдсан болно

Логик түвшний хөрвүүлэгчид ямар зүү холбох ёстойг харуулсан энэ алхамыг хавсаргасан зургийг үзнэ үү.

Octasonic -ээс Логик түвшин хөрвүүлэгч рүү холбогдох холболтууд дараах байдлаар байх ёстой.

  • 5V -аас HV хүртэл
  • SCV -ээс HV4 хүртэл
  • MISO -аас HV3 хүртэл
  • MOSI -ээс HV2 хүртэл
  • SS -ээс HV1 хүртэл
  • GND -ээс GND хүртэл

Алхам 4: Логик түвшин хөрвүүлэгчийг Raspberry Pi -тэй холбоно уу

Логик түвшин хөрвүүлэгчийг Raspberry Pi -тэй холбоно уу
Логик түвшин хөрвүүлэгчийг Raspberry Pi -тэй холбоно уу

Raspberry Pi болон Octasonic Board нь SPI -ээр дамжуулан харилцдаг. SPI нь 4 утас ашигладаг:

  • Мастер, боолчлол (MISO)
  • Master Out, Slave In (MOSI)
  • Цуваа цаг (SCK)
  • Боол сонгох (SS)

Нэмж хэлэхэд бид хүчийг (3.3V ба GND) холбох хэрэгтэй. Логик түвшний хөрвүүлэгч нь бага хүчдэл (LV) ба өндөр хүчдэл (HV) гэсэн хоёр талтай. Raspberry нь 3.3V тул LV тал руу холбогдох болно. Octasonic нь 5V хүчдэлтэй тул HV тал руу холбогдох болно.

Энэ алхам нь Raspberry Pi -ийг логик түвшний хөрвүүлэгчийн LV тал руу холбоход зориулагдсан болно

Raspbery Pi -ээс Логик түвшний хөрвүүлэгч рүү холбогдох холболтууд дараах байдлаар байх ёстой.

  • 3.3V -аас LV хүртэл
  • GPIO11 (SPI_SCLK) -ээс LV4 рүү
  • GPIO09 (SPI_MISO) - LV3
  • GPIO10 (SPI_MOSI) - LV2
  • GPIO08 (SPI_CE0_N) SS -ээс LV1 хүртэл
  • GND -ээс GND хүртэл

Raspberry Pi дээрх зөв зүүг олохын тулд энэ алхамд хавсаргасан диаграмыг ашиглана уу!

Алхам 5: Raspberry Pi 5V -ийг Octasonic 5V -тэй холбоно уу

Raspberry Pi 5V -ийг Octasonic 5V -тэй холбоно уу
Raspberry Pi 5V -ийг Octasonic 5V -тэй холбоно уу
Raspberry Pi 5V -ийг Octasonic 5V -тэй холбоно уу
Raspberry Pi 5V -ийг Octasonic 5V -тэй холбоно уу

Нэмэх нэг эцсийн утас байна. Бид Octasonic хавтанг 5V -ээр тэжээх хэрэгтэй бөгөөд ингэснээр Raspberry Pi 5V -ийн нэг зүүг Octasonic AVR толгой дээрх 5V зүү рүү холбож хийдэг. Энэ бол AVR толгойн блок дахь зүүн доод зүү юм (энэ нь самбарын баруун дээд талд байгаа 2 x 3 блок юм). AVR блок хаана байгааг хавсаргасан зургийг үзнэ үү.

Raspberry Pi дээрх 5V зүүг олохын тулд хавсаргасан бусад диаграмыг үзнэ үү.

Алхам 6: Програм хангамжийг суулгана уу

Raspian програмыг суулгана уу

Raspbian Jessie -ийг цэвэр суулгаж эхлүүлээд дараа нь хамгийн сүүлийн хувилбар болгон шинэчилнэ үү.

sudo apt-get update

sudo apt-get шинэчлэлт

SPI -ийг идэвхжүүлэх

Энэ төслийг ажиллуулахын тулд та Raspberry Pi дээрх SPI -ийг идэвхжүүлэх ёстой! Үүнийг хийхийн тулд Raspberry Pi Configuration хэрэгслийг ашиглана уу.

Мөн SPI -ийг хүчин төгөлдөр болгохын тулд идэвхжүүлсний дараа Pi -г дахин ачаалах нь чухал юм

FluidSynth -ийг суулгана уу

Fluidsynth бол гайхалтай үнэгүй MIDI синтез програм хангамж юм. Та үүнийг дараах тушаалаар тушаалын мөрөөс суулгаж болно.

sudo apt-get install fluidsynth

Rust програмчлалын хэлийг суулгана уу

Хэт авианы Pi төгөлдөр хуурыг Mozilla -ийн Rust програмчлалын хэл дээр хэрэгжүүлдэг (энэ нь C ++ шиг боловч муу битгүй). Өнөө үед бүх дажгүй хүүхдүүд үүнийг ашиглаж байна.

Rust -ийг суулгахын тулд https://rustup.rs/ дээрх зааврыг дагана уу. Цаг хэмнэхийн тулд зааварчилгаа нь энэ нэг тушаалыг ажиллуулах явдал юм. Суулгах явцад аливаа асуултын үндсэн хариултыг хүлээн авах боломжтой.

ТАЙЛБАР: Энэхүү зааварчилгааг нийтлэснээс хойш Raspberry Pi дээр Rust суулгахад зарим асуудал гардаг. Буруу цаг:-/ гэхдээ би асуудлыг шийдэхийн тулд доорх тушаалыг өөрчилсөн. Тэд үүнийг удахгүй засах болно гэж найдаж байна. Хүмүүс SD карт руу татаж аваад шарах боломжтой зургийг бүтээхээр ажиллаж байна. Хэрэв та үүнийг хүсч байвал надтай холбоо барина уу.

экспортлох RUSTUP_USE_HYPER = 1curl https://sh.rustup.rs -sSf | ш

Хэт авианы Pi төгөлдөр хуурын эх кодыг татаж аваарай

Хэт авианы Pi төгөлдөр хуурын эх кодыг github дээр байрлуулсан болно. Кодыг авах хоёр сонголт байдаг. Хэрэв та git болон github -ийг сайн мэддэг бол репо -г хуулбарлах боломжтой.

git clone [email protected]: TheGizmoDojo/UltrasonicPiPiano.git

Эсвэл та хамгийн сүүлийн кодын зип файлыг татаж авах боломжтой.

Эх кодыг эмхэтгэх

cd UltrasonicPiPiano

ачааны хийц -гаргах

Кодыг туршиж үзээрэй

Дараагийн алхамд хөгжим хийхээс өмнө програм хангамж ажиллаж байгаа бөгөөд мэдрэгчээс зөв өгөгдлийг унших боломжтой эсэхийг шалгаарай.

Програмыг ажиллуулахын тулд дараах тушаалыг ашиглана уу. Энэ нь мэдрэгчийн өгөгдлийг уншиж, тэдгээрийг MIDI тэмдэглэл болгон хөрвүүлж, консол дээр хэвлэх болно. Мэдрэгч дээр гараа хөдөлгөж байхдаа өгөгдөл үүсгэж байгааг харах хэрэгтэй. Үгүй бол зааварчилгааны төгсгөлд байгаа алдааг олж засварлах хэсэгт очно уу.

ачааны гүйлт -гаргах

Хэрэв та сонирхож байгаа бол "-суллах" туг нь Rust-ийг анхдагч "-debug" тохиргооноос ялгаатай нь кодыг аль болох үр дүнтэй эмхэтгэхийг хэлдэг.

Алхам 7: Хөгжим хийцгээе

Та эх кодыг татаж авсан лавлах дотор байгаа эсэхээ шалгаад дараах тушаалыг ажиллуулна уу.

Энэхүү "run.sh" скрипт нь кодыг эмхэтгэсэн эсэхийг шалгаж, кодыг ажиллуулж, гаралтыг fluidsynth руу дамжуулдаг.

./run.sh

Raspberry Pi дээрх 3.5 мм аудио үүрэнд өсгөгч чанга яригч байгаа эсэхийг шалгаарай, мэдрэгч дээр гараа хөдөлгөж байхдаа хөгжим сонсох ёстой.

Хэрэв та хөгжим сонсдоггүй бөгөөд HDMI дэлгэц хавсаргасан бол аудио гаралт нь тийшээ явж магадгүй юм. Үүнийг засахын тулд энэ тушаалыг ажиллуулаад Pi төгөлдөр хуураа дахин эхлүүлнэ үү.

sudo amixer cset numid = 3 1

Дууны хэмжээг өөрчлөх

Эзлэхүүнийг (эсвэл "олз") "-g" параметрээр fluidsynth-д зааж өгсөн болно. Та run.sh скриптийг өөрчилж, энэ утгыг өөрчилж болно. Энэ параметрийн бага зэргийн өөрчлөлт нь эзлэхүүн их хэмжээгээр өөрчлөгдөхөд хүргэдэг тул үүнийг бага хэмжээгээр (0.1 эсвэл 0.2 гэх мэт) нэмэгдүүлэхийг хичээгээрэй.

Алхам 8: Дохионы хяналт

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

Үзэл баримтлал нь маш энгийн. Програм хангамж нь аль мэдрэгчийг хамарсан (10см дотор), аль нь хамаарахгүй болохыг хянадаг. Энэ нь 8 хоёртын тоог (1 эсвэл 0) орчуулдаг. Энэ нь маш тохиромжтой, учир нь 8 хоёртын тооны дараалал нь 0 -ээс 255 хүртэлх тоог илэрхийлэх боломжтой "байт" болгодог. Хэрэв та хоёртын тоонуудын талаар мэдэхгүй байгаа бол би заавар хайхыг зөвлөж байна. Хэрэв та програмчлалын талаар илүү ихийг мэдэхийг хүсч байвал хоёртын тоонууд нь суралцах үндсэн ур чадвар юм.

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

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

Алхам 9: Хашлага хийх

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

Алхам 10: Алдааг олж засварлах, дараагийн алхамууд

Алдааг олж засварлах

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

Өөр нэг нийтлэг асуудал бол SPI -ийг идэвхжүүлж чадахгүй байгаа бөгөөд pi -ийг дахин ачаалах явдал юм.

Https://theotherandygrove.com/octasonic/ хаягаар зочилж, алдааг олж засварлах зөвлөмж, Rust, Python -ийн тусгай нийтлэлүүд, мөн хэрхэн дэмжлэг авах талаархи мэдээллийг авна уу.

Дараагийн алхмууд

Төслийг ажиллуулсны дараа би кодыг туршиж үзээд өөр өөр хөгжмийн зэмсэг туршиж үзэхийг зөвлөж байна. MIDI хэрэгслийн кодууд нь 1 -ээс 127 хооронд байдаг бөгөөд энд баримтжуулсан болно.

Мэдрэгч бүр өөр өөр октав тоглодог ганц хөгжмийн зэмсэг хүсч байна уу? Магадгүй та мэдрэгч бүрийг тусдаа хэрэгсэл болгохыг хүсч байна уу? Боломжууд бараг хязгааргүй юм!

Энэхүү зааварчилгаа танд таалагдсан гэж найдаж байна. Хэрэв танд таалагдсан бол таалагдаж, энд болон миний YouTube сувагт бүртгүүлж, ирээдүйн төслүүдээ үзээрэй.

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