Talaan ng mga Nilalaman:

Prototype Arduino-Raspberry Pi Soundboard: 9 Mga Hakbang (na may Mga Larawan)
Prototype Arduino-Raspberry Pi Soundboard: 9 Mga Hakbang (na may Mga Larawan)

Video: Prototype Arduino-Raspberry Pi Soundboard: 9 Mga Hakbang (na may Mga Larawan)

Video: Prototype Arduino-Raspberry Pi Soundboard: 9 Mga Hakbang (na may Mga Larawan)
Video: Raspberry Pi Soundboard 2024, Nobyembre
Anonim
Prototype Arduino-Raspberry Pi Soundboard
Prototype Arduino-Raspberry Pi Soundboard

Ang prototype soundboard na nilikha gamit ang isang Arduino at Raspberry Pi ay sinadya upang maging isang simpleng paraan ng pag-play ng 4 na magkakaibang mga tunog o ingay habang may pagpipilian upang ilipat ang mga set ng tunog na may isang hawakan at ipakita ang kasalukuyang set ng tunog sa isang LCD screen.

* Mangyaring tandaan: Ang code para sa proyekto ay 99% kumpleto, ngunit hindi gumagana.

Kinokontrol ng Raspberry Pi ang 16x2 LCD screen at ang rotary encoder habang binabasa ng Arduino ang mga analog input mula sa force sensitive resistors (FSRs) at nagpapadala ng isang senyas sa Arduino upang magpatugtog ng isang tunog. Parehas kaming hindi kailanman gumamit ng Arduino o Pi bago sa klase na ito, ngunit binigyan kami ng aming propesor ng lahat ng kinakailangang mga tool at patnubay upang madaling ma-code at mabuo ang proyektong ito. Ang TinkerCad, isang libreng online 3D tool sa pagmomodelo ng AutoDesk, ay ginamit upang i-modelo ang aming proyekto.

Ang pinakamahirap na bahagi ng proyekto ay ang paghahanap ng isang paraan upang makuha ang Arduino at Raspberry Pi na makipag-usap sa serial na komunikasyon. Orihinal na nais lamang naming gamitin ang Pi para sa kabuuan ng proyekto, ngunit kailangan namin ang Arduino upang mabasa ang analog signal mula sa FSRs. Madali kaming nakapagpadala ng mga linya ng mga salita o numero mula sa Arduino at ipakita ito sa Pi, ngunit kung saan dumating ang isyu ay noong sinubukan naming basahin ang mga halagang iyon sa Python at ipatupad ang mga ito sa mga pahayag sa kundisyon upang maproseso ang mga ito.

Kasanayan na Kinakailangan

  • Simpleng pag-unawa sa C / C ++ para sa Arduino coding
  • Simpleng pag-unawa sa Python para sa Raspberry Pi coding
  • Kaalaman sa kung paano naka-wire ang isang breadboard
  • Pangunahing kasanayan sa pagmomodelo ng 3D
  • Isang pagnanais na malaman at palawakin ang programa, mga kable, at pagbuo ng isang bagay na medyo malinis

Listahan ng Bahagi

1 x Raspberry Pi 3

1 x Elegoo Uno O Arduino Uno

1 x 830 Tie Breadboard

1 x GPIO Breakout Board (RSP-GPIO)

1 x Ribbon Cable para sa Breakout Board

4 x Maliit na Force Sensitive Resistors

1 x Pangunahing 16x2 Character LCD Screen

1 x Rotary Encoder Module

24 x Lalaki sa mga babaeng wires

10 x Lalake sa mga lalaking wires

4 x 10k resistors

1 x 10k potensyomiter

1 x Garden foam tuhod pad (dolyar na tindahan)

Hakbang 1: Subukan ang FSR Gamit ang Arduino

Subukan ang FSR Gamit ang Arduino
Subukan ang FSR Gamit ang Arduino

Nagpasiya muna kaming subukan ang FSR kasama ang Arduino. Nagpadala ang FSR ng isang analog signal at samakatuwid kailangan naming gumamit ng isang Arduino dahil ang Pi ay hindi tumatanggap ng analog nang walang iba pang mga circuit. Nais naming subukan ang mga threshold upang matiyak na ang mga pagpindot ay nasa isang mabuting presyon. Natagpuan namin na nasa paligid ng 150 mula sa isang kabuuang 1000. Ang serial plotter sa Arduino IDE ay lubos na kapaki-pakinabang para sa hakbang na ito.

Hakbang 2: Iguhit ang Mga Plano para sa Lupon

Iguhit ang Mga Plano para sa Lupon
Iguhit ang Mga Plano para sa Lupon
Iguhit ang Mga Plano para sa Lupon
Iguhit ang Mga Plano para sa Lupon

Pagkatapos ay gumuhit kami at sinukat ang mga plano para sa board. Nais naming magkaroon ng 4 pad upang i-play ang mga tunog, isang lugar para sa isang LCD screen upang maipakita ang kasalukuyang pangkat ng tunog, at isang rotary encoder upang baguhin ang pangkat ng tunog.

Hakbang 3: I-modelo ang Lupon sa TinkerCad

I-modelo ang Lupon sa TinkerCad
I-modelo ang Lupon sa TinkerCad
I-modelo ang Lupon sa TinkerCad
I-modelo ang Lupon sa TinkerCad
I-modelo ang Lupon sa TinkerCad
I-modelo ang Lupon sa TinkerCad

Matapos mailabas ang mga plano, ginod namin ang board sa isang online, libre, 3D na website ng pagmomodelo na tinatawag na TinkerCad ng Autodesk. Masidhing inirerekumenda namin ito para sa iyo na ayaw gumastos ng toneladang pera sa malaking software ng pagmomodelo ng 3D dahil madaling gamitin ito, batay sa cloud, at may buong suporta para sa pag-print sa 3D.

Matapos itong ma-modelo, kailangan naming hatiin ito sa 2 piraso upang maisama ito sa printer. Nakapag-print ito nang maayos, ngunit ang aking pagkakamali ay hindi masyadong napapalaki ang slot ng LCD screen (huwag gawin ang pagkakamaling iyon!) Na-upload namin ang kaliwa at kanang bahagi. STL na mga file kung nais mong suriin ang mga ito.

Hakbang 4: Subukan ang LCD Screen

Subukan ang LCD Screen
Subukan ang LCD Screen

Nagamit na namin ang screen sa Arduino at napakadaling mag-setup. Gayunpaman, mas mahirap itong patakbuhin ito sa Pi. Sa maraming oras ng pagto-troubleshoot sa Google at nakakalikot sa mga wire, sa wakas ay napagana namin ito. Mangyaring tingnan ang huling code ng Python sa dulo upang makita kung paano ito gumana. Gumamit kami ng ilang mga website upang matulungan kaming ma-wire ito at isulat ang code. Suriin ang mga ito:

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

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

Hakbang 5: Subukan ang Rotary Encoder Gamit ang LCD Screen

Subukan ang Rotary Encoder Gamit ang LCD Screen
Subukan ang Rotary Encoder Gamit ang LCD Screen

Nais naming makita kung maaari naming baguhin ang LCD screen na ito ay teksto kapag ang encoder ay pinaikot. Ang encoder ay walang isang itinakdang dami ng mga anggulo o pag-ikot, kaya sa code binibilang namin kung gaano karaming beses na ito ay pinaikot pakanan o kontra sa pakaliwa at binilang ito sa 3. Kung lumipas ito, babalik ito sa 0, at kung napunta ito sa ilalim ng 0, babalik ito sa 3. Ang mga numerong iyon ay maaaring itakda para sa maraming mga set ng tunog na gusto mo, ngunit natapos lang namin ang pagsubok ng isang set ng tunog. Tiyaking ang iyong mga tunog ay nasa parehong folder / lokasyon kung saan ang pangunahing code ng Python ay naisakatuparan.

Hakbang 6: Magtipon ng Lupon

Magtipon ng Lupon
Magtipon ng Lupon
Magtipon ng Lupon
Magtipon ng Lupon
Magtipon ng Lupon
Magtipon ng Lupon

Ang FSRs slide sa ilalim ng apat na magkakaibang mga puwang. Pinagitna namin sila at na-tap down. Inirerekumenda namin ang duct tape o marahil kahit na pagdidikit dahil ang simpleng scotch tape ay kahila-hilakbot sa pagdikit sa 3D na naka-print na materyal. Matapos ang isang mabilis na paglalakbay sa tindahan ng dolyar, nakakita kami ng isang malambot ngunit malaswang na tuhod na pad ng tuhod na maaari naming i-cut sa apat na piraso upang magamit bilang mga pindutan para sa board. Pinutol namin ang mga ito upang makapagkasya ang mga ito sa kanilang mga spot upang manatili sila sa lugar, ngunit madali ring matanggal kung kinakailangan.

Hakbang 7: Wire It All Up

Wire It All Up
Wire It All Up
Wire It All Up
Wire It All Up

Matapos i-assemble ang board at ilagay ang FSRs, encoder, at i-screen sa lugar, na-wire namin ang lahat. Maaari kang gumamit ng 2 mga breadboard, ngunit nagawa naming magkasya ang lahat sa isa. Ang larawan ay mukhang isang gulo, ngunit gumawa kami ng isang eskematiko diagram sa isang libreng programa na tinatawag na Fritzing. Tandaan na maaari mong baguhin kung anong mga pin ang nais mong ikabit sa lahat, ngunit ang diagram ay tumutugma sa aming code.

Hakbang 8: Tapusin ang Coding LAHAT

Ito ang nakakalito na bahagi. Tulad ng nakasaad sa panimula, hindi namin makumpleto ang bahaging ito. Ang code ay 99% lahat doon, ngunit ang isang bahagi na hindi gumana ay ang serial na komunikasyon mula sa Arduino hanggang Pi. Madali naming maipapadala ang impormasyon nang nakakonekta namin ang Arduino sa Pi gamit ang USB cable, ngunit ang Pi ay walang magawa maliban ipakita ang impormasyong iyon sa screen. Nais naming masabi kung aling pindutan ang pinindot at gawin ang isang tukoy na tunog, ngunit ang data na dumarating sa pamamagitan ng komunikasyon ay hindi mailalagay sa isang pahayag sa kundisyon upang subukan kung anong pindutan ang pinindot.

Mangyaring tingnan ang nakalakip na code, ang mga tala ay nagkomento sa code ng Python para sa Pi. Ang Arduino code ay dapat na 100%.

Hakbang 9: Tapusin

Tapusin
Tapusin

Sa pangkalahatan, ang proyektong ito ay isang MALAKING karanasan sa pag-aaral para sa aming dalawa at inaasahan namin na ang pagsulat na ito ay maaaring magbigay sa mga mag-aaral sa hinaharap, guro, o tinkerers ng ilang inspirasyon para sa kanilang sariling proyekto at gabayan sila sa pamamagitan ng pag-aaral mula sa aming mga pagkakamali. Sumigaw sa aming kahanga-hangang propesor ng robotics na tumulong nang labis sa aming oras sa klase at binigyan kami ng pagkakataon na magkaroon ng isang toneladang kasiyahan at matuto nang maraming sa isang matandang klase ng COMP! Salamat sa pagbabasa:)

Inirerekumendang: