Naast het artikel over de xylofoon heb ik nog een project dat ik graag wil delen met de lezers van PC-Active: een zelfontworpen knikkerklok die wordt aangestuurd door een Arduino Nano.

Frans Coolen


1. De knikkerklok met tijdkolommen en pendellift 20191029 161
In PC-Active 308 las ik over de mogelijkheid om een project in te zenden. Ik heb zelf een knikkerklok ontworpen die wordt aangestuurd door een Arduino Nano. In de knikkerklok wordt de actuele tijd aangegeven met behulp van twee verticale kolommen volgens het 12-uursysteem en beide kolommen bevatten maximaal elf knikkers. De linkerkolom geeft het aantal uren aan, de minuten worden aangegeven in stappen van vijf door het aantal knikkers in de rechterkolom.
De knikkers worden cyclisch door de klok getransporteerd. Per kolom worden de knikkers op een rail tijdelijk verzameld en, op het gewenste moment, met een 'pendellift' naar boven gebracht en gedeponeerd in de gewenste kolom. De werkende klok is te zien op YouTube (zet ook het geluid aan): https://www.youtube.com/watch?v=lGoXsJworeY

 

 

 

achterkant
Beschrijving knikkerklok
Het aantal knikkers in de linkerkolom (urenkolom) is gelijk aan het uur van de actuele tijd. De aansturing vindt plaats met vier servomotoren en een Arduino Nano-microprocessor die zich aan de achterkant van de klok bevindt. Er is een versie met manueel voorladen, waarna de klok kan gaan lopen (Knikkerklok_manueel_voorladen.ino) en een versie die met een smartphone gestart kan worden, waarbij de klok geset wordt met de actuele tijd (Knikkerklok_smart_voorladen.ino). Voor deze versie is een bluetooth-module nodig.

 

 

Op de achterkant van de knikkerklok is de processor met bluetooth-module te zien


Uitgangspunten bij het ontwerp
Voor het ontwerp ging ik uit van de volgende uitgangspunten:

  • bouw met zo weinig mogelijk servomotoren, het zijn er 4 geworden.
  • de klok moet in principe aan de muur kunnen hangen.
  • de knikkers moeten op een originele manier rouleren.
  • alles moet gebouwd worden op een plankje van 8 x 30 cm.
  • voor onderhoud/reparatie is het nodig dat de klok deels demontabel is.
  • uit praktische overwegingen is het een klok volgens het 12-uursysteem.

Bouwproces
Sleutelwoorden bij het proces zijn vrije associatie, vallen en opstaan en voortschrijdend inzicht, want er was geen uitgewerkt plan vooraf. Uitgaande van globale ideeën is begonnen met het successievelijk bouwen van de units, met de knikkerkolommenunit als eerste. Als een unit klaar was, werd pas goed nagedacht over de constructie van de volgende unit. Dit leidde regelmatig tot aanpassingen aan een al gerealiseerde unit. De bouw van de hele klok heeft ongeveer 9 maanden doorlooptijd in beslag genomen: van februari 2018 t/m oktober 2018).

b 20180703 112634xxDe units zijn in de volgende volgorde gebouwd: knikkerkolommenunit, cascadelift, koppeling cascadelift en knikkerkolommenunit, knikkerrails voor buffering en toevoer.

De belangrijkste mechanische gereedschappen waren een dremel, miniatuurzaagmachine en een elektrische figuurzaag. De materialen zijn deels gekocht in de bouwmarkt, maar ook is er afvalmateriaal gebruikt en er is veel gewerkt met zowel dunne tapijttape als dikke dubbelzijdige tape.

Het grootste probleem was de juiste methode te vinden om de knikkerkolommen gecontroleerd leeg te laten lopen om vervolgens de knikkers een voor een naar de cascadelift te laten rollen. Ik heb meerdere mislukte prototypes voor dit onderdeel gebouwd.

 

Knikkerklok
In de meest geavanceerde versie beslaat het programma 100 regels code. De klok wordt dan gestart met een smartphone die via bluetooth de exacte tijd doorgeeft aan de Arduino Nano. Het programma op de smartphone is gebouwd met MIT App Inventor (een gratis educatieve programmeeromgeving).

Nano processor met bluetooth module 20190930 143145xx
De opzet van het programma op de Nano is betrekkelijk recht-toe-recht-aan. Nadat via de smartphone de tijd is doorgegeven, worden alle knikkers conform de actuele tijd in de kolommen gestapeld. Daarna worden in de juiste tijdvolgorde de knikkers door de klok getransporteerd. Hiertoe stuurt het programma vier servo's aan in een seriële volgorde. 

  1. Aan het einde van de rails die de knikkers tijdelijk opvangen, zit een servo met een vaan. Het programma stuurt de vaan iedere vijf minuten en ieder uur heel even (300 ms) heen en weer om net één knikker door te laten. 
  2. Die knikker rolt naar de onderste opening van de pendellift. Die bestaat uit twee achterover hellende hoekige plankjes die beide via draadjes, die verbonden zijn aan twee armen op de as van een servo, langs elkaar omhoog en omlaag bewogen worden (pendelen). Er worden door het programma in totaal zeven pendelbewegingen uitgevoerd, dan is de knikker boven en rolt in de richting van de kolommen.
  3. Bovenaan de kolommen zit een servo met op de as een geleide-arm die selecteert of de knikker in een minuten- of in een urenkolom moet rollen. Het programma stuurt de juiste positie van de geleide-arm aan.
  4. Onderaan de kolommen zit de vierde servo. Deze heeft een vaan die zo gevormd is dat normaal de knikkers niet uit de kolom kunnen rollen. Zodra een van de kolommen of beide kolommen 'vol' zijn (11 knikkers per kolom), stuurt het programma de servo zodanig aan dat de kolommen leeglopen in de rail voor tijdelijke opvang van de knikkers (als in beide kolommen 11 knikkers zitten, is het 11:55 uur).
          


Ino-bestand downloaden

Bij dit project van Frans Coolen hoort natuurlijk een ino-bestand dat je online hier kunt vinden.