Stap 6: Software
Ik zal niet ingaan op details over hoe te programmeren eigenlijk een microcontroller, er zijn betere pagina's om te leren hoe dat te doen. ZieHet volledige programma past in 552 bytes, dat maakt alleen 276 instructies op Assembler niveau. Dat wil zeggen vrijwel niets, aangezien er nog enkele opstarten en configuratie code binnen het. En het verbruikt slechts 54,5% van het flash-geheugen, zodat u nog meer functies aan die toevoegen kunt.
Ik wed dat de kern-algoritme kan ook met minder dan 100 bytes.
Iemand?
De stappen die het programma uitvoert zijn:
1. blink 5 times (say hello)2. compute the average brightness and store it3. power = power + 14. if brightness >= daylight (is it daylight?) * sleep some seconds5. if brightness > average brightness (that was a flash) * power = power + 1006. if power > MAX * flash * power = 0 7. goto 3
Eigenlijk is dit een beetje eenvoudiger, maar je krijgt het idee.
Upload het programma en start van de vuurvliegjes. Als alles ok is, moeten zij zitten kundig voor synchroniseren in over een minuut of twee.
Ik had wat problemen bij het verkrijgen van de vuurvliegjes gesynchroniseerd. Als ze worden uitgevoerd op hun interne oscillator, hebben ze allemaal verschillende snelheden. Ik dacht dat het zou helpen om te recallibrate hen door het veranderen van de lus van de vertraging van elke chip. Mijn vriendin gevraagd, vertelde wat ik aan het doen was en ik haar. Ze dacht: dat thats als vreemdgaan. Glimwormen zijn niet callibrated. Wat moet ik zeggen? Ze had gelijk. Dus ik besloot niet te doen en zocht een andere oplossing. Houd er rekening mee te gaan voor de gemakkelijkste oplossing die zou kunnen werken.