Indholdsfortegnelse:
- Trin 1: Dele
- Trin 2: Træarbejde
- Trin 3: Elektronik og ledninger
- Trin 4: Software Design
- Trin 5: Betjening af klokkerne
Video: Arduino kontrolleret klokketårn/klokkespil: 5 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:31
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
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
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
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
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 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:
WiFi -kontrolleret enhjørningshætte? Med RGB -lys: 5 trin (med billeder)
WiFi -kontrolleret enhjørningshætte? Med RGB -lys: Hej alle sammen. Min lille nudede mig i et stykke tid om interessante bærbare gør -det -selv -relaterede til enhjørninger. Så jeg har kløet mig i hovedet og besluttet at skabe noget usædvanligt og med et meget lavt budget. Dette projekt kræver ikke, at appen fortsætter
Arduino kontrolleret telefon dock med lamper: 14 trin (med billeder)
Arduino kontrolleret telefon dock med lamper: Ideen var enkel nok; opret en telefonopladningsdock, der kun ville tænde en lampe, når telefonen oplades. Men som det ofte er tilfældet, kan ting, der i starten virker simple, ende med at blive lidt mere komplekse i deres udførelse. Dette er t
Nunchuk kontrolleret robotarm (med Arduino): 14 trin (med billeder)
Nunchuk kontrolleret robotarm (med Arduino): Robotarme er fantastiske! Fabrikker over hele verden har dem, hvor de maler, lodder og bærer ting med præcision. De kan også findes i rumforskning, undervandsfjernbetjente køretøjer og endda i medicinske applikationer! Og nu kan du
Robothånd med trådløs handske kontrolleret - NRF24L01+ - Arduino: 7 trin (med billeder)
Robothånd med trådløs handske kontrolleret | NRF24L01+ | Arduino: I denne video; 3D robot håndsamling, servostyring, flex sensor kontrol, trådløs kontrol med nRF24L01, Arduino modtager og sender kildekode er tilgængelige. Kort sagt, i dette projekt vil vi lære at styre en robothånd med en wireles
Arduino-kontrolleret platformspil med joystick og IR-modtager: 3 trin (med billeder)
Arduino-kontrolleret platformspil med joystick og IR-modtager: I dag vil vi bruge en Arduino-mikrokontroller til at styre et simpelt C#-baseret platformspil. Jeg bruger Arduino til at tage input fra et joystick -modul og sende dette input til C# -programmet, der lytter og afkoder input over et serielt c