Inhoudsopgave:

Prima - een robot die piano speelt - Ajarnpa
Prima - een robot die piano speelt - Ajarnpa

Video: Prima - een robot die piano speelt - Ajarnpa

Video: Prima - een robot die piano speelt - Ajarnpa
Video: ПОЧЕМУ Я ЖДУ L4D3 2024, November
Anonim
Prima - een robot die piano speelt
Prima - een robot die piano speelt

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

Image
Image

Je kunt het in de video bekijken terwijl je een toetsenbord bespeelt.

Stap 3: Het 3D-model maken

Het 3D-model maken
Het 3D-model maken
Het 3D-model maken
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

Onderdelen en gereedschappen
Onderdelen en gereedschappen
Onderdelen en gereedschappen
Onderdelen en gereedschappen
Onderdelen en gereedschappen
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

Circuits
Circuits
Circuits
Circuits
Circuits
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

Sonarsensorbevestiging
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

De X-asrail maken
De X-asrail maken
De X-asrail maken
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

X-asplatform
X-asplatform
X-asplatform
X-asplatform
X-asplatform
X-asplatform
X-asplatform
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

Het X-asplatform verplaatsen
Het X-asplatform verplaatsen
Het X-asplatform verplaatsen
Het X-asplatform verplaatsen
Het X-asplatform verplaatsen
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

De elektronica plaatsen en organiseren
De elektronica plaatsen en organiseren
De elektronica plaatsen en organiseren
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: