Inhoudsopgave:

Arduino gecontroleerde klokkentoren / beiaard - Ajarnpa
Arduino gecontroleerde klokkentoren / beiaard - Ajarnpa

Video: Arduino gecontroleerde klokkentoren / beiaard - Ajarnpa

Video: Arduino gecontroleerde klokkentoren / beiaard - Ajarnpa
Video: Podcast 'Terug naar de natuur' met Matthijs Schouten 2024, November
Anonim
Arduino gecontroleerde klokkentoren/beiaard
Arduino gecontroleerde klokkentoren/beiaard
Arduino gecontroleerde klokkentoren/beiaard
Arduino gecontroleerde klokkentoren/beiaard

Dit is een set muzikale bellen die worden aangedreven door elektromagneten en worden bestuurd door een Arduino-microcontroller. Er zijn 8 bellen die een octaaf beslaan. De klokken zijn te bedienen vanaf een pc, of de toren kan op zichzelf staan en voorgeprogrammeerde melodieën spelen. Bekijk de laatste pagina voor een video van het in actie.

Stap 1: Onderdelen

Onderdelen
Onderdelen

De volgende onderdelen zijn gebruikt:1 set chromatische handbellen. Ik heb deze van mijn lokale Aldi voor $ 20. Ze overspannen het bereik van C tot C. (d.w.z. c, d, e, f, g, A, B, C). Houten paneel en beugels om de bellen en elektromagneten op hun plaats te houden. $ 10,8 Solenoïdes om de klokken te slaan. Ik had deze nog in mijn rommeldoos liggen. Ik kreeg ze van een typemachinereparateur die ze weggooide. Je kunt waarschijnlijk iets soortgelijks vinden op de Ebay. Arudino-microcontroller. ~ $ 45. Ik heb de mijne van SparkFun electronics. Proto/Perf board & misc-componenten om mijn aangepaste 'schild' voor de arduino te maken. $ 10. Darlington-bestuurdersbord. Ik gebruikte er een die ik had liggen, maar ik geloof dat ze niet apart worden verkocht. Zou mogelijk moeten zijn om het te maken met de ULN2803-chip voor een paar dollar.

Stap 2: Houtbewerking

houtbewerking
houtbewerking

Verrassend genoeg duurde deze stap het langst. Het coderen en bedraden kostte minder tijd dan de lijm om te drogen. Het frame hiervoor was vrij eenvoudig. Gewoon een stuk triplex om alle bellen vast te houden, plus wat grenen beugels voor de solenoïdes. Alles werd aan elkaar gelijmd met PVA-lijm. Om de magneetbeugels herhaalbaar te maken, heb ik een sjabloon gemaakt in MS Visio en dit vervolgens op het hout gelijmd. Dit heeft veel geholpen om alle spoelen op een constante afstand van de bel te hebben. Als je dit doet kan ik niet genoeg benadrukken om zorgvuldig te meten voor de spitslocaties. De bellen klinken heel anders, afhankelijk van waar je ze raakt en de 'worp' van de solenoïde.

Stap 3: Elektronica en bedrading

Elektronica en bedrading
Elektronica en bedrading

Bestuurderskant: ik had het geluk dat er een darlington-driver rondslingerde, wat het ontwerp aanzienlijk vereenvoudigde. De darlington is een vermogenstransistor die je kunt gebruiken om zwaardere belastingen aan te sturen dan de kleine microcontroller-pinnen normaal zouden ondersteunen. Het bord dat ik heb gebruikt is gebaseerd op de ULN2803-chip, die vrij algemeen en goedkoop is. Let op: Solenoids zijn (meestal) niet ontworpen om constant te worden aangedreven! Ze kunnen smelten als je dat doet! Zie de softwaresectie voor meer info. Arduino-kant: dit was gewoon een kwestie van 8 IO-pinnen van de arduino vinden om de Darlington-ingangen aan te sturen. Omdat ik seriële gegevens wilde verzenden en ontvangen, kon ik pinnen 0 & 1 niet gebruiken, dus uiteindelijk gebruikte ik digitals 2, 3, 4 & 5 aan de ene kant en gebruikte ik vier van de analoge ingangspinnen aan de andere kant als digitale uitgangen. Ik heb ook een potentiometer toegevoegd die is aangesloten op analoge ingang #5, die wordt gebruikt om het tempo te regelen. Twee LED's worden gebruikt voor visuele feedback van de driver. Pins 8-13 waren nutteloos vanwege de funky arduino-pinafstand (grr…) Opmerkingen over voeding: hoewel ik dit oorspronkelijk bedraad had om een externe voeding te gebruiken om de solenoïden aan te drijven, ontdekte ik (per ongeluk) dat de USB-stroom voldoende was. Ik was bang dat de plotselinge stroompuls de spanning zou doen dalen en de microcontroller zou 'bruinen', maar dit lijkt niet te gebeuren. Uw kilometerstand kan variëren. Omdat het voor mij veel handiger is om gewoon de USB-stroom te gebruiken, zal ik dat blijven doen tot ik een probleem heb.

Stap 4: Software-ontwerp

Software-ontwerp
Software-ontwerp
Software-ontwerp
Software-ontwerp

Ontwerpstrategie Het doel hiervan was om de klokkentoren vanaf de pc te laten rijden. Arduino's USBSerial-link was de ideale manier om dit te doen. De Arduino ontvangt seriële gegevens van de pc die overeenkomen met welke noten moeten worden gespeeld. Het protocol is eenvoudig; de noten zijn allemaal in hun ASCII-tekstequivalenten. Er is ook een numeriek nummer als variabele vertraging. De pc stuurt: "cde2fgABC" en de Arduino speelt klokken 1, 2, 3, rust voor een halve noot en speelt dan klokken 4, 5, 6, 7 & 8. Tip van de hoed naar John Plocher voor zijn ServoBells-project, dat deels inspireerde dit project. Arduino Side Code:De Arduino-code ontvangt de seriële gegevens, decodeert welke noot of vertraging moet worden gespeeld en schakelt vervolgens de elektromagneten op de juiste manier. Daarover gesproken. Zorg ervoor dat uw code zo is ontworpen dat elektromagneten niet aan blijven!. Als u per ongeluk een solenoïde aan laat, zal deze smelten. Ik heb dit opgelost door mijn notitieroutines te laten blokkeren totdat de solenoïde is uitgeschakeld, in plaats van constant te pollen, enz. PC Side Code: Het clientprogramma is geschreven in C#. Het heeft knoppen voor elke afzonderlijke noot, evenals knoppen voor voorgeprogrammeerde melodieën. De notitiegegevens worden naar de seriële poort gestuurd. De broncode voor alles is bijgevoegd. Ruimte voor verbetering:

Polyfone noten

Ik liet de mogelijkheid weg om twee noten tegelijk te spelen, omdat ik niet dacht dat melodieën die in 1 octaaf zouden passen, ze nodig zouden hebben. Bovendien afvuren van meer dan één solenoïde kan

De wachtrij doden

De pc stuurt grote zinnen met notities naar de arduino, die ze vervolgens verwerkt totdat de wachtrij leeg is. Voor grote deuntjes kan dit echter vermoeiend zijn en kan het wenselijk zijn om een lopend deuntje te kunnen onderbreken. Dit kan worden bereikt door een andere letter in de seriële zin (bijvoorbeeld 'x') als code te gebruiken om de buffer te spoelen.

Stap 5: Bediening van de bellen

De klokken bedienen
De klokken bedienen
De klokken bedienen
De klokken bedienen

Het bedienen van de klokken is vrij eenvoudig. Sluit de USB-kabel aan en open de pc-software. U kunt op de afzonderlijke belknoppen klikken om een deuntje af te spelen. Optioneel zijn er knoppen om toonladders af te spelen, voorgeprogrammeerde deuntjes en ook een tekstvak voor vrije tekstinvoer. Ik heb een video bijgevoegd van de bellen die spelen. Tot nu toe zijn er alleen eenvoudige deuntjes geprogrammeerd.video is hier:https://blip.tv/file/1521415(Als iemand weet hoe het Futurama-thema in een C tot en met C-octaaf moet worden gespeeld, laat het me dan weten…)

Aanbevolen: