Orodha ya maudhui:

Piano ya Ultrasonic na Udhibiti wa Ishara!: Hatua 10 (na Picha)
Piano ya Ultrasonic na Udhibiti wa Ishara!: Hatua 10 (na Picha)

Video: Piano ya Ultrasonic na Udhibiti wa Ishara!: Hatua 10 (na Picha)

Video: Piano ya Ultrasonic na Udhibiti wa Ishara!: Hatua 10 (na Picha)
Video: 28 панфиловцев. Самая полная версия. Panfilov's 28 Men (English subtitles) 2024, Novemba
Anonim
Image
Image
Ultrasonic Pi Piano na Udhibiti wa Ishara!
Ultrasonic Pi Piano na Udhibiti wa Ishara!

Mradi huu hutumia sensorer za gharama nafuu za HC-SR04 kama pembejeo na hutengeneza vidokezo vya MIDI ambavyo vinaweza kuchezwa kupitia kisanisi kwenye Raspberry Pi kwa sauti ya hali ya juu.

Mradi pia unatumia aina ya kimsingi ya kudhibiti ishara, ambapo ala ya muziki inaweza kubadilishwa kwa kushika mikono yako juu ya sensorer mbili za nje kwa sekunde chache. Ishara nyingine inaweza kutumika kuzima Raspberry Pi mara tu utakapomaliza.

Video hapo juu inaonyesha bidhaa iliyokamilishwa katika ua rahisi wa kukata laser. Kuna video ya kina zaidi baadaye katika hii inayoweza kufundishwa ambayo inaelezea jinsi mradi hufanya kazi.

Niliunda mradi huu kwa kushirikiana na The Gizmo Dojo (eneo langu la makers huko Broomfield, CO) kutengeneza maonyesho kadhaa ambayo tunaweza kuchukua kwa hafla za STEM / STEAM na Maker Faires.

Tafadhali pia angalia nyaraka na mafunzo ya hivi karibuni katika https://theotherandygrove.com/octasonic/ ambayo sasa inajumuisha habari juu ya toleo la Python la mradi huu (hii inaweza kufundishwa kwa toleo la Kutu).

Hatua ya 1: Viungo

Kwa hili linaloweza kufundishwa, utahitaji viungo vifuatavyo:

  • Raspberry Pi (2 au 3) na kadi ya SD
  • Sensorer 8 za HC-SR04 za ultrasonic
  • Bodi ya Kuzuka kwa Octasonic
  • Kiwango cha mantiki ya mwelekeo wa maagizo mawili
  • 32 x 12 "waya za Jumper za Kike na za Kike za kuunganisha sensorer za ultrasonic
  • 13 x 6 "waya za Jumper za Kike na za Kike za kuunganisha Raspberry Pi, Octasonic, na Logic Level Converter
  • Ugavi unaofaa wa Raspberry Pi
  • Spika za PC au sawa

Napenda kupendekeza kutumia Raspberry Pi 3 ikiwezekana kwani ina nguvu zaidi ya kompyuta, na kusababisha sauti inayoweza kujibu na kupendeza. Inaweza kufanya kazi vizuri na Raspberry Pi 2 na kugeuza kidogo lakini sitajaribu kutumia Raspberry Pi ya asili kwa mradi huu.

HC-SR04 sensorer za ultrasonic zina unganisho 4 - 5V, GND, Trigger, na Echo. Kawaida, Trigger na Echo zimeunganishwa na pini tofauti kwenye microcontroller au Raspberry Pi lakini hiyo inamaanisha utahitaji kutumia pini 16 kuunganisha sensorer 8, na hii sio vitendo. Hapa ndipo bodi ya kuzuka ya Octasonic inapoingia. Bodi hii inaunganisha kwa sensorer zote na ina mdhibiti mdogo aliyejitolea ambaye hufuatilia sensorer kisha anawasiliana na Raspberry Pi juu ya SPI.

HC-SR04 inahitaji 5V na Raspberry Pi ni 3.3V tu, kwa hivyo ndio sababu tunahitaji pia kibadilishaji cha kiwango cha mantiki ambacho kitaunganisha Raspberry Pi na bodi ya kuzuka ya Octasonic.

Hatua ya 2: Unganisha Sensorer za Ultrasonic kwenye Bodi ya Octasonic

Unganisha Sensorer za Ultrasonic kwenye Bodi ya Octasonic
Unganisha Sensorer za Ultrasonic kwenye Bodi ya Octasonic
Unganisha Sensorer za Ultrasonic kwenye Bodi ya Octasonic
Unganisha Sensorer za Ultrasonic kwenye Bodi ya Octasonic

Tumia waya 4 za kuruka za kike na za kike kuunganisha kila sensorer ya ultrasonic kwenye bodi, kuwa mwangalifu kuziunganisha kwa njia sahihi. Bodi imeundwa ili pini ziwe katika mpangilio sawa na pini kwenye sensorer ya ultrasonic. Kutoka kushoto kwenda kulia kwenye ubao, pini ni GND, Trigger, Echo, 5V.

Hatua ya 3: Unganisha Kigeuzi cha Kiwango cha Mantiki na Bodi ya Octasonic

Unganisha Kigeuzi cha Kiwango cha Mantiki na Bodi ya Octasonic
Unganisha Kigeuzi cha Kiwango cha Mantiki na Bodi ya Octasonic

Raspberry Pi na Bodi ya Octasonic huwasiliana juu ya SPI. SPI inatumia waya 4:

  • Mwalimu Katika, Mtumwa nje (MISO)
  • Kumaliza Mwalimu, Mtumwa Katika (MOSI)
  • Saa ya Siri (SCK)
  • Chagua Mtumwa (SS)

Kwa kuongeza, tunahitaji kuunganisha nguvu (5V na GND).

Kigeuzi cha mantiki kina pande mbili - voltage ya chini (LV) na voltage ya juu (HV). Raspberry itaunganisha upande wa LV kwani ni 3.3V. Octasonic itaunganisha upande wa HV kwani ni 5V.

Hatua hii ni kuunganisha Octasonic kwa upande wa HV wa kibadilishaji cha kiwango cha mantiki

Tazama picha iliyoambatanishwa na hatua hii inayoonyesha ni pini zipi zinapaswa kushikamana na kibadilishaji cha kiwango cha mantiki.

Uunganisho kutoka kwa Octasonic hadi kwa Kigeuzi cha Kiwango cha Mantiki inapaswa kuwa kama ifuatavyo:

  • 5V hadi HV
  • SCK hadi HV4
  • MISO kwa HV3
  • MOSI hadi HV2
  • SS hadi HV1
  • GND kwa GND

Hatua ya 4: Unganisha Kigeuzi cha Kiwango cha Mantiki kwa Raspberry Pi

Unganisha Kigeuzi cha Kiwango cha Mantiki kwa Raspberry Pi
Unganisha Kigeuzi cha Kiwango cha Mantiki kwa Raspberry Pi

Raspberry Pi na Bodi ya Octasonic huwasiliana juu ya SPI. SPI inatumia waya 4:

  • Mwalimu Katika, Mtumwa nje (MISO)
  • Kumaliza Mwalimu, Mtumwa Katika (MOSI)
  • Saa ya Siri (SCK)
  • Chagua Mtumwa (SS)

Kwa kuongeza, tunahitaji kuunganisha nguvu (3.3V na GND). Kigeuzi cha mantiki kina pande mbili - voltage ya chini (LV) na voltage ya juu (HV). Raspberry itaunganisha upande wa LV kwani ni 3.3V. Octasonic itaunganisha upande wa HV kwani ni 5V.

Hatua hii ni kuunganisha Raspberry Pi kwa upande wa LV wa kiwango cha mantiki cha kubadilisha

Uunganisho kutoka kwa Raspbery Pi hadi kwa Kigeuzi cha Kiwango cha Mantiki inapaswa kuwa kama ifuatavyo:

  • 3.3V hadi LV
  • GPIO11 (SPI_SCLK) hadi LV4
  • GPIO09 (SPI_MISO) hadi LV3
  • GPIO10 (SPI_MOSI) hadi LV2
  • GPIO08 (SPI_CE0_N) SS hadi LV1
  • GND kwa GND

Tumia mchoro uliowekwa kwenye hatua hii kupata pini sahihi kwenye Raspberry Pi!

Hatua ya 5: Unganisha Raspberry Pi 5V hadi Octasonic 5V

Unganisha Raspberry Pi 5V hadi Octasonic 5V
Unganisha Raspberry Pi 5V hadi Octasonic 5V
Unganisha Raspberry Pi 5V hadi Octasonic 5V
Unganisha Raspberry Pi 5V hadi Octasonic 5V

Kuna waya moja ya mwisho ya kuongeza. Tunahitaji kuiwezesha bodi ya Octasonic na 5V, kwa hivyo tunafanya hivyo kwa kuunganisha moja ya pini za Raspberry Pi 5V na pini ya 5V kwenye kichwa cha Octasonic AVR. Hii ni pini ya kushoto ya chini kwenye kizuizi cha kichwa cha AVR (hii ni kizuizi cha 2 x 3 upande wa kulia wa bodi). Tazama picha iliyoambatanishwa inayoonyesha mahali block ya AVR iko.

Tazama mchoro mwingine ulioambatanishwa kupata pini ya 5V kwenye Raspberry Pi.

Hatua ya 6: Sakinisha Programu

Sakinisha Raspian

Anza na usakinishaji safi wa Raspbian Jessie, kisha uisasishe kwa toleo la hivi karibuni:

Sudo apt-pata sasisho

sasisho la kupata apt

Washa SPI

Lazima uwezeshe SPI kwenye Raspberry Pi ili mradi huu ufanye kazi! Tumia huduma ya Usanidi wa Raspberry Pi kufanya hivyo.

Ni muhimu pia kuwasha tena Pi baada ya kuiwezesha SPI itekeleze

Sakinisha FluidSynth

Fluidsynth ni programu ya kushangaza ya bure ya MIDI synth. Unaweza kuiweka kutoka kwa laini ya amri na amri hii:

Sudo apt-get kufunga fluidsynth

Sakinisha Lugha ya Kupanga Kutu

Piano ya Ultrasonic inatekelezwa katika Lugha ya Programu ya Kutu kutoka Mozilla (ni kama C ++ lakini bila alama mbaya). Ni nini watoto wote wa baridi wanatumia siku hizi.

Fuata maagizo kwenye https://rustup.rs/ kusanikisha Kutu. Ili kukuokoa wakati, maagizo ni kutekeleza amri hii moja. Unaweza kukubali majibu chaguomsingi kwa maswali yoyote wakati wa usakinishaji.

KUMBUKA: Tangu kuchapisha hii inayoweza kufundishwa, kuna maswala kadhaa na kusanikisha Kutu kwenye Raspberry Pi. Wakati mbaya: - / lakini nimebadilisha amri hapa chini kushughulikia suala hilo. Tunatumahi watarekebisha hii hivi karibuni. Ninafanya kazi kuunda picha ambayo watu wanaweza kupakua na kuchoma kwenye kadi ya SD. Ikiwa ungependa hiyo, tafadhali wasiliana nami.

kuuza nje RUSTUP_USE_HYPER = 1curl https://sh.rustup.rs -sSf | sh

Pakua nambari ya chanzo ya Ultrasonic Pi Piano

Nambari ya chanzo ya nambari ya chanzo ya Ultrasonic Piano imewekwa kwenye github. Kuna chaguzi mbili za kupata nambari. Ikiwa unajua git na github, unaweza kushikilia repo:

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

Vinginevyo, unaweza kupakua faili ya zip ya nambari mpya.

Unganisha nambari ya chanzo

UltrasonicPiPiano

kujenga mizigo - tafadhali

Jaribu nambari

Kabla ya kuendelea kufanya muziki katika hatua inayofuata, wacha tuhakikishe kwamba programu inaendesha na kwamba tunaweza kusoma data halali kutoka kwa sensorer.

Tumia amri ifuatayo kuendesha programu. Hii itasoma data kutoka kwa sensorer na kutafsiri katika maelezo ya MIDI ambayo yanachapishwa kwenye koni. Unapohamisha mkono wako juu ya sensorer, unapaswa kuona data ikizalishwa. Ikiwa sivyo, basi ruka kwenda kwenye sehemu ya utatuzi mwishoni mwa hii inayoweza kufundishwa.

kukimbia mizigo - tafadhali

Ikiwa unataka kujua, bendera ya "- tafadhali" inaambia Rust kukusanya nambari kwa ufanisi zaidi, tofauti na mpangilio wa "-debug".

Hatua ya 7: Fanya Muziki

Hakikisha kuwa bado uko kwenye saraka ambapo umepakua nambari ya chanzo na utumie amri ifuatayo.

Hati hii ya "run.sh" inahakikisha kuwa nambari imekusanywa na kisha inaendesha nambari hiyo, ikitoa bomba kwenye fluidsynth.

./kimbia.sh

Hakikisha kuwa umeongeza spika zilizounganishwa na jack ya sauti ya 3.5mm kwenye Raspberry Pi na unapaswa kusikia muziki unapotembeza mikono yako juu ya sensorer.

Ikiwa hausiki muziki na una kiunga cha HDMI kimeambatanishwa, basi pato la sauti labda linaenda huko badala yake. Ili kurekebisha hili, fanya tu amri hii na uanze tena Piano ya Piano:

Sudo amixer cset nambari = 3 1

Kubadilisha sauti

Kiasi (au "faida") imetajwa na kigezo cha "-g" hadi fluidsynth. Unaweza kurekebisha run.sh na kubadilisha thamani hii. Tafadhali kumbuka kuwa mabadiliko madogo katika parameter hii husababisha mabadiliko makubwa kwa sauti, kwa hivyo jaribu kuiongeza kwa kiwango kidogo (kama 0.1 au 0.2).

Hatua ya 8: Udhibiti wa Ishara

Tazama video iliyoambatishwa na hatua hii kwa onyesho kamili la mradi huo, pamoja na jinsi udhibiti wa ishara unavyofanya kazi.

Wazo ni rahisi sana. Programu inafuatilia ni sensorer gani zinazofunikwa (ndani ya 10cm) na ambazo sio. Hii inatafsiri kwa nambari 8 za binary (1 au 0). Hii ni rahisi sana, kwani mlolongo wa nambari 8 za binary hufanya "byte" ambayo inaweza kuwakilisha nambari kati ya 0 na 255. Ikiwa haujui tayari juu ya nambari za binary basi ninapendekeza sana kutafuta mafunzo. Nambari za kibinadamu ni ujuzi wa kimsingi wa kujifunza ikiwa unataka kujifunza zaidi juu ya programu.

Programu inachora ramani ya hali ya sensorer kwa baiti moja inayowakilisha ishara ya sasa. Ikiwa nambari hiyo inakaa sawa kwa idadi ya mizunguko, basi programu inachukua hatua hiyo.

Kwa sababu sensorer za ultrasonic haziaminiki sana na kunaweza kuingiliwa kati ya sensorer, utahitaji kutumia uvumilivu wakati wa kutumia ishara. Jaribu kutofautisha umbali ambao umeshikilia mikono yako kutoka kwa sensorer na vile vile pembe ambayo umeshikilia mikono yako. Wewe baridi pia jaribu kushikilia kitu gorofa na imara juu ya sensorer ili kuonyesha vizuri sauti.

Hatua ya 9: Kufanya Banda

Ikiwa unataka kuifanya maonyesho ya kudumu na uweze kuionyesha kwa watu, labda utataka kutengeneza aina fulani ya kizuizi. Hii inaweza kutengenezwa kwa mbao, kadibodi, au vifaa vingine vingi. Hapa kuna video inayoonyesha eneo tunalofanyia kazi mradi huu. Hii imetengenezwa kwa kuni, na mashimo yamechimbwa kushikilia sensorer za ultrasonic mahali.

Hatua ya 10: Utatuzi na Hatua Zifuatazo

Utatuzi wa shida

Ikiwa mradi haufanyi kazi, kawaida huwa chini ya hitilafu ya wiring. Chukua muda wako kukagua miunganisho yote mara mbili.

Suala jingine la kawaida linashindwa kuwezesha SPI na kuwasha tena pi.

Tafadhali tembelea https://theotherandygrove.com/octasonic/ kwa nyaraka kamili pamoja na vidokezo vya utatuzi, na Rust na nakala maalum za Python, na pia habari juu ya jinsi ya kupata msaada.

Hatua Zifuatazo

Mara tu mradi unafanya kazi, ninapendekeza kujaribu nambari na kujaribu vyombo tofauti vya muziki. Nambari za chombo cha MIDI ni kati ya 1 na 127 na zimeandikwa hapa.

Je! Unataka chombo kimoja cha muziki na kila sensorer ikicheza octave tofauti? Labda ungependa kila sensaji iwe kifaa tofauti badala yake? Uwezekano ni karibu bila kikomo!

Natumai ulifurahiya hii inayoweza kufundishwa. Tafadhali penda ikiwa ulifanya, na hakikisha unisajili hapa na kwa kituo changu cha YouTube ili kuona miradi ya baadaye.

Ilipendekeza: