Inhoudsopgave:
- Stap 1: Test de FSR met de Arduino
- Stap 2: Teken de plannen voor het bord uit
- Stap 3: Modelleer het bord in TinkerCad
- Stap 4: Test het LCD-scherm
- Stap 5: Test de roterende encoder met het lcd-scherm
- Stap 6: Monteer het bord
- Stap 7: Sluit alles aan
- Stap 8: Voltooi het coderen van ALLES
- Stap 9: Afsluiten
Video: Prototype Arduino-Raspberry Pi Soundboard - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:18
Het prototype klankbord gemaakt met een Arduino en Raspberry Pi is bedoeld als een eenvoudige manier om 4 verschillende geluiden of geluiden te spelen, terwijl het de mogelijkheid heeft om van geluidsset te wisselen met een knop en de huidige geluidsset weer te geven met een LCD-scherm.
*Let op: De code voor het project is 99% compleet, maar niet functioneel.
De Raspberry Pi bestuurt het 16x2 LCD-scherm en de roterende encoder, terwijl de Arduino de analoge ingangen van krachtgevoelige weerstanden (FSR's) leest en een signaal naar de Arduino stuurt om een geluid af te spelen. We hadden allebei nog nooit een Arduino of Pi gebruikt voorafgaand aan deze les, maar onze professor gaf ons alle benodigde tools en begeleiding om dit project gemakkelijk te coderen en te bouwen. TinkerCad, een gratis online 3D-modelleringstool van AutoDesk, werd gebruikt om ons project te modelleren.
Het moeilijkste deel van het project was het vinden van een manier om de Arduino en Raspberry Pi te laten communiceren met seriële communicatie. Oorspronkelijk wilden we de Pi alleen voor het hele project gebruiken, maar we hadden de Arduino nodig om het analoge signaal van de FSR's te lezen. We waren gemakkelijk in staat om regels met woorden of getallen van de Arduino te verzenden en deze op de Pi weer te geven, maar waar het probleem kwam, was toen we probeerden die waarden in Python te lezen en ze in conditieverklaringen te implementeren om ze te verwerken.
Vereiste vaardigheden
- Eenvoudig begrip van C/C++ voor Arduino-codering
- Eenvoudig begrip van Python voor Raspberry Pi-codering
- Kennis over hoe een breadboard is aangesloten
- Basisvaardigheden voor 3D-modellering
- Een verlangen om te leren programmeren, bekabelen en iets leuks te bouwen en uit te breiden
Onderdelen lijst
1 x Framboos Pi 3
1 x Elegoo Uno OF Arduino Uno
1 x 830 Tie Breadboard
1 x GPIO Breakout-kaart (RSP-GPIO)
1 x lintkabel voor breakout-bord
4 x kleine krachtgevoelige weerstanden
1 x basis LCD-scherm met 16x2 tekens
1 x roterende encodermodule
24 x mannelijke naar vrouwelijke draden
10 x mannelijke naar mannelijke draden
4 x 10k weerstanden
1 x 10k potentiometer
1 x kniebeschermer van tuinschuim (dollarwinkel)
Stap 1: Test de FSR met de Arduino
We besloten eerst de FSR uit te proberen met de Arduino. De FSR's sturen een analoog signaal en daarom moesten we een Arduino gebruiken omdat de Pi geen analoog ontvangt zonder andere circuits. We wilden drempels testen om er zeker van te zijn dat de persen op een goede druk stonden. We vonden dat het ongeveer 150 van de in totaal 1000 was. De seriële plotter op de Arduino IDE was erg handig voor deze stap.
Stap 2: Teken de plannen voor het bord uit
Vervolgens hebben we de plannen voor het bord gemaakt en ingemeten. We wilden 4 pads hebben om geluiden mee af te spelen, een plek voor een LCD-scherm om de huidige geluidsgroep weer te geven en een roterende encoder om de geluidsgroep te veranderen.
Stap 3: Modelleer het bord in TinkerCad
Nadat de plannen waren opgesteld, hebben we het bord gemodelleerd op een online, gratis, 3D-modelleringswebsite genaamd TinkerCad van Autodesk. We raden het ten zeerste aan voor degenen onder u die geen tonnen geld willen uitgeven aan grote 3D-modelleringssoftware, omdat het gebruiksvriendelijk is, cloudgebaseerd en volledige ondersteuning biedt voor 3D-printen.
Nadat het was gemodelleerd, moesten we het in 2 delen splitsen om het op de printer te passen. Het printte heel goed, maar mijn fout was de grootte van de LCD-schermsleuf niet erg goed (maak die fout niet!) We hebben de linker- en rechterkant. STL-bestanden geüpload als je ze wilt bekijken.
Stap 4: Test het LCD-scherm
We hadden het scherm op de Arduino al gebruikt en het was heel eenvoudig in te stellen. Het was echter moeilijker om het met de Pi uit te voeren. Met verschillende uren voor het oplossen van problemen op Google en het friemelen met draden, hebben we het eindelijk aan het werk gekregen. Zie de laatste Python-code aan het einde om te zien hoe het werkte. We hebben een paar websites gebruikt om ons te helpen het te bedraden en de code te schrijven. Bekijk ze eens:
learn.adafruit.com/drive-a-16x2-lcd-direct…
www.raspberrypi-spy.co.uk/2012/07/16x2-lcd…
Stap 5: Test de roterende encoder met het lcd-scherm
We wilden toen kijken of we de tekst van het LCD-scherm konden veranderen als de encoder werd gedraaid. De encoder heeft geen vast aantal hoeken of rotaties, dus in de code telden we hoe vaak het met de klok mee of tegen de klok in werd gedraaid en lieten het tot 3 tellen. Als het voorbij ging, zou het teruggaan naar 0, en als het onder de 0 zou gaan, zou het terug gaan naar 3. Die nummers kunnen worden ingesteld voor hoeveel geluidssets je wilt, maar we hebben uiteindelijk maar één geluidsset getest. Zorg ervoor dat je geluiden zich in dezelfde map/locatie bevinden als waar de hoofdpython-code wordt uitgevoerd.
Stap 6: Monteer het bord
De FSR's schuiven onder de vier verschillende sleuven. We centreerden ze en plakten ze vast. We raden ducttape aan of misschien zelfs lijmen omdat eenvoudige plakband verschrikkelijk was om aan het 3D-geprinte materiaal te hechten. Na een korte trip naar de dollarwinkel, vonden we een zacht maar zacht tuinkniekussen dat we in vier stukken konden snijden om als knoppen voor het bord te gebruiken. We hebben ze zo gesneden dat ze goed op hun plek passen, zodat ze op hun plaats kunnen blijven, maar ook gemakkelijk kunnen worden verwijderd als dat nodig is.
Stap 7: Sluit alles aan
Na het monteren van het bord en het plaatsen van de FSR's, encoder en scherm, hebben we alles aangesloten. Je kon 2 breadboards gebruiken, maar we konden alles op één plaatsen. De afbeelding ziet eruit als een puinhoop, maar we hebben een schematisch diagram gemaakt in een gratis programma genaamd Fritzing. Merk op dat je kunt wijzigen aan welke pinnen je alles wilt bevestigen, maar het diagram komt overeen met onze code.
Stap 8: Voltooi het coderen van ALLES
Dit was het lastige deel. Zoals vermeld in de intro hebben we dit onderdeel niet kunnen voltooien. De code is er voor 99%, maar het enige dat niet werkte, was de seriële communicatie van Arduino naar Pi. We konden de informatie gemakkelijk verzenden toen we de Arduino met de USB-kabel op de Pi hadden aangesloten, maar de Pi kon niets anders doen dan die informatie op het scherm weergeven. We wilden kunnen zien op welke knop werd gedrukt en dat een specifiek geluid laten spelen, maar de gegevens die via de communicatie binnenkwamen, konden niet in een conditieverklaring worden gezet om te testen op welke knop werd gedrukt.
Zie de bijgevoegde code, opmerkingen zijn becommentarieerd in de Python-code voor de Pi. De Arduino-code moet 100% zijn.
Stap 9: Afsluiten
Over het algemeen was dit project een ENORME leerervaring voor ons tweeën en we hopen dat dit artikel toekomstige studenten, docenten of knutselaars inspiratie kan geven voor hun eigen project en hen kan begeleiden door van onze fouten te leren. Shout out naar onze geweldige robotica-professor die enorm heeft geholpen tijdens onze tijd in de klas en ons de kans heeft gegeven om veel plezier te hebben en veel te leren in een senior COMP-klas! Bedankt voor het lezen:)
Aanbevolen:
Smart Motorcycle HUD-prototype (turn-by-turn navigatie en nog veel meer): 9 stappen
Smart Motorcycle HUD-prototype (turn-by-turn navigatie en nog veel meer): Hallo! This Instructables is het verhaal van hoe ik een HUD-platform (Heads-Up Display) heb ontworpen en gebouwd dat is ontworpen om op motorhelmen te worden gemonteerd. Het is geschreven in het kader van de "kaarten"-wedstrijd. Helaas kon ik het niet helemaal afmaken
Op Arduino gebaseerde telefoon (prototype): 7 stappen
Op Arduino gebaseerde telefoon (prototype): Hallo allemaal, vandaag gaan we in deze instructable kijken naar een op arduino gebaseerde telefoon. Dit is een telefoon is een prototype, het is nog in ontwikkeling. De broncode is opensource, iedereen kan de code wijzigen. Functies in telefoon:1. Muziek 2. Video's 3
Clean-Cut FR4 Perfboard (Protoboard/Prototype PCB): 10 stappen (met afbeeldingen)
Clean-Cut FR4 Perfboard (Protoboard/Prototype PCB): (tl;dr: luchtvaartknipsels en carborundumsteen onder water) Nu we het derde decennium van de 21e eeuw ingaan, kunnen op maat gemaakte printplaten van zeer hoge kwaliteit worden besteld in zeer kleine hoeveelheden voor zeer lage kosten… als u het niet erg vindt om te wachten
Mini Robotic Table (prototype): 6 stappen
Mini Robotic Table (prototype): Wat is er beter dan een tafel met wielen? Een tafel waar je omheen kunt rijden! Deze tutorial leert je hoe je je eigen Mini Robotic Table kunt bouwen, een project dat is bedacht en ontworpen door een van mijn studenten (ze was 10 toen we begonnen). wij b
Roterende massagemachine V1.0 (prototype): 7 stappen
Rotary Massage Machine V1.0 (Prototype): Rotary Massage Machine, is een apparaat dat u helpt uw spieren te ontspannen wanneer ze gespannen zijn. Het kan ook helpen om spierknopen te ontwarren of kan worden gebruikt voor diepe weefselbehandeling. De twee knoppen aan de onderkant hebben een verhoogd gebied om het weefsel uit te steken