Sommario:

Prototipo Arduino-Raspberry Pi Soundboard: 9 passaggi (con immagini)
Prototipo Arduino-Raspberry Pi Soundboard: 9 passaggi (con immagini)

Video: Prototipo Arduino-Raspberry Pi Soundboard: 9 passaggi (con immagini)

Video: Prototipo Arduino-Raspberry Pi Soundboard: 9 passaggi (con immagini)
Video: Raspberry Pi Sound Board w/ LCD - working prototype 2024, Dicembre
Anonim
Prototipo Arduino-Raspberry Pi Soundboard
Prototipo Arduino-Raspberry Pi Soundboard

La tavola armonica prototipo creata con un Arduino e un Raspberry Pi è pensata per essere un modo semplice per riprodurre 4 suoni o rumori diversi pur avendo la possibilità di cambiare set di suoni con una manopola e visualizzare il set di suoni corrente con uno schermo LCD.

*Nota: il codice per il progetto è completo al 99%, ma non è funzionante.

Il Raspberry Pi controlla lo schermo LCD 16x2 e l'encoder rotativo mentre Arduino legge gli ingressi analogici dai resistori sensibili alla forza (FSR) e invia un segnale all'Arduino per riprodurre un suono. Entrambi non avevamo mai usato un Arduino o un Pi prima di questa lezione, ma il nostro professore ci ha fornito tutti gli strumenti e la guida necessari per codificare e costruire facilmente questo progetto. TinkerCad, uno strumento di modellazione 3D online gratuito di AutoDesk, è stato utilizzato per modellare il nostro progetto.

La parte più difficile del progetto è stata trovare un modo per far comunicare Arduino e Raspberry Pi con la comunicazione seriale. Inizialmente volevamo utilizzare solo il Pi per l'intero progetto, ma avevamo bisogno di Arduino per leggere il segnale analogico dagli FSR. Siamo stati facilmente in grado di inviare righe di parole o numeri da Arduino e visualizzarli sul Pi, ma il problema è sorto quando abbiamo provato a leggere quei valori in Python e implementarli in dichiarazioni di condizione per elaborarli.

Abilità richieste

  • Semplice comprensione di C/C++ per la codifica Arduino
  • Semplice comprensione di Python per la codifica Raspberry Pi
  • Conoscenza su come è cablata una breadboard
  • Competenze di modellazione 3D di base
  • Il desiderio di imparare ed espandere la programmazione, il cablaggio e la costruzione di qualcosa di abbastanza pulito

Elenco delle parti

1 x Raspberry Pi 3

1 x Elegoo Uno O Arduino Uno

1 x 830 tagliere per cravatta

1 x scheda di breakout GPIO (RSP-GPIO)

1 x cavo a nastro per breakout board

4 x resistori sensibili alla forza ridotta

1 x schermo LCD di base 16x2 caratteri

1 x modulo encoder rotativo

24 x cavi da maschio a femmina

10 x cavi da maschio a maschio

4 x 10k resistori

1 x potenziometro 10k

1 x Ginocchiera in schiuma da giardino (negozio di dollari)

Passaggio 1: testare l'FSR con Arduino

Prova l'FSR con Arduino
Prova l'FSR con Arduino

Per prima cosa abbiamo deciso di provare l'FSR con Arduino. Gli FSR inviano un segnale analogico e quindi abbiamo dovuto usare un Arduino poiché il Pi non riceve l'analogico senza altri circuiti. Volevamo testare le soglie per assicurarci che le presse avessero una buona pressione. Abbiamo scoperto che era di circa 150 su un totale di 1000. Il plotter seriale sull'IDE di Arduino è stato molto utile per questo passaggio.

Passaggio 2: tracciare i piani per il consiglio

Disegna i piani per il consiglio
Disegna i piani per il consiglio
Disegna i piani per il consiglio
Disegna i piani per il consiglio

Abbiamo quindi elaborato e misurato i piani per il consiglio. Volevamo avere 4 pad con cui riprodurre i suoni, uno spot per uno schermo LCD per visualizzare il gruppo di suoni corrente e un codificatore rotante per cambiare il gruppo di suoni.

Passaggio 3: modella la scheda in TinkerCad

Modella la tavola in TinkerCad
Modella la tavola in TinkerCad
Modella la tavola in TinkerCad
Modella la tavola in TinkerCad
Modella la tavola in TinkerCad
Modella la tavola in TinkerCad

Dopo che i piani sono stati elaborati, abbiamo modellato la scheda su un sito Web di modellazione 3D online gratuito chiamato TinkerCad di Autodesk. Lo consigliamo vivamente a quelli di voi che non vogliono spendere un sacco di soldi in grandi software di modellazione 3D in quanto è facile da usare, basato su cloud e ha il pieno supporto per la stampa 3D.

Dopo che è stato modellato, abbiamo dovuto dividerlo in 2 pezzi per adattarlo alla stampante. È stato stampato molto bene, ma il mio errore non è stato dimensionare molto bene lo slot dello schermo LCD (non commettere questo errore!) Abbiamo caricato i file. STL del lato sinistro e destro se desideri verificarli.

Passaggio 4: testare lo schermo LCD

Prova lo schermo LCD
Prova lo schermo LCD

Avevamo già utilizzato lo schermo su Arduino ed è stato molto facile da configurare. Tuttavia, era più difficile eseguirlo con il Pi. Con diverse ore di risoluzione dei problemi su Google e giocherellando con i cavi, siamo finalmente riusciti a farlo funzionare. Si prega di vedere il codice Python finale alla fine per vedere come ha funzionato. Abbiamo utilizzato un paio di siti Web per aiutarci a cablarlo e scrivere il codice. Dai un'occhiata:

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

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

Passaggio 5: testare l'encoder rotativo con lo schermo LCD

Prova l'encoder rotativo con lo schermo LCD
Prova l'encoder rotativo con lo schermo LCD

Volevamo quindi vedere se potevamo far cambiare il testo allo schermo LCD quando l'encoder veniva ruotato. L'encoder non ha una quantità prestabilita di angoli o rotazioni, quindi nel codice abbiamo contato quante volte è stato ruotato in senso orario o antiorario e l'abbiamo fatto contare fino a 3. Se fosse andato oltre, sarebbe tornato a 0, e se scendesse sotto 0, sarebbe tornato a 3. Questi numeri possono essere impostati per tutti i set di suoni che desideri, ma alla fine abbiamo testato solo un set di suoni. Assicurati che i tuoi suoni siano nella stessa cartella/posizione in cui viene eseguito il codice Python principale.

Passaggio 6: assemblare la scheda

Assemblare la scheda
Assemblare la scheda
Assemblare la scheda
Assemblare la scheda
Assemblare la scheda
Assemblare la scheda

Gli FSR scorrono sotto i quattro diversi slot. Li abbiamo centrati e fissati con del nastro adesivo. Raccomandiamo il nastro adesivo o forse anche l'incollaggio perché il semplice nastro adesivo era terribile ad attaccarsi al materiale stampato in 3D. Dopo un breve viaggio al negozio del dollaro, abbiamo trovato una ginocchiera da giardino morbida ma soffice che potremmo tagliare in quattro pezzi da usare come bottoni per la tavola. Li abbiamo tagliati in modo che potessero adattarsi perfettamente ai loro punti in modo che potessero rimanere al loro posto, ma anche essere facilmente rimossi se necessario.

Passaggio 7: collega tutto

Collega tutto
Collega tutto
Collega tutto
Collega tutto

Dopo aver assemblato la scheda e aver posizionato gli FSR, l'encoder e lo schermo, abbiamo cablato tutto. Potresti usare 2 breadboard, ma siamo stati in grado di adattare tutto su uno. L'immagine sembra un disastro, ma abbiamo realizzato un diagramma schematico in un programma gratuito chiamato Fritzing. Nota che puoi cambiare i pin a cui vuoi attaccare tutto, ma lo schema corrisponde al nostro codice.

Passaggio 8: terminare la codifica di TUTTO

Questa era la parte difficile. Come affermato nell'introduzione, non siamo riusciti a completare questa parte. Il codice è al 99% tutto lì, ma l'unica parte che non ha funzionato è stata la comunicazione seriale da Arduino a Pi. Potremmo inviare facilmente le informazioni quando abbiamo collegato l'Arduino al Pi con il cavo USB, ma il Pi non ha potuto fare altro che visualizzare tali informazioni sullo schermo. Volevamo essere in grado di dire quale pulsante è stato premuto e far riprodurre un suono specifico, ma i dati che provenivano dalla comunicazione non potevano essere inseriti in una dichiarazione di condizione per testare quale pulsante fosse stato premuto.

Si prega di consultare il codice allegato, le note sono state commentate nel codice Python per il Pi. Il codice Arduino dovrebbe essere al 100%.

Passaggio 9: concludere

Concludere
Concludere

Nel complesso, questo progetto è stata un'enorme esperienza di apprendimento per noi due e speriamo che questo articolo possa dare a futuri studenti, insegnanti o sperimentatori un po' di ispirazione per il proprio progetto e che li guidi imparando dai nostri errori. Grida al nostro fantastico professore di robotica che ci ha aiutato immensamente durante il nostro tempo in classe e ci ha dato l'opportunità di divertirci un sacco e imparare molto in una classe COMP senior! Grazie per aver letto:)

Consigliato: