Innholdsfortegnelse:

Arduino kontrollert klokketårn/klokkespill: 5 trinn (med bilder)
Arduino kontrollert klokketårn/klokkespill: 5 trinn (med bilder)

Video: Arduino kontrollert klokketårn/klokkespill: 5 trinn (med bilder)

Video: Arduino kontrollert klokketårn/klokkespill: 5 trinn (med bilder)
Video: Arduino in 100 Seconds 2024, November
Anonim
Arduino kontrollert klokketårn/klokkespill
Arduino kontrollert klokketårn/klokkespill
Arduino kontrollert klokketårn/klokkespill
Arduino kontrollert klokketårn/klokkespill

Dette er et sett med musikalske klokker som drives av solenoider og styres av en Arduino mikrokontroller. Det er 8 klokker som dekker en oktav. Klokkene kan kontrolleres fra en PC, eller så kan tårnet stå alene og spille forhåndsprogrammerte melodier. Sjekk den siste siden for video av den i aksjon.

Trinn 1: Deler

Deler
Deler

Følgende deler ble brukt: 1 sett med kromatiske håndklokker. Jeg fikk disse fra min lokale Aldi for $ 20. De strekker seg fra C til C. $ 10,8 solenoider for å slå klokkene. Jeg hadde disse liggende i søppelboksen min. Jeg fikk dem fra en skrivemaskinreparatør som kastet dem. Du kan sannsynligvis finne lignende på Ebay. Arudino mikrokontroller. ~ $ 45. Jeg kjøpte min fra SparkFun electronics. Proto/Perf -brett og diverse komponenter for å lage mitt tilpassede 'skjold' for arduinoen. $ 10. Darlington driverbrett. Jeg brukte en jeg hadde liggende, men jeg tror de ikke selges separat. Bør være mulig å gjøre det ved hjelp av ULN2803 -brikken for et par dollar.

Trinn 2: Trebearbeiding

Trebearbeiding
Trebearbeiding

Overraskende nok tok dette trinnet lengst. Kodingen og ledningene tok mindre tid enn for limet å tørke. Rammen for dette var ganske enkel. Bare et stykke kryssfiner for å holde alle klokkene, pluss noen furubeslag for solenoider. Alt ble limt sammen med PVA -lim. For å gjøre magnetventilene mer gjentagende, laget jeg en sjablong i MS Visio og limte den deretter på treverket. Dette hjalp mye på å ha alle solenoider i konstant avstand fra klokken. Hvis du gjør dette kan jeg ikke understreke nok til å måle nøye for angriperplasseringene. Klokkene høres ganske forskjellige ut, avhengig av hvor du treffer dem og "kast" av solenoiden.

Trinn 3: Elektronikk og ledninger

Elektronikk og ledninger
Elektronikk og ledninger

Førersiden: Jeg var så heldig å ha en darlington -sjåfør liggende, noe som forenklet designet mye. Darlington er en effekttransistor som du kan bruke til å kjøre tyngre belastninger enn de små mikrokontrollerpinnene normalt støtter. Brettet jeg brukte er basert på ULN2803 -brikken, som er ganske vanlig og billig. Vær oppmerksom på: Magnetene er (vanligvis) ikke designet for å kjøres konstant! De kan smelte hvis du gjør det! Se programvaredelen for mer info. Arduino -side: Dette var bare et spørsmål om å finne 8 IO -pinner fra arduinoen for å drive Darlington -inngangene. Fordi jeg ønsket å sende og motta serielle data, kunne jeg ikke bruke pinne 0 & 1, så jeg endte opp med å bruke sifrene 2, 3, 4 og 5 på den ene siden, og brukte fire av de analoge inngangspinnene på den andre siden som digitale utganger. Jeg la også til et potensiometer koblet til analog inngang #5, som brukes til å kontrollere tempoet. To lysdioder brukes til visuell tilbakemelding fra driveren. Pins 8-13 var ikke til nytte på grunn av den funky arduino-pinneavstanden (grr …) Merknader om strøm: Selv om jeg opprinnelig koblet dette til å bruke en ekstern strømforsyning for å drive solenoider, Oppdaget jeg (ved et uhell) at USB-strømmen var tilstrekkelig. Jeg hadde vært bekymret for at den plutselige strømpulsen ville få spenningen til å falle, og at mikrokontrolleren ble "brun", men det ser ikke ut til å skje. Kjørelengden din kan variere. Siden det er mye mer praktisk for meg å bare bruke USB -strømmen, vil jeg fortsette å gjøre det til jeg har et problem.

Trinn 4: Programvaredesign

Programvare design
Programvare design
Programvare design
Programvare design

Designstrategi Målet for dette var å få klokketårnet kjørt fra PC -en. Arduinos USBSerial link var den ideelle måten å gjøre dette på. Arduino mottar serielle data fra PC -en som tilsvarer hvilke notater som skal spilles. Protokollen er grei; notatene er alle i sine ASCII -tekstekvivalenter. Det er også et tall som en variabel forsinkelse. PC -en sender: "cde2fgABC" og Arduino spiller klokkene 1, 2, 3, hviler i en halv tone og spiller deretter klokker 4, 5, 6, 7 og 8. Tips på hatten til John Plocher for hans ServoBells -prosjekt, som delvis inspirerte dette prosjektet. Arduino Side Code: Arduino -koden mottar serielle data, dekoder hvilken notat eller forsinkelse som skal spilles, og bytter deretter solenoider på passende måte. Sørg for at koden din er designet slik at solenoider ikke holdes på !. Hvis du forlater en solenoid ved en feiltakelse, vil den smelte. Jeg løste dette ved å få notatrutinene til å blokkere til solenoiden er slått av, i stedet for konstant polling, etc. PC Sidekode: Klientprogrammet ble skrevet i C#. Den har knapper for hver enkelt tone, samt knapper for forhåndsprogrammerte melodier. Notatdataene sendes til seriell port. Kildekoden for alt er vedlagt. Rom for forbedring:

Polyfoniske notater

Jeg slapp muligheten for at to toner skulle spilles samtidig, da jeg ikke trodde noen låter som kunne passe inn i 1 oktav ville kreve dem. I tillegg skyter du mer enn én magnetventil

Dreper køen

PC -en sender store setninger med notater ned til arduinoen, som deretter behandler dem til køen tømmes. Men for store låter kan dette være slitsomt, og det kan være ønskelig å kunne avbryte en melodi som går. Dette kan oppnås ved å ha en annen bokstav i seriesetningen (f.eks. 'X') som kode for å skylle bufferen.

Trinn 5: Betjening av bjellene

Betjening av klokkene
Betjening av klokkene
Betjening av klokkene
Betjening av klokkene

Å bruke klokkene er ganske enkelt. Koble til USB -kabelen og åpne PC -programvaren. Du kan klikke på de enkelte ringeknappene for å spille en melodi. Alternativt er det knapper for å spille skalaer, forhåndsprogrammerte melodier og også en tekstboks for tekstformat i fri form. Jeg har inkludert en video av klokkene som spilles. Foreløpig er bare enkle låter programmert i. Video er her: https://blip.tv/file/1521415 (Hvis noen vet hvordan man spiller Futurama -temaet i en C til og med C -oktav, vennligst gi meg beskjed …)

Anbefalt: