Taula de continguts:

Prototip de placa de so Arduino-Raspberry Pi: 9 passos (amb imatges)
Prototip de placa de so Arduino-Raspberry Pi: 9 passos (amb imatges)

Vídeo: Prototip de placa de so Arduino-Raspberry Pi: 9 passos (amb imatges)

Vídeo: Prototip de placa de so Arduino-Raspberry Pi: 9 passos (amb imatges)
Vídeo: CS50 Live, серия 003 2024, Desembre
Anonim
Prototip de placa de so Arduino-Raspberry Pi
Prototip de placa de so Arduino-Raspberry Pi

El prototip de taula de ressonància creat amb un Arduino i Raspberry Pi ha de ser una forma senzilla de reproduir 4 sons o sorolls diferents mentre es té l’opció de canviar els conjunts de so amb un comandament i mostrar el conjunt de so actual amb una pantalla LCD.

* Tingueu en compte que el codi del projecte està completat al 99%, però no és funcional.

El Raspberry Pi controla la pantalla LCD de 16x2 i el codificador rotatiu mentre l’Arduino llegeix les entrades analògiques de resistors sensibles a la força (FSR) i envia un senyal a l’Arduino per reproduir un so. Tots dos no havíem utilitzat mai un Arduino o Pi anterior a aquesta classe, però el nostre professor ens va donar totes les eines i orientacions necessàries per codificar i construir fàcilment aquest projecte. TinkerCad, una eina de modelatge 3D en línia gratuïta d’AutoDesk, es va utilitzar per modelar el nostre projecte.

La part més difícil del projecte va ser trobar una manera d'aconseguir que Arduino i Raspberry Pi es comuniquessin amb la comunicació en sèrie. Originalment només volíem utilitzar el Pi per a la totalitat del projecte, però necessitàvem l’Arduino per llegir el senyal analògic dels FSR. Fàcilment vam poder enviar línies de paraules o números des de l’Arduino i mostrar-lo al Pi, però el problema va ser quan vam intentar llegir aquests valors a Python i implementar-los en sentències de condició per processar-los.

Habilitats necessàries

  • Comprensió senzilla de C / C ++ per a la codificació Arduino
  • Comprensió senzilla de Python per a la codificació Raspberry Pi
  • Coneixements sobre com es connecta una taula de treball
  • Habilitats bàsiques de modelatge 3D
  • Un desig d'aprendre i ampliar la programació, el cablejat i la construcció d'alguna cosa una mica ordenat

Llista de peces

1 x Raspberry Pi 3

1 x Elegoo Uno O Arduino Uno

1 x 830 Taula de pa de corbata

1 x GPIO Breakout Board (RSP-GPIO)

1 x cable de cinta per a la placa de sortida

4 x petites resistències sensibles a la força

1 x pantalla LCD bàsica de 16x2 caràcters

1 x mòdul de codificador rotatiu

24 x cables masculins a femenins

10 x cables masculins a masculins

4 x 10k resistències

Potenciómetre 1 x 10k

1 x genollera d'escuma de jardí (botiga de dòlars)

Pas 1: proveu el FSR amb l'Arduino

Proveu el FSR amb l'Arduino
Proveu el FSR amb l'Arduino

Primer vam decidir provar el FSR amb l’Arduino. Els FSR envien un senyal analògic i, per tant, hem hagut d’utilitzar un Arduino ja que el Pi no rep analògic sense altres circuits. Volíem provar els llindars per assegurar-nos que les premses tenien una bona pressió. Hem trobat al voltant de 150 d'un total de 1000. El traçador en sèrie de l'IDE Arduino va ser molt útil per a aquest pas.

Pas 2: traça els plans per al tauler

Traieu els plans per al tauler
Traieu els plans per al tauler
Traieu els plans per al tauler
Traieu els plans per al tauler

Després vam elaborar i mesurar els plans del tauler. Volíem tenir 4 coixinets per reproduir sons, un punt per a una pantalla LCD per mostrar el grup de so actual i un codificador rotatiu per canviar el grup de so.

Pas 3: modeleu el tauler a TinkerCad

Modeleu el tauler a TinkerCad
Modeleu el tauler a TinkerCad
Modeleu el tauler a TinkerCad
Modeleu el tauler a TinkerCad
Modeleu el tauler a TinkerCad
Modeleu el tauler a TinkerCad

Després d’elaborar els plans, vam modelar el tauler en un lloc web de modelatge 3D gratuït i en línia anomenat TinkerCad d’Autodesk. El recomanem vivament per a aquells de vosaltres que no vulguin gastar molts diners en grans programes de modelatge 3D, ja que és fàcil d’utilitzar, es basa en el núvol i té un suport complet per a la impressió 3D.

Després de modelar-lo, hem hagut de dividir-lo en 2 peces per tal d’ajustar-lo a la impressora. Es va imprimir molt bé, però el meu error va ser no dimensionar molt bé la ranura de la pantalla LCD (no cometeu aquest error!) Hem carregat els fitxers. STL de la banda esquerra i dreta si voleu consultar-los.

Pas 4: proveu la pantalla LCD

Proveu la pantalla LCD
Proveu la pantalla LCD

Ja havíem utilitzat la pantalla de l'Arduino i era molt fàcil de configurar. Tot i això, era més difícil executar-lo amb el Pi. Amb diverses hores de resolució de problemes a Google i amb els cables, finalment vam aconseguir que funcionés. Consulteu el codi final de Python al final per veure com funcionava. Hem utilitzat un parell de llocs web per ajudar-nos a connectar-lo i escriure el codi. Consulteu-los:

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

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

Pas 5: proveu el codificador rotatiu amb la pantalla LCD

Proveu el codificador rotatiu amb la pantalla LCD
Proveu el codificador rotatiu amb la pantalla LCD

Aleshores vam voler veure si podíem canviar el text de la pantalla LCD quan es girava el codificador. El codificador no té una quantitat fixa d’angles ni rotacions, de manera que al codi hem comptabilitzat quantes vegades s’ha girat en sentit horari o antihorari i hem fet que compti a 3. Si es superés, tornaria a 0 i si passés per sota de 0, tornaria a pujar a 3. Aquests números es poden definir per a molts conjunts de so que vulgueu, però només hem acabat provant un conjunt de sons. Assegureu-vos que els sons es trobin a la mateixa carpeta / ubicació que on s’executa el codi principal de Python.

Pas 6: Reuneix el tauler

Reuneix la Junta
Reuneix la Junta
Reuneix la Junta
Reuneix la Junta
Reuneix la Junta
Reuneix la Junta

Els FSR llisquen per sota de les quatre ranures diferents. Els vam centrar i els vam gravar. Recomanem cinta adhesiva o potser fins i tot enganxar perquè la simple cinta adhesiva va ser terrible en adherir-se al material imprès en 3D. Després d’un viatge ràpid a la botiga de dòlars, vam trobar una genollera de jardí suau però esquifida que podríem tallar en quatre trossos per utilitzar-la com a botons del tauler. Els tallem perquè poguessin encaixar còmodament als seus punts perquè poguessin romandre al seu lloc, però també es podrien eliminar fàcilment si calgués.

Pas 7: connecteu-ho tot

Connecteu-ho tot
Connecteu-ho tot
Connecteu-ho tot
Connecteu-ho tot

Després de muntar la placa i posar els FSR, el codificador i la pantalla al seu lloc, ho vam connectar tot. Podeu fer servir dues taules d’anàlisi, però hem pogut ajustar-ho tot a una. La imatge sembla un embolic, però vam fer un diagrama esquemàtic en un programa gratuït anomenat Fritzing. Tingueu en compte que podeu canviar a quins pins voleu adjuntar-ho tot, però el diagrama correspon al nostre codi.

Pas 8: Acabeu de codificar TOT

Aquesta va ser la part complicada. Com s’indica a la introducció, no hem pogut completar aquesta part. El codi és del 99%, però l’única part que no va funcionar va ser la comunicació serial d’Arduino a Pi. Podríem enviar la informació fàcilment quan connectàvem l’Arduino al Pi amb el cable USB, però el Pi no podia fer res més que mostrar aquesta informació a la pantalla. Volíem saber quin botó es premia i fer que aquest reprodueixi un so específic, però les dades que arribaven a través de la comunicació no es podien posar en una declaració de condició per provar quin botó es premia.

Consulteu el codi adjunt; s’han comentat notes al codi Python del Pi. El codi Arduino hauria de ser del 100%.

Pas 9: conclou

Conclou
Conclou

En general, aquest projecte va suposar una experiència d’aprenentatge ENORME per a nosaltres dos i esperem que aquesta redacció pugui inspirar als futurs estudiants, professors o jugadors per al seu propi projecte i guiar-los aprenent dels nostres errors. Crida al nostre impressionant professor de robòtica que ens va ajudar enormement durant la nostra estada a classe i ens va donar l’oportunitat de divertir-nos i aprendre molt en una classe de COMP sènior. Gràcies per llegir:)

Recomanat: