Indholdsfortegnelse:

Arduino kontrolleret klokketårn/klokkespil: 5 trin (med billeder)
Arduino kontrolleret klokketårn/klokkespil: 5 trin (med billeder)

Video: Arduino kontrolleret klokketårn/klokkespil: 5 trin (med billeder)

Video: Arduino kontrolleret klokketårn/klokkespil: 5 trin (med billeder)
Video: Arduino in 100 Seconds 2024, Juli
Anonim
Arduino kontrolleret klokketårn/klokkespil
Arduino kontrolleret klokketårn/klokkespil
Arduino kontrolleret klokketårn/klokkespil
Arduino kontrolleret klokketårn/klokkespil

Dette er et sæt musikalske klokker, der drives af solenoider og styres af en Arduino mikrokontroller. Der er 8 klokker, der dækker en oktav. Klokkerne kan styres fra en pc, eller tårnet kan stå alene og afspille forprogrammerede melodier. Se den sidste side for video af det i aktion.

Trin 1: Dele

Dele
Dele

Følgende dele blev brugt: 1 sæt kromatiske håndklokker. Jeg fik disse fra min lokale Aldi for $ 20. De spænder over intervallet fra C til C. $ 10,8 Solenoider til at slå klokkerne. Jeg havde disse liggende i min uønskede boks. Jeg fik dem fra en skrivemaskine reparatør, der smed dem væk. Du kan sikkert finde lignende på Ebay. Arudino mikrokontroller. ~ $ 45. Jeg fik min fra SparkFun electronics. Proto/Perf board og diverse komponenter for at lave mit brugerdefinerede 'skjold' til arduinoen. $ 10. Darlington driver board. Jeg brugte en, jeg havde liggende, men jeg tror, at de ikke sælges separat. Bør være muligt at gøre det ved hjælp af ULN2803 -chippen for et par dollars.

Trin 2: Træarbejde

Træarbejde
Træarbejde

Overraskende nok tog dette trin det længste. Kodningen og ledningerne tog mindre tid end limen tørrede. Rammen til dette var ret enkel. Bare et stykke krydsfiner til at holde alle klokkerne, plus nogle fyrretræsbeslag til solenoiderne. Alt blev limet sammen med PVA -lim. For at gøre magnetventilerne mere gentagelige lavede jeg en stencil i MS Visio og limede det derefter til træet. Dette hjalp meget med at have alle solenoiderne i en konstant afstand fra klokken. Hvis du gør dette, kan jeg ikke understrege nok til at måle omhyggeligt for angriberens placeringer. Klokkerne lyder ganske forskellige afhængigt af hvor du rammer dem og magnetens 'kast'.

Trin 3: Elektronik og ledninger

Elektronik og ledninger
Elektronik og ledninger

Førerside: Jeg var så heldig at have en darlington -driver liggende, hvilket forenklede designet meget. Darlington er en effekttransistor, som du kan bruge til at drive tungere belastninger, end de små mikrokontrollerpinde normalt ville understøtte. Brættet, jeg brugte, er baseret på ULN2803 -chippen, hvilket er ret almindeligt og billigt. Bemærk: Solenoider er (normalt) ikke designet til at køre konstant! De kan smelte, hvis du gør det! Se softwaredelen for mere info. Arduino -side: Dette var bare et spørgsmål om at finde 8 IO -pins fra arduinoen til at drive Darlington -input. Fordi jeg ønskede at sende og modtage serielle data, kunne jeg ikke bruge ben 0 & 1, så jeg endte med at bruge cifrene 2, 3, 4 & 5 på den ene side og brugte fire af de analoge indgangsstifter på den anden side som digitale udgange. Jeg tilføjede også et potentiometer tilsluttet analog input #5, som bruges til at styre tempoet. To lysdioder bruges til visuel feedback af driveren. Pin 8-13 var ikke til nogen nytte på grund af den funky arduino pin-afstand (grr …) Bemærkninger om strøm: Selvom jeg oprindeligt tilsluttede dette til at bruge en ekstern strømforsyning til at drive solenoiderne, Opdagede jeg (ved et uheld), at USB-strømmen var tilstrækkelig. Jeg havde været bekymret for, at den pludselige strømpuls ville få spændingen til at falde, og at mikrokontrolleren blev 'brun-ud', men det ser ikke ud til at forekomme. Dit kilometertal kan variere. Da det er meget mere praktisk for mig at bare bruge USB -strømmen, vil jeg blive ved med at gøre det, indtil jeg har et problem.

Trin 4: Software Design

Software Design
Software Design
Software Design
Software Design

Designstrategi Målet med dette var at få klokketårnet drevet fra pc'en. Arduinos USBSerial link var den ideelle måde at gøre dette på. Arduino modtager serielle data fra pc'en, som svarer til hvilke noter der skal afspilles. Protokollen er ligetil; noterne er alle i deres ASCII -tekstækvivalenter. Der er også et numerisk tal som en variabel forsinkelse. PC'en sender: "cde2fgABC", og Arduino spiller klokker 1, 2, 3, hviler en halv tone og spiller derefter klokker 4, 5, 6, 7 og 8. Tip af hatten til John Plocher for hans ServoBells -projekt, som delvist inspirerede dette projekt. Arduino Side Code: Arduino -koden modtager serielle data, afkoder hvilken note eller forsinkelse, der skal afspilles, og skifter derefter på passende vis solenoiderne. Sørg for, at din kode er designet, så solenoider ikke holdes på !. Hvis du forlader en solenoid ved en fejl, smelter den. Jeg løste dette ved at få mine noterutiner til at blokere, indtil solenoiden er slukket, frem for konstant at polle osv. PC Sidekode: Klientprogrammet blev skrevet i C#. Den har knapper til hver enkelt note, samt knapper til forprogrammerede melodier. Notedataene sendes til den serielle port. Kildekoden for alt er vedhæftet. Rum til forbedring:

Polyfoniske noter

Jeg afbrød muligheden for, at to toner kunne spilles samtidigt, da jeg ikke troede, at melodier, der kunne passe ind i 1 oktav, ville kræve dem. Derudover affyres mere end én magnetventil

Dræber køen

PC'en sender store sætninger med noter ned til arduinoen, som derefter behandler dem, indtil køen tømmes. Men for store melodier kan dette være trættende, og det kan være ønskeligt at kunne afbryde en løbende melodi. Dette kunne opnås ved at have et andet bogstav i den serielle sætning (f.eks. 'X') som en kode til at skylle bufferen.

Trin 5: Betjening af klokkerne

Betjening af klokkerne
Betjening af klokkerne
Betjening af klokkerne
Betjening af klokkerne

Betjening af klokkerne er ret enkel. Tilslut USB -kablet, og åbn pc -softwaren. Du kan klikke på de enkelte ringeknapper for at afspille en melodi. Eventuelt er der knapper til afspilning af skalaer, forprogrammerede melodier og også en tekstboks til frit indtastning af tekst. Jeg har inkluderet en video af klokkerne, der spiller. Indtil videre er kun enkle melodier programmeret i. Video er her: https://blip.tv/file/1521415 (Hvis nogen ved, hvordan man spiller Futurama -temaet i en C til og med C -oktav, så lad mig det vide ….)

Anbefalede: