En trä gear klocka med en unik drivmekanismen (3 / 34 steg)
Steg 3: programvara
Programvaran har utvecklats med en billig MSP 430 LaunchPad Utvecklingskit från Texas Instruments. Startfönstret ansluter till en Windows-värddator via USB. Några komponenter som transistor förarna var lägga till via en skärbräda under krets och mjukvaruutveckling.
Det finns andra Instructables visar hur du använder startfönstret i MSP 430 med TI: s medföljande kod kompositör Studio utveckla koden, så jag inte kommer att dubbla som här. Jag använder det grafiska gränssnittet nåd för att inrätta mikrokontroller. Den bifogade filen main.cfg innehåller Grace installationsprogrammet main.c är C källkoden. Kodexemplen finns också i pdf-form om du bara vill titta på koden utan att installera koden kompositör Studio.
Programvaran är avbrott driven. När mikrokontroller har ställts in, sätts den in i "viloläge". Det vaknat när en av avbrottet villkor.
En timer som drivs av klockan kristall svämmar över och genererar ett avbrott varannan sekund. Detta används som grundläggande tidtagningen för klockan.
Motsvarigheten genererar ett avbrott när positiv spänning pulsen från spolen genereras. Rutinen avbryta timern i staten maskin mode
- försenar en mängd tid för magnet till flytta något förbi spolen för optimal push
- tänds spolen
- varv spolen off och låt det offline så att en andra falska utlösare inte upptäcks.
För varje land, en avbryta genereras, agerande och mikrokontroller sätta tillbaka att sova för att invänta nästa steg.
Programmet mäter varje swing på pendeln och jämför faktiska swing tid att den önskade 1 sekund, generera ett felnummer. En modifierad PID (proportionell - integrerad - differential) kontroll algoritm använder fel signal för att justera pulslängd till spolen. Detta ändrar swing vinkeln på pendeln för att påskynda eller fördröja pendeln och därför klockan. Den faktiska C-koden är
puls = NominalPulse - (Kp * fel + Ki * i_error);
Där Kp och Ki är empiriskt härledda konstanter och fel och i_error är proportionella och integrerad felet respektive (ingen differential term behövs eller används).
En datalogger nationella instrument användes för att härleda de konstanta värdena och ställa in systemet. En programvara rutin inrätta en bredd för synkpuls moduleras (PWM) utdataport ansluten till en enkel lågpassfilter och datalogger. Rutinen genereras en spänning proportionell mot puls bredd och spolen eller fel signalen av PID algoritmen. Visas är en logg över de fel signal att stänga och låsa på på noll.
Mjukvaran lyser en bicolor LED röd eller grön att indikera om pendeln rör för fort eller för långsamt. Detta gör att bob justeras upp eller ner på bara några minuter att ställa in pendeln. När det ligger tillräckligt nära, reglerar mikrokontroller pendeln för att hålla exakt tid.
Kretskort designades och byggdes efter maskin- och programvara var färdiga.