Kazalo:

Prototip Arduino-Raspberry Pi zvočne plošče: 9 korakov (s slikami)
Prototip Arduino-Raspberry Pi zvočne plošče: 9 korakov (s slikami)

Video: Prototip Arduino-Raspberry Pi zvočne plošče: 9 korakov (s slikami)

Video: Prototip Arduino-Raspberry Pi zvočne plošče: 9 korakov (s slikami)
Video: Leap Motion SDK 2024, November
Anonim
Prototip Arduino-Raspberry Pi zvočne plošče
Prototip Arduino-Raspberry Pi zvočne plošče

Prototip zvočne plošče, ustvarjen z Arduinom in Raspberry Pi, naj bi bil preprost način predvajanja 4 različnih zvokov ali hrupa, medtem ko ima možnost preklapljanja zvočnih nizov z gumbom in prikaz trenutnega zvočnega sklopa z LCD zaslonom.

*Prosimo, upoštevajte: Koda za projekt je 99% dokončana, vendar ni funkcionalna.

Raspberry Pi nadzoruje LCD zaslon 16x2 in vrtljivi dajalnik, medtem ko Arduino bere analogne vhode iz uporov, občutljivih na silo (FSR), in pošilja signal Arduinu za predvajanje zvoka. Oba pred tem razredom nisva nikoli uporabljala Arduina ali Pi, vendar nam je naš profesor dal vsa potrebna orodja in smernice za enostavno kodiranje in izdelavo tega projekta. TinkerCad, brezplačno spletno orodje za 3D modeliranje podjetja AutoDesk, je bilo uporabljeno za modeliranje našega projekta.

Najtežji del projekta je bil najti način, kako Arduino in Raspberry Pi komunicirati s serijsko komunikacijo. Prvotno smo želeli uporabiti Pi le za celoten projekt, vendar smo potrebovali Arduino, da smo lahko prebrali analogni signal iz FSR. Z lahkoto smo lahko pošiljali vrstice besed ali številk iz Arduina in jih prikazovali na Pi, toda težava je prišla, ko smo poskušali te vrednosti prebrati v Python in jih implementirati v stavke pogojev za njihovo obdelavo.

Potrebne veščine

  • Enostavno razumevanje C/C ++ za kodiranje Arduino
  • Preprosto razumevanje Pythona za kodiranje Raspberry Pi
  • Znanje o tem, kako je ožičena plošča
  • Osnovne veščine 3D modeliranja
  • Želja po učenju in širjenju programiranja, ožičenja in gradnje nečesa čednega

Seznam delov

1 x Raspberry Pi 3

1 x Elegoo Uno ALI Arduino Uno

1 x 830 Tie Breadboard

1 x Odklopna plošča GPIO (RSP-GPIO)

1 x trakovni kabel za prelomno desko

4 x občutljivi upori majhne sile

1 x osnovni LCD zaslon z 16 x 2 znaki

1 x modul rotacijskega dajalnika

24 x moški na ženski žici

10 x moški na moške žice

4 x 10k upori

1 x 10k potenciometer

1 x kolenska blazinica iz vrtne pene (trgovina z dolarji)

1. korak: Preizkusite FSR z Arduinom

Preizkusite FSR z Arduinom
Preizkusite FSR z Arduinom

Najprej smo se odločili, da preizkusimo FSR z Arduinom. FSR pošiljajo analogni signal, zato smo morali uporabiti Arduino, saj Pi ne sprejema analognih brez drugih vezij. Želeli smo preizkusiti pragove, da se prepričamo, da so stiskalnice pod dobrim pritiskom. Ugotovili smo, da jih je približno 150 od skupaj 1000. Za ta korak je bil zelo koristen serijski ploter na Arduino IDE.

2. korak: Izdelajte načrte za tablo

Narišite načrte za odbor
Narišite načrte za odbor
Narišite načrte za odbor
Narišite načrte za odbor

Nato smo pripravili in izmerili načrte za odbor. Želeli smo imeti 4 ploščice za predvajanje zvokov, mesto za LCD zaslon za prikaz trenutne skupine zvokov in rotacijski kodirnik za spremembo skupine zvokov.

3. korak: modelirajte ploščo v programu TinkerCad

Modelirajte ploščo v TinkerCadu
Modelirajte ploščo v TinkerCadu
Modelirajte ploščo v TinkerCadu
Modelirajte ploščo v TinkerCadu
Modelirajte ploščo v TinkerCadu
Modelirajte ploščo v TinkerCadu

Ko so bili načrti sestavljeni, smo ploščo oblikovali na spletnem, brezplačnem spletnem mestu za 3D modeliranje, imenovanem TinkerCad podjetja Autodesk. Toplo ga priporočamo tistim, ki ne želite porabiti ogromno denarja za veliko programsko opremo za 3D modeliranje, saj je enostavna za uporabo, v oblaku in ima popolno podporo za 3D tiskanje.

Ko smo ga modelirali, smo ga morali razdeliti na dva dela, da smo ga namestili na tiskalnik. Natisnilo se je zelo dobro, vendar moja napaka ni bila v tem, da sem zelo dobro določil velikost reže za LCD zaslon (ne naredite te napake!) Naložili smo levo in desno stran. STL datotek, če ju želite preveriti.

4. korak: Preizkusite LCD zaslon

Preizkusite LCD zaslon
Preizkusite LCD zaslon

Zaslon smo že uporabljali na Arduinu in nastavitev je bila zelo enostavna. Vendar ga je bilo težje voditi s Pi. Z več urami za odpravljanje težav v Googlu in ropanjem po žicah smo končno uspeli. Na koncu si oglejte končno kodo Python, da vidite, kako je delovala. Za povezavo in pisanje kode smo uporabili nekaj spletnih mest. Preverite jih:

learn.adafruit.com/drive-a-16x2-lcd-direct…

www.raspberrypi-spy.co.uk/2012/07/16x2-lcd…

5. korak: Preizkusite rotacijski dajalnik z LCD zaslonom

Preizkusite rotacijski dajalnik z LCD zaslonom
Preizkusite rotacijski dajalnik z LCD zaslonom

Nato smo želeli preveriti, ali bi lahko LCD zaslon spremenili besedilo, ko je dajalnik obrnjen. Dajalnik nima nastavljene količine kotov ali zasukov, zato smo v kodi prešteli, kolikokrat smo ga zasukali v smeri urinega kazalca ali v nasprotni smeri urinega kazalca, in šteli na 3. Če bi šel čez, bi se vrnil na 0 in če bi šlo pod 0, bi se vrnilo nazaj na 3. Te številke je mogoče nastaviti za koliko koli zvočnih sklopov želite, vendar smo na koncu preizkusili le en niz zvokov. Poskrbite, da bodo vaši zvoki v isti mapi/mestu, kjer se izvaja glavna koda Python.

6. korak: Sestavite ploščo

Sestavite desko
Sestavite desko
Sestavite desko
Sestavite desko
Sestavite desko
Sestavite desko

FSR drsijo pod štirimi različnimi režami. Centrirali smo jih in jih zalepili. Priporočamo lepilni trak ali morda celo lepljenje, ker se je preprost škotski trak grozno držal 3D -tiskanega materiala. Po kratkem potovanju v trgovino z dolarji smo našli mehko, a mehko vrtno ščitnico za kolena, ki bi jo lahko razrezali na štiri kose, ki bi jih uporabili kot gumbe za desko. Odrezali smo jih tako, da so se lahko prilegali na svoja mesta, da so lahko ostali na svojem mestu, po potrebi pa jih je tudi enostavno odstraniti.

Korak: Povežite vse skupaj

Povežite vse skupaj
Povežite vse skupaj
Povežite vse skupaj
Povežite vse skupaj

Ko smo sestavili ploščo in namestili FSR -je, kodirnik in zaslon, smo vse povezali. Lahko bi uporabili 2 plošči, vendar smo lahko vse postavili na eno. Slika izgleda kot zmešnjava, vendar smo v brezplačnem programu, imenovanem Fritzing, naredili shematski diagram. Upoštevajte, da lahko spremenite, na katere zatiče želite vse pritrditi, vendar diagram ustreza naši kodi.

Korak: Dokončajte kodiranje VSE

To je bil težaven del. Kot je navedeno v uvodu, tega dela nismo mogli dokončati. Koda je 99% vse tam, toda del, ki ni deloval, je bila serijska komunikacija od Arduina do Pi. Podatke bi lahko preprosto poslali, ko bi Arduino s kablom USB priključili na Pi, vendar Pi ni mogel storiti nič drugega, kot da te podatke prikaže na zaslonu. Želeli smo vedeti, kateri gumb je bil pritisnjen, in predvajati poseben zvok, vendar podatkov, ki so prihajali skozi komunikacijo, ni bilo mogoče dati v izjavo o stanju, da bi preverili, kateri gumb je bil pritisnjen.

Oglejte si priloženo kodo, opombe so bile komentirane v kodi Python za Pi. Koda Arduino mora biti 100%.

9. korak: Zaključite

Zaključiti
Zaključiti

Na splošno je bil ta projekt OGROMNA učna izkušnja za naju dva in upamo, da bo ta zapis lahko bodočim učencem, učiteljem ali kosimarjem dal navdih za njihov lasten projekt in jih vodil pri učenju na naših napakah. Pokličite do našega odličnega profesorja robotike, ki nam je v času pouka izjemno pomagal in nam dal priložnost, da smo se v razredu COMP dobro naučili in se veliko naučili! Hvala za branje:)

Priporočena: