Inhoudsopgave:
- Stap 1: Overzicht van het hele project
- Stap 2: Video
- Stap 3: Het 3D-model maken
- Stap 4: Onderdelen en gereedschappen
- Stap 5: Circuits
- Stap 6: Sonarsensorbevestiging
- Stap 7: De X-asrail maken
- Stap 8: X-asplatform
- Stap 9: Het X-asplatform verplaatsen
- Stap 10: Coderen
- Stap 11: Het schilderen
- Stap 12: De elektronica plaatsen en organiseren
- Stap 13: Conclusie: Bedankt voor het lezen van de Instructables
Video: Prima - een robot die piano speelt - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:17
Het idee van een robot die een instrument bespeelt, heeft me altijd gefascineerd en ik heb er altijd al een zelf willen bouwen. Ik had echter nooit veel kennis van muziek en muziekinstrumenten, dus ik kon er nooit achter komen hoe ik daar eigenlijk mee zou beginnen. Tot voor kort raakte ik geïnteresseerd in het maken van muziek, begon ik muziekproductie te leren, en nadat ik een MIDI-keyboard had gekocht, realiseerde ik me dat dit geen moeilijk instrument is om te bespelen en dat ik een robot kan bouwen die het kan bespelen. Zo begon het maken van Prima.
Ik was niet zeker van het succes van dit project, dus nam ik niet de moeite om het te documenteren. Maar omdat het geweldig bleek te werken, heb ik besloten om de details te delen met de Instructables-gemeenschap. Dit is geen stapsgewijze buildlog, maar eerder een richtlijn om u op weg te helpen. Ik zal uitleggen hoe elk onderdeel van deze robot werkt, de foto's ervan delen en de code voor de Arduino. Ik hoop dat dat genoeg is als je dit project wilt repliceren.
En het ontwerp is geïnspireerd op deze instructables, schreeuw naar JimRD!
Dus laten we beginnen
Stap 1: Overzicht van het hele project
Prima is een robot die keyboard/piano of een soortgelijk op toetsen gebaseerd instrument kan bespelen. Het heeft een Arduino Uno als brein, een LCD-scherm voor visuele output en een ultrasone sensor voor aanrakingloos starten. Elke voedingsadapter die 5 volt 2 ampère levert, moet deze van stroom kunnen voorzien.
Het heeft de volgende kenmerken -
- Programmeerbaar - Kan worden geprogrammeerd om elke compositie te spelen die binnen een octaaf is beperkt.
- Instelbaar tempo - Het tempo dat het zal volgen tijdens het spelen van het instrument kan in de code worden ingesteld.
- Aanraken zonder starten - De gebruiker kan het spel activeren door met zijn/haar hand over de sensor te vegen, wat erg handig is als de gebruiker bezig is met het bespelen van een ander instrument en wil dat Prima na een bepaalde tijd met hem/haar meespeelt. Menselijke speler jamt met een robotspeler - zelfs dit kan ook worden bereikt met behulp van deze functie.
Stap 2: Video
Je kunt het in de video bekijken terwijl je een toetsenbord bespeelt.
Stap 3: Het 3D-model maken
Nadat ik de laatste hand had gelegd aan wat het zou moeten kunnen, ontwierp ik het lichaam op TinkerCAD, zodat ik het kon gaan bouwen met een duidelijk idee van wat ik aan het doen was.
Deze aanpak heeft me enorm geholpen om een nette robot te krijgen die precies werkt zoals hij is ontworpen. Hoewel ik het oorspronkelijke ontwerp tijdens het bouwen een beetje moest aanpassen, heeft het 3D-model me toch veel tijd en moeite bespaard. Mogelijk ziet u hier meer details over het 3D-model.
Stap 4: Onderdelen en gereedschappen
Voor het elektronische gedeelte heb je nodig -
- Arduino Uno (Aantal - 1)
- 16x2 LCD-scherm (aantal - 1)
- I2C-adapter voor het LCD-scherm (aantal - 1)
- TowerPro SG90 Micro Servo (Aantal - 2)
- HC-SR04 Ultrasone sensor (aantal - 1)
- Toggle-drukschakelaar (aantal - 1)
- Zoemer (aantal - 1)
- Vero bord/Dot Board/Perf Board
- Man-man en man-vrouw jumperdraden
Voor het maken van het lichaam -
- 5 mm PVC-plaat
- Cyclusspaak (Aantal - 2)
- Schroeven
- Pen navul houder buis
- Spray paint (als je het wilt schilderen)
De tools die je nodig hebt -
- Superlijm
- Heet lijmpistool
- Soldeerbout
- Anti-snijder (A. K. A Papier-snijder)
Stap 5: Circuits
Het circuitgedeelte was vrij eenvoudig. Ik leg uit hoe ik elk segment ervan heb gedaan -
LCD-segment - Ik heb een I2C-adapter voor het LCD-scherm gebruikt, zodat de Arduino ermee kon communiceren via I2C, wat niet nodig was, maar het circuit vereenvoudigde en het aantal draden verminderde. U kunt een standaard LCD-scherm gebruiken door de code een beetje aan te passen.
Vermogenssegment - Ik heb een eenvoudig circuit op veroboard gemaakt dat bestaat uit een tuimelschakelaar, een zoemer, een LED (die ik later niet meer wilde gebruiken) en een 5V-gemeenschappelijke voedingsbus. Powerbus zoals in, de 5V- en grondpennen van de servo's, de sonarsensor, het LCD-scherm en de Arduino zijn allemaal respectievelijk met elkaar verbonden. Een pin van de drukschakelaar is verbonden met de 5V+ lijn en de andere pin is verbonden met de VCC-pin van de voeding. De aardleiding is rechtstreeks verbonden met de aardpen van de voeding. Prima kan dus met de schakelaar aan/uit worden gezet. De zoemer en de LED zijn parallel geschakeld en de VCC-pin ervan gaat naar pin 13 van de Arduino. Hun aarde is verbonden met de aarde van de gemeenschappelijke stroombus.
Aanpassing van de connector van servo's - Omdat jumperdraden vaak de neiging hebben om los te koppelen van de connector van de servo, heb ik de VCC en de aardedraad van beide servo's doorgesneden en rechtstreeks op de voedingsbus gesoldeerd. Voor de signaalpinnen heb ik echter jumperdraden gebruikt om ze op Arduino aan te sluiten.
Sonarsensor - Twee draden gesoldeerd aan respectievelijk de VCC en de grondpin van de sonarsensor, die naar de gemeenschappelijke voedingsbus gaan, en jumperdraden gebruikt om de trigger- en echopin op de Arduino aan te sluiten.
Arduino - Aangedreven door de barrel jack-connector.
Welke gaat naar welke -
Sonar Sensor's triggerpin -> Arduino's A2 pin
Echo-pin van Sonar Sensor -> A3-pin van Arduino
I2C Adapter's SDA pin -> Arduino's A4 pin
SCL-pin van I2C-adapter -> A5-pin van Arduino
Zoemer's VCC -> Arduino's D13-pin
Signaalpin van de servo-toets -> Arduino's D9-pin
X-as servo's signaalpin -> Arduino's D8-pin
Alle VCC- en aardingspinnen zijn verbonden met de gemeenschappelijke voedingsbus.
Stap 6: Sonarsensorbevestiging
De afbeelding spreekt voor zich, heb gewoon een L-vormige plank op de "muur" supergelijmd en de sonarsensor op de plank gelijmd.
Stap 7: De X-asrail maken
Ik leende het concept van de X-asrail van CNC-machines. Het zijn gewoon twee fietsspaken die evenwijdig aan elkaar zijn geplaatst, en de "muren" hebben gaten waar de fietsspaken doorheen gaan. Aan de andere uiteinden van de muren zijn de fietsspaken warmgelijmd aan de muren zodat ze niet bewegen. De fietsspaken zijn sterk genoeg om het X-asplatform te ondersteunen.
Stap 8: X-asplatform
Het is het deel dat zijwaarts gaat om bepaalde toetsen te bereiken en heeft een servo waaraan een arm is bevestigd die op de toets drukt.
Het heeft twee pennenhouders die warmgelijmd zijn aan de onderkant, waar de fietsspaken doorheen gaan, zodat het eroverheen kan schuiven. Deze tube heb ik uit een pen gehaald, je mag alles gebruiken wat op de spaken past zoals een rietje.
Dan, in het midden van de onderste PVC-plaat, staat er nog een PVC-plaat rechtop. Het heeft een gat in het onderste gedeelte dat in het servolichaam past en de servo wordt er doorheen gestoken. De servo is vastgezet met hete lijm.
Aan de servo is een arm verbonden. Wanneer de robot een toets moet indrukken, roteert de servo de arm naar beneden, resulterend in een toetsaanslag en roteert deze daarna naar zijn vorige positie.
Stap 9: Het X-asplatform verplaatsen
De servo "X axis mover" is bevestigd aan een verhoogd platform dat zich aan de linkerkant van de robot bevindt. Het platform met de X-as heeft een plank aan de bovenkant waar een arm met een schroef is verbonden. Aan het andere uiteinde van de arm is een andere arm verbonden met een schroef en deze is verbonden met de servohoorn. Alle gewrichten zijn beweegbaar en de servo kan het X-asplatform op de X-asrails aandrijven door de hoorn naar links/rechts te draaien, waardoor de armen het platform op de rails zouden duwen/trekken.
De verbindingen zijn gemaakt met behulp van schroeven.
Stap 10: Coderen
Nadat u klaar bent met het bouwen van het lichaam en het circuit, uploadt u de code op Arduino. Zet de robot parallel aan het keyboard/piano. Het x-as platform zal eerst naar links gaan bewegen en op een bepaald punt stoppen. Beweeg de robot totdat de C-toets van de piano dat punt raakt. Dit is een cruciale stap, want zonder de robot op deze manier te positioneren, zal hij de melodie niet correct spelen. Schakel vervolgens de robot in, deze zou binnen enkele seconden een melodie moeten spelen.
De code is vrij eenvoudig en kan worden verbeterd. Als je wilt dat de robot je eigen melodie speelt, moet je hem gewoon in de code zetten, wat vrij eenvoudig is.
Stap 11: Het schilderen
Als je het wilt schilderen zoals het mijne (ik zou dit ten zeerste aanbevelen, het ziet er veel beter geverfd uit), maak dan eerst alle lichaamsdelen, zorg ervoor dat ze correct zijn gesneden. Was ze daarna met zeep, zodat ze vrij zijn van olie en vuil. Mensen schuren meestal het oppervlak voordat ze het schilderen, maar hier is dat niet nodig. Eerst een laag erop spuiten, voldoende tijd geven om te drogen (enkele uren), daarna nog een laag schilderen. U kunt beginnen met het monteren van de onderdelen en ze aan elkaar lijmen nadat de verf is opgedroogd.
Ik heb spuitverf gebruikt om de mijne te schilderen
Stap 12: De elektronica plaatsen en organiseren
Ik heb de Arduino op het PVC-basisvel geschroefd en zowel het stroomcircuit als het LCD-scherm op het basisbord gelijmd. Organiseerde de draden met hete lijm.
Stap 13: Conclusie: Bedankt voor het lezen van de Instructables
Dus zo heb ik Prima gebouwd. Ik hoop dat het buildlogboek duidelijk en gemakkelijk te begrijpen was. Als je vragen hebt, laat ze dan gerust achter in het commentaargedeelte, ik zal proberen zo snel mogelijk te antwoorden.
Toekomstplannen met dit project -
- Makkelijker software maken om Prima te programmeren.
- Tempo-tapping-functie toegevoegd, zodat je gewoon op een knop kunt tikken om het tempo aan te passen.
- De servo's verwisselen voor stillere en snellere
Als je dit bouwt, plaats dan foto's in een reactie, ik zou graag de jouwe zien!:)
Aanbevolen:
De Arduino-piano: 3 stappen
De Arduino-piano: deze "piano" kan een octaaf van een echte piano spelen. Het indrukken van knoppen staat voor het indrukken van een toets op de piano. Het geluid wordt doorgegeven via een piëzo-luidspreker
Arduino flipperkast die zichzelf speelt! 13 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
Arduino flipperkast die zichzelf speelt!: "Een flipperkast die zichzelf speelt, dat haalt toch al het plezier eruit?" Ik hoor je vragen. Misschien als je niet van autonome robots houdt. Ik ben echter heel erg bezig met het bouwen van robots die coole dingen kunnen doen, en deze
Toetsenbord Piano: 3 stappen
Keypad Piano: Deze tutorial laat zien hoe je een basispiano met 8 noten maakt met een 4x4-toetsenbord en een passieve zoemer. In dit project spelen de toetsen 1 tot en met 8 noten op de piano en spelen de A-D-knoppen vooraf ingestelde melodieën
Geautomatiseerde piano: 5 stappen
Geautomatiseerde piano: ik wilde een piano maken die automatisch kan spelen door onmiddellijk naar mijn muziek te luisteren. Dus probeerde ik het met arduino uno die ik had liggen. Het zou veel beter kunnen zijn met arduino nul met behulp van een eenvoudige frequentiemeterbibliotheek. heb het niet bij
Hoe muziek te krijgen van BIJNA ELKE (Haha) website (zolang je het kunt horen, kun je het krijgen Ok prima als het in Flash is ingesloten, kun je dat misschien niet) BEWERKT !!!!! Info toegevoegd: 4 stappen
Hoe muziek te krijgen van BIJNA ELKE (Haha) website (zolang je het kunt horen, kun je het krijgen … Ok prima als het in Flash is ingesloten, kun je dat misschien niet) BEWERKT !!!!! Toegevoegde info: als je ooit naar een website gaat en een nummer speelt dat je leuk vindt en wilt, dan is hier de instructie voor jou, niet mijn schuld als je iets verknoeit (de enige manier waarop het zal gebeuren is als je dingen begint te verwijderen zonder reden )ik heb muziek kunnen krijgen voor