Innholdsfortegnelse:

Prima - en robot som spiller piano: 13 trinn
Prima - en robot som spiller piano: 13 trinn

Video: Prima - en robot som spiller piano: 13 trinn

Video: Prima - en robot som spiller piano: 13 trinn
Video: Я работаю в Страшном музее для Богатых и Знаменитых. Страшные истории. Ужасы. 2024, November
Anonim
Prima - en robot som spiller piano
Prima - en robot som spiller piano

Ideen om at en robot skulle spille et instrument fascinerte meg alltid, og jeg har alltid ønsket å bygge en selv. Imidlertid hadde jeg aldri mye kunnskap om musikk og musikkinstrumenter, så jeg kunne aldri finne ut hvordan jeg egentlig skulle begynne med det. Inntil nylig ble jeg interessert i å lage musikk, begynte å lære musikkproduksjonsmateriell, og etter å ha fått et MIDI -tastatur, har jeg innsett at dette ikke er et vanskelig instrument å spille, og jeg kan faktisk bygge en robot som kan spille det. Så det var slik det begynte å lage Prima.

Jeg var ikke sikker på om dette prosjektet lyktes, så gadd ikke dokumentere det. Men siden det viste seg å fungere bra, har jeg bestemt meg for å dele detaljene med Instructables -fellesskapet. Dette vil ikke være en trinnvis byggelogg, snarere en retningslinje for å komme i gang. Jeg skal forklare hvordan hver del av denne roboten fungerer, dele bildene av dem og koden for Arduino. Håper det vil være nok hvis du vil replikere dette prosjektet.

Og designet ble inspirert av disse instruktørene, rop ut til JimRD!

Så, la oss komme i gang

Trinn 1: Oversikt over hele prosjektet

Prima er en robot som kan spille keyboard/piano eller et lignende nøkkelbasert instrument. Den har en Arduino Uno som hjerne, en LCD-skjerm for visuell utgang og en ultralydsensor for berøringsfri start. Enhver strømadapter som leverer 5 volt 2 ampere, bør kunne koble den.

Den har følgende funksjoner -

  • Programmerbar - Kan programmeres til å spille hvilken som helst komposisjon som er begrenset innenfor en oktav.
  • Justerbart tempo - Tempoet det vil følge mens du spiller instrumentet kan settes i koden.
  • Berøringsfri start - Brukeren kan utløse spillet bare ved å sveipe hånden på sensoren, noe som vil være til stor hjelp hvis brukeren er opptatt med å spille et annet instrument og vil at Prima skal spille sammen med ham/henne etter et bestemt tidspunkt. Menneskelig spiller som jammer med en robotspiller - selv dette kan oppnås også ved hjelp av denne funksjonen.

Trinn 2: Video

Image
Image

Du kan se den spille et tastatur i videoen.

Trinn 3: Lag 3D -modellen

Å lage 3D -modellen
Å lage 3D -modellen
Å lage 3D -modellen
Å lage 3D -modellen

Etter å ha fullført hva den skulle kunne gjøre, designet jeg kroppen på TinkerCAD slik at jeg kunne begynne å bygge den med en klar ide om hva jeg gjorde.

Denne tilnærmingen hjalp meg sterkt til å ende opp med en pen robot som fungerer akkurat slik den var designet for. Selv om jeg måtte endre det originale designet litt mens jeg bygde det, sparte 3D -modellen meg mye tid og krefter. Du kan se 3D -modellen i flere detaljer her.

Trinn 4: Deler og verktøy

Deler og verktøy
Deler og verktøy
Deler og verktøy
Deler og verktøy
Deler og verktøy
Deler og verktøy

For den elektroniske delen trenger du -

  • Arduino Uno (Antall - 1)
  • 16x2 LCD -skjerm (mengde - 1)
  • I2C -adapter for LCD -skjermen (mengde - 1)
  • TowerPro SG90 Micro Servo (Antall - 2)
  • HC -SR04 ultralydsensor (mengde - 1)
  • Toggle Push Switch (antall - 1)
  • Summer (Antall - 1)
  • Vero board/ Dot Board/ Perf Board
  • Mann til mann og mann til kvinne

For å lage kroppen -

  • 5 mm PVC -ark
  • Syklus eiker (Antall - 2)
  • Skruer
  • Påfyllingsholder til penn
  • Spraymaling (hvis du vil male den)

Verktøyene du trenger -

  • Superlim
  • Varm limpistol
  • Loddejern
  • Anti-cutter (A. K. A Paper-cutter)

Trinn 5: Kretsløp

Kretsløp
Kretsløp
Kretsløp
Kretsløp
Kretsløp
Kretsløp

Kretsdelen var ganske enkel. Jeg forklarer hvordan jeg gjorde hvert segment av det -

LCD -segment - Jeg brukte en I2C -adapter for LCD -skjermen slik at Arduino kunne kommunisere med den via I2C, noe som ikke var nødvendig, men forenklet kretsen og redusert antall ledninger. Du kan bruke en standard LCD ved å endre koden litt.

Kraftsegment - Jeg laget en enkel krets på veroboard som består av en vippebryter, en summer, en LED (som jeg bestemte meg for ikke å bruke etterpå) og en 5V felles strømbuss. Strømbuss som i, 5V- og bakkepinnene på servoene, sonarsensoren, LCD -en og Arduino er alle koblet til hverandre. Den ene pinnen på trykkbryteren er koblet til 5V+ -ledningen, og den andre pinnen er koblet til strømforsyningens VCC -pinne. Jordledningen er koblet til strømforsyningens jordpinne direkte. Så Prima kan slås på/av ved hjelp av bryteren. Summeren og LED -en er koblet parallelt, og VCC -pinnen til dem går til pin 13 på Arduino. Bakken deres er koblet til den vanlige kraftbussens bakken.

Servos kontaktmodifikasjon - Siden jumper -ledninger ofte har en tendens til å koble fra servo -kontakten, kuttet jeg VCC og jordledningen fra begge servoene og loddet dem direkte til strømbussen. For signalpinnene brukte jeg imidlertid jumperkabler for å koble dem til Arduino.

Ekkoloddsensor - Loddet henholdsvis to ledninger til VCC og jordingsstiftet til ekkoloddsensoren, som går til den vanlige strømbussen, og brukte jumperkabler for å koble utløseren og ekkopinnen til Arduino.

Arduino - Drives gjennom fatkontakten.

Som går til hvilken -

Sonarsensorens utløserpinne -> Arduinos A2 -pinne

Ekkolodd for ekkoloddsensor -> Arduinos A3 -pinne

I2C -adapterens SDA -pinne -> Arduinos A4 -pinne

I2C -adapterens SCL -pinne -> Arduinos A5 -pinne

Buzzer's VCC -> Arduino's D13 pin

Tastetrykk på servos signalpinne -> Arduinos D9 -pinne

X -akses servos signalpinne -> Arduinos D8 -pinne

Alle VCC- og bakkepinner er koblet til den vanlige strømbussen.

Trinn 6: Montering av ekkolodd

Ekkolodd sensorfeste
Ekkolodd sensorfeste

Bildet er selvforklarende, bare superlimt en L-formet hylle på "veggen" og varmlimt sonarsensoren på hyllen.

Trinn 7: Lag X -akseskinnen

Gjør X -akseskinnen
Gjør X -akseskinnen
Gjør X -akseskinnen
Gjør X -akseskinnen

Jeg lånte konseptet med X -akseskinnen fra CNC -maskiner. Det er bare to sykliske eiker plassert parallelt med hverandre, og "veggene" har hull som syklusene går gjennom. I de andre endene av veggene varmes syklistene fast til veggene slik at de ikke beveger seg. Syklus eikene er sterke nok til å støtte X -aksen plattform.

Trinn 8: X -akseplattform

X -akseplattform
X -akseplattform
X -akseplattform
X -akseplattform
X -akseplattform
X -akseplattform
X -akseplattform
X -akseplattform

Det er den delen som går sidelengs for å nå bestemte nøkler og har en servo som har en arm festet til den som trykker på tasten.

Den har to pennpåfyllingsrør varmlimt på bunnen av den som syklusene går gjennom slik at den kan gli på dem. Jeg fikk dette røret fra en penn, du kan bruke alt som passer til eikene, for eksempel å drikke halm.

Så, i midten av det nederste PVC -arket, står det et annet PVC -ark stående rett. Den har et hull i den nedre delen som passer til servokroppen og servoen settes inn gjennom den. Servoen er festet med varmt lim.

Servoen har en arm koblet til den. Når roboten må trykke på en tast, roterer servoen armen nedover, noe som resulterer i et tastetrykk og roterer den til sin tidligere posisjon etterpå.

Trinn 9: Flytte X -akseplattformen

Flytter X -akseplattformen
Flytter X -akseplattformen
Flytter X -akseplattformen
Flytter X -akseplattformen
Flytter X -akseplattformen
Flytter X -akseplattformen

Servoen "X -akseflytter" er festet til en forhøyet plattform som er på venstre side av roboten. X -aksen plattform har en hylle på toppen der en arm skjøtes med en skrue. På den andre enden av armen skjøtes en annen arm med skrue, og denne er koblet til servohornet. Alle ledd er bevegelige, og servoen kan drive X -akseplattformen på X -akseskinnene ved å rotere hornet til venstre/høyre, noe som vil få armene til å skyve/trekke plattformen på skinnene.

Leddene er laget med skrue.

Trinn 10: Kode

Etter at du er ferdig med å bygge kroppen og kretsen, laster du opp koden på Arduino. Sett roboten parallelt med tastaturet/pianoet X -akseplattformen begynner først å bevege seg mot venstre og stopper på et bestemt tidspunkt. Flytt roboten til C -tasten på pianoet møter det punktet. Dette er et avgjørende trinn, for uten å plassere roboten på denne måten vil den ikke spille melodien riktig. Slå deretter på roboten, den skal begynne å spille en melodi i løpet av få sekunder.

Koden er ganske grunnleggende og har rom for forbedring. Hvis du vil at roboten skal spille din egen melodi, må du bare sette den i koden som er ganske enkel.

Trinn 11: Mal det

Hvis du vil male den som min (jeg vil på det sterkeste foreslå å gjøre det, den ser mye bedre malt ut), gjør alle kroppsdelene først, sørg for at de er kuttet riktig. Vask dem deretter med såpe slik at de er fri for olje og smuss. Folk sliper vanligvis overflaten før du maler den, men her trenger du ikke. Spray et lag på dem først, gi det nok tid til å tørke (noen timer), og mal deretter et nytt lag. Du kan begynne å montere delene og lime dem sammen etter at malingen tørker ut.

Jeg brukte spraymaling for å male min

Trinn 12: Plassering og organisering av elektronikken

Plassering og organisering av elektronikken
Plassering og organisering av elektronikken
Plassering og organisering av elektronikken
Plassering og organisering av elektronikken

Jeg skrudde Arduino til basen PVC-ark og varmlimte både strømkretsen og LCD-en på grunnplaten. Organiserte ledningene med varmt lim.

Trinn 13: Konklusjon: Takk for at du leser instruksjonene

Så, dette er hvordan jeg bygde Prima. Håper byggloggen var oversiktlig og lett å forstå. Hvis du har spørsmål, kan du la dem stå i kommentarfeltet, jeg skal prøve å svare så tidlig som mulig.

Fremtidsplaner med dette prosjektet -

  • Lage en programvare for enklere programmering av Prima.
  • Legger til tempotappefunksjon, slik at du bare kan trykke på en knapp for å justere tempoet.
  • Bytt servoer med roligere og raskere

Hvis du bygger dette, legg igjen bilder i kommentaren, jeg vil gjerne se dine!:)

Anbefalt: