Lavet af Jakob Schledermann Winkel og Marcus Møller Pedersen

Design

Figur 1: Billed af robotten og hvordan delene er sammensat. For at se billedet i højre opløsning, så kan det ses på linket:  https://drive.google.com/file/d/1L3P3XDYgBD3Vf–SJ7THQZuNqMKG-lnJ/view?usp=sharing 

systemet er opbygget af en arduino der kontrollere elektronikken. Herfra styre arduinoen en servo motor der kan dreje 180 grader. Servomotoren er placeret på en 3D printet flade der holder motoren fast således den ikke drejer om sig selv. oven på motoren er placeret en arm der har til formål at holde fladen hvor LDR modstanderne er placeret. LDR modstanderne er afskærmet fra hinanden således at der kan skelnes mellem lysindfaldet på den individuelle LDR. Der bliver brugt en breadboard til at sammensætte elektronikken og ledningerne således at der opbygges et kredsløb. Yderliger er der placecret to led’er til at vise hvilken vej robotten drejer mod. til sidst er der placeret modstande på bred boardet, således at komponenterne ikke får mere spænding end de skal have.

Ideén bag designet er at robotten skal dreje rundt omkring z-aksen for at følge med solen, derfor bliver der anvendt en servo motor. Gearinger er håndteret med den servo motor der var i starter sætte, og der er ikke yderliger æmdringer. Motoren er blevet placeret i bunden af designet og er indkapslet i vores base. Dette er gjort for at give robotten højere stabilitet, siden servo motoren er det tungeste punkt i vores robot. Vi har anvendt to photoresistorere for at opfange hvor lyset kommer fra. For at differentiere hvorfra lyset kommer fra har vi sat en plade mellem de to resistorere. På figur 1, er der tegnet hvor sensorerne er placeret. Sensorerne er placeret på en flade, hvor der er en afskærmning mellem dem sålede at det er muligt at differentiere mellem lysindfaldet fra fra de to sider. yderliger er fladen med sensortene placeret på en hævet arm sådan at den nemmere kan opfange lys uden forstyrrelse fra det resterende hardware. 

Problemer Under Design

Vi har ikke skulle ændre på det færdige design, men der blev diskuteret hvor og hvordan vi ville anvende vores to LDR sensorere. I starten var det ikke helt klart hvor mange LDR sensorer vi ville anvende, så der er flere designs som har op til fire LDR sensorer, hvorfra vi kom til den konklusion at der behøvede ikke at være mere end to sensorer, da det endelige design har til formål at dreje om en akse. 

Sammensætning af Hardware

Figur 2. Diagram over hvordan hardwaren er sammensat. Højere opløsning kan findes på linkethttps://drive.google.com/file/d/1TjoodBUS59i2rFjr3hbTGmPSq2l71O0u/view  

Designet er blevet opbygget i tinkercad, hvorfra en fungerende prototype blev lavet. Dette medførte at der var mindre problemer i at tilpasse til de rigtige lysniveauer for rigtige omgivelser. Dette er blandt andet grunden til at vi introduceret en tolerance variabel i systemet, sådan at systemet kunne tilpasses til virkelige omgivelser, hvorfra robotten følger solen. Yderliger er resistorende  der er forbundet til LDR sensorerne bliver udskiftet et par gange for at se hvilke der kunne give den bedste præstation. Ud over dette har hardwaren virket upåklageligt uden problemer. 

Robotten følger en række tilstande der bliver bestemt af de  pågældende lysindfald. Altså læser robotten lysindfaldet på de to LDR sensorer, herefter bestemmes det hvilken af de to sensorer der har det største lysindfald, hvorfra fra robotten vil dreje sig mod retningen der har større lysindfald. dette vil fortsætte indtil de to sensorer bliver udlignet i lysindfald med en bestemt tolerance. Hvis lysindfaldet falder under en bestemt værdi så ville robotten dreje sensor fladen mod minimumspunktet for servoen. Dette ville efterligne virkeligheden når solen går ned efter en lang dag, så kan robotten nulstille sig selv for at følge solen den næste dag. 

Figur 3. Flow diagram der viser robottens opførsel.

Kodning af Robotten

Figur 4: Første kodeblok. Variabel deklarationer. 
Figur 5: Anden kode blok, viser loopet som der køres igennem.

Vores variabler:

  • leftLDR and rightLDR repræsenterer venstre og højre photoresistor. Værdierne er mellem 0 og 1023, det kommer an på hvor meget lys der rammer dem. Hvis den ene har en højere værdi end den anden, så drejer robotten sig i den retning.
  • servolimitLow og servoLimitHigh repræsenterer maks og minimum vinklerne servo motoren kan dreje. dvs at minimum viklen er sat til 5 grader og maks vinklen er 175 grader.
  • Vi har inkluderet et tolerance variabel hvis mål er at være en buffer eller tolerance i forhold til forskellen mellem leftLDR og rightLDR værdierne. Grunden til at det er vigtigt er så robotten ikke hele tiden drejer sig ved den mindste forskel.
  • Når robotten ikke bevæger sig, så er state sat til 1, og hvis den ikke bevæger sig bliver den sat til 0. Mens state er 1 så bliver dataen logget.
  • start og count variablerne er begge brugt til at holde styr på tid så vi kan logge tid med dataen.

Der har ikke været de store problemer med at få koden til at virke, andet en lidt tilpasninger i form af hvordan man deklarere hardware og pins til at udføre specifikke handlinger. 

Grafer

Grafen viser lysindfaldet på LDR sensorerne og tilsvarende servo position på det pågældende tidspunkt. Dataen i grafen er samlet over en periode på seks timer. Yderliger bliver data tilføjet når servo motoren bevæger sig således at alle ændringer gemmes. På den pågældende dag var det stærkt overskyet så det er meget begrænset ændringer i servo position. 

Figur 6. Graf over solindfald og servo motor position, over 6 timer. (Det var overskyet). Højere opløsning se linket: https://drive.google.com/file/d/1ableKxBQH6QkbCK8BsC7ceTKYrSZKQgh/view?usp=sharing  

Konklusion

Robotten opfylder de krav der er stillet og fungere efter hensigt. robotten er i stand til at følge solen, og andre lyskilder, og den kan også nulstille sig selv til en ny dag med sol. Der er dog stadigvæk punkter hvor den kunne forbedres. Når der ikke er noget lysindfald så nulstiller robotten sig til en angivet position. Dette kunne forbedres sådan at den ikke er sat til et statisk punkt. Den kunne med fordel derfor søge efter en lyskilde, eller solen for forbedret præstation. Yderliger kunne tolerances nok sættes bedre givet tilstrækelig testkørsel. 

Video

Video demo kan findes på linket herunder. 

https://drive.google.com/file/d/1G4sFeHOfDe3HDnQA4MbBmUtTqbSnZ7ax/view

Leave a Reply