Sadržaj:

Prototip Arduino-Raspberry Pi zvučne ploče: 9 koraka (sa slikama)
Prototip Arduino-Raspberry Pi zvučne ploče: 9 koraka (sa slikama)

Video: Prototip Arduino-Raspberry Pi zvučne ploče: 9 koraka (sa slikama)

Video: Prototip Arduino-Raspberry Pi zvučne ploče: 9 koraka (sa slikama)
Video: Веб-программирование – информатика для руководителей бизнеса 2016 2024, Novembar
Anonim
Prototip Arduino-Raspberry Pi zvučne ploče
Prototip Arduino-Raspberry Pi zvučne ploče

Prototip zvučne ploče stvorene s Arduinom i Raspberry Pi namijenjen je jednostavnom načinu sviranja 4 različita zvuka ili šuma, dok ima mogućnost prebacivanja zvučnih postavki pomoću gumba i prikaza trenutnog zvučnog skupa na LCD ekranu.

*Napomena: Kod projekta je 99% dovršen, ali nije funkcionalan.

Raspberry Pi kontrolira LCD ekran 16x2 i okretni davač, dok Arduino čita analogne ulaze sa otpornika osjetljivih na silu (FSR) i šalje signal Arduinu da reproducira zvuk. Oboje nikada prije ove klase nismo koristili Arduino ili Pi, ali naš profesor nam je dao sve potrebne alate i smjernice za jednostavno kodiranje i izgradnju ovog projekta. TinkerCad, besplatni internetski alat za 3D modeliranje tvrtke AutoDesk, korišten je za modeliranje našeg projekta.

Najteži dio projekta bio je pronaći način da Arduino i Raspberry Pi komuniciraju serijskom komunikacijom. Prvotno smo samo željeli koristiti Pi za cijeli projekt, ali trebao nam je Arduino da bismo mogli čitati analogni signal iz FSR -a. Lako smo mogli poslati redove riječi ili brojeva iz Arduina i prikazati ih na Pi, ali problem je nastao kada smo pokušali pročitati te vrijednosti u Pythonu i implementirati ih u izraze uvjeta kako bismo ih obradili.

Potrebne vještine

  • Jednostavno razumijevanje C/C ++ za Arduino kodiranje
  • Jednostavno razumijevanje Pythona za Raspberry Pi kodiranje
  • Znanje o tome kako je ožičena ploča
  • Osnovne vještine 3D modeliranja
  • Želja za učenjem i proširivanjem programiranja, ožičenja i izgradnje nečeg urednog

Lista delova

1 x Raspberry Pi 3

1 x Elegoo Uno ILI Arduino Uno

1 x 830 Tie Breadboard

1 x GPIO ploča za probijanje (RSP-GPIO)

1 x vrpčani kabel za probojnu ploču

4 x otpornika male snage

1 x osnovni LCD ekran sa 16x2 karaktera

1 x Modul rotacionog kodera

24 x Muški na ženski kabel

10 x Muški na muški kabel

4 x 10k otpornika

1 x 10k potenciometar

1 x vrtna štitnica za koljena (trgovina dolarima)

Korak 1: Testirajte FSR s Arduinom

Testirajte FSR s Arduinom
Testirajte FSR s Arduinom

Prvo smo odlučili isprobati FSR s Arduinom. FSR -ovi šalju analogni signal pa smo morali koristiti Arduino jer Pi ne prima analogno bez drugih kola. Htjeli smo testirati pragove kako bismo bili sigurni da su preše pod dobrim pritiskom. Otkrili smo da ih je to oko 150 od ukupno 1000. Serijski ploter na Arduino IDE -u bio je od velike pomoći u ovom koraku.

Korak 2: Nacrtajte planove za ploču

Nacrtajte planove odbora
Nacrtajte planove odbora
Nacrtajte planove odbora
Nacrtajte planove odbora

Zatim smo sastavili i izmjerili planove za odbor. Željeli smo imati 4 jastučića za reprodukciju zvukova, mjesto za LCD ekran za prikaz trenutne grupe zvukova i rotacijski koder za promjenu grupe zvuka.

Korak 3: Modelirajte ploču u TinkerCad -u

Modelirajte ploču u TinkerCad -u
Modelirajte ploču u TinkerCad -u
Modelirajte ploču u TinkerCad -u
Modelirajte ploču u TinkerCad -u
Modelirajte ploču u TinkerCad -u
Modelirajte ploču u TinkerCad -u

Nakon izrade planova, ploču smo modelirali na internetskoj, besplatnoj web stranici za 3D modeliranje pod nazivom TinkerCad kompanije Autodesk. Toplo ga preporučujemo onima koji ne žele potrošiti tone novca na veliki softver za 3D modeliranje jer je jednostavan za korištenje, zasnovan na oblaku i ima potpunu podršku za 3D ispis.

Nakon što je modeliran, morali smo ga podijeliti na 2 dijela kako bismo ga stavili na pisač. Odštampalo se jako dobro, ali moja greška nije bila to što sam dobro odredio veličinu utora za LCD ekran (nemojte napraviti tu grešku!) Prenijeli smo lijevu i desnu stranu. STL datoteke ako ih želite provjeriti.

Korak 4: Testirajte LCD ekran

Testirajte LCD ekran
Testirajte LCD ekran

Već smo koristili ekran na Arduinu i bilo ga je vrlo lako postaviti. Međutim, bilo je teže pokrenuti ga s Pi -jem. S nekoliko sati rješavanja problema na Googleu i petljanja po žicama, napokon smo uspjeli. Molimo pogledajte konačni Python kod na kraju da vidite kako je radio. Koristili smo nekoliko web stranica koje su nam pomogle u povezivanju i pisanju koda. Provjerite ih:

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

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

Korak 5: Testirajte rotacijski davač s LCD ekranom

Testirajte rotacijski davač s LCD ekranom
Testirajte rotacijski davač s LCD ekranom

Zatim smo htjeli vidjeti možemo li LCD ekran promijeniti tekst kada se koder rotira. Enkoder nema postavljenu količinu kutova ili rotacija, pa smo u kodu brojali koliko puta je rotiran u smjeru kazaljke na satu ili suprotno od smjera kazaljke na satu te smo brojali do 3. Ako bi prešao, vratio bi se na 0, a da je pao ispod 0, vratio bi se na 3. Ti se brojevi mogu postaviti za koliko god želite zvučnih skupova, ali na kraju smo testirali samo jedan skup zvukova. Uverite se da su vaši zvukovi u istoj fascikli/lokaciji na kojoj se izvršava glavni Python kôd.

Korak 6: Sastavite ploču

Sastavite ploču
Sastavite ploču
Sastavite ploču
Sastavite ploču
Sastavite ploču
Sastavite ploču

FSR -ovi klize ispod četiri različita utora. Centrirali smo ih i zalijepili. Preporučujemo ljepljivu traku ili možda čak i lijepljenje jer je jednostavna ljepljiva traka bila užasna u lijepljenju na 3D štampani materijal. Nakon kratkog odlaska u trgovinu s dolarima, pronašli smo mekanu, ali mekanu vrtnu štitnicu za koljena koju smo mogli izrezati na četiri dijela kako bismo je koristili kao dugmad na ploči. Izrezali smo ih tako da se mogu dobro prilijegati na svoja mjesta kako bi mogli ostati na mjestu, ali i lako ih ukloniti ako je potrebno.

Korak 7: Sve povežite

Ožičite sve
Ožičite sve
Ožičite sve
Ožičite sve

Nakon što smo sastavili ploču i postavili FSR -ove, koder i ekran na mjesto, sve smo ožičili. Mogle su vam koristiti 2 ploče, ali uspjeli smo sve smjestiti na jednu. Slika izgleda kao nered, ali napravili smo shematski dijagram u besplatnom programu pod nazivom Fritzing. Imajte na umu da možete promijeniti na koje pinove želite sve spojiti, ali dijagram odgovara našem kodu.

Korak 8: Završite kodiranje SVEGA

Ovo je bio lukav dio. Kao što je navedeno u uvodu, ovaj dio nismo mogli dovršiti. Kod je 99% sav tamo, ali jedan dio koji nije uspio bila je serijska komunikacija od Arduina do Pi. Mogli smo lako poslati podatke kada smo povezali Arduino na Pi putem USB kabela, ali Pi nije mogao učiniti ništa osim prikazati te podatke na ekranu. Htjeli smo biti u mogućnosti reći koje je dugme pritisnuto i učiniti da to reproducira određeni zvuk, ali podaci koji su dolazili kroz komunikaciju nisu se mogli staviti u izraz uvjeta kako bi se testiralo koje je dugme pritisnuto.

Molimo pogledajte priloženi kod, bilješke su komentirane u Python kodu za Pi. Arduino kôd bi trebao biti 100%.

Korak 9: Zaključite

Zaključi
Zaključi

Sve u svemu, ovaj projekt je bio ogromno iskustvo učenja za nas dvoje i nadamo se da će ovo pisanje budućim studentima, nastavnicima ili kalađerima dati inspiraciju za njihov vlastiti projekt te ih voditi kroz učenje na našim greškama. Pozovite našeg sjajnog profesora robotike koji nam je neizmjerno pomogao tokom našeg vremena na času i dao nam priliku da se zabavimo i naučimo mnogo na višoj COMP klasi! Hvala na čitanju:)

Preporučuje se: