Bygga en modell för satellitbaserade Laser kommunikation (4 / 6 steg)
Steg 4: Programmera Arduino
Fotoceller
Som tidigare var både fotoceller och servon anslutna till samma Arduino. Arduinoen programmerades sedan att läsa indata från fotoceller. Arduinoen utgångar heltalsvärden mellan 0 och 1023 för olika ljusstyrka. Koden har en variabel för tröskeln. Detta bör fastställas genom mätning av fotocell utdata för bakgrunden ljus och med laser pekar på den. Vi slutade använda värden mellan 200 och 900, beroende på hur snabb laser flyttade och hur mycket ljus som fanns i rummet var vi med.
Servon
Servon kan flyttas genom att skriva ett värde mellan 0 och 180, som är lika med hela sitt utbud av 180 grader. Beroende på vilken fotoceller passerat tröskeln, kommer att servon justera lasern positionering för att förbli spetsiga till målet.
Se till att kolla i vilken riktning servon snurra. I vårt fall var vågrät servo på position 0 i längst till vänster och på 180 i längst till höger. Vertikala servo var på position 0 överst och vid 180 längst ned. Om detta är olika, bör koden vara anpassad för servon fortfarande flytta lasern som förväntat.
Två huvudsakliga mekanismer genomfördes:
1 / små justeringar
För det första, fotoceller som omger det faktiska målet orsaka servon till flytta lasern i riktning mot målet, e.g. om rätt fotocellen drabbas av laser, det kommer att flytta till vänster.
2 / Sök mönster
Den andra mekanismen är olika sökkriterier. Om ingen fotocell upptäcker laser och det finns också några uppgifter om tidigare kontakter med fotoceller lagras, att lasern börja köra sökkriterier. Den första sökmönstret som implementerades skannade helt enkelt ett torg där målet var förväntas vara av svepande upp och ner, sakta rörelse i sidled medan du gör.
Andra sökmönstret är mer sofistikerad: det börjar scanning i centrum av kvadratiska området, sedan spiraler utåt tills det har täckt hela området. Den största fördelen med detta är att sökningen börjar på plats med den högsta sannolikheten att hitta målet. En annan skillnad till den första sökalgoritm är att här sökmönstret justerar området den skannar varje gång laser ansluter till målet: dessa koordinater är då uppsättning som nya centrum av sökfältet ska signalen gå förlorade. Båda sökmönster starta om om målet inte förvärvas efter området har täckts.
Nedan finns illustrationer av både sökmönster och två filer med Arduino kod som körs i systemet med varje Sök mönster.