Portefølje aflevering 1 – hardware og robotteknologi

Skrevet af: Kasper Rasmussen, Jacob T. Jørgensen, Sonny Zastrow og Thor Heie

 

1. Navn på robotsystemet:

Spin-spin sunshine & Sparkles

2. Hvordan ser systemet ud:

3. Hvorfor er systemet opbygget som den er ift. at løse opgaven?

3.1 Hvilke tanker ligger bag ved opbygningen?

Med vores opbygning vil vi gerne have haft at motoren var nederst. Den skulle så knyttes til et tandhjul der vil kunne rotere den øverste del er opbygningen. Vores tanke var her at placere breadboardet, Arduino og de 2 LDR på den øverste del. Årsagen til vi gerne ville det var at vi vil undgå at ledningerne vikles ind i tandhjulet. Størrelsen og vægten på denne del resulterede i at vi besluttede det ikke kunne lade sig gøre.

Pga. At ledningerne vil blive viklet ind, valgte vi at føre dem helt væk fra tandhjulet. Da vi testede systemet fandt vi ud af at ledningerne var for korte og var alt for stive i det. For at løse dette problem valgte vi at anvende blødere og længere ledninger.

 

3.2 Er der nogen gearing?

Vi har brugt et 24 tænders tandhjul, sat direkte på motoren, til at trække et 56 tænders tandhjul, og har herved gearet ned.
Ved at lave en simple division kan vi finde frem til vores gearings faktor således: 24/ 24 og 56/24 -> 1:2.33

 

3.3 Hvor er motoren placeret og hvorfor dér?

Den er placeret i bunden for at kunne rotere den øverste og for at mindske antallet af tandhjul, og fordi da vi prøvede at have den på toppen gav den system overbalance.

 

3.4 Hvilke sensor er benyttet og hvor er de fysisk placeret på robotten?

Der er blevet anvendt 2 light dependent resistors (LDR), til at måle lysstyrken. For at sikre et passende spændingsfald, og derved sikre at målingerne stemmer overens med den aktuelle lysstyrke, har vi for hver LDR sat en 10 k ohm modstand ind i kredsløbet.  LDR’erne er blevet placeret på toppen af systemet, for at give dem og solcellen mest mulig adgang til sollyset.

 

3.5 Har det været problemfrit at opbygge systemet?

Selve robotten har haft ændret form et par gange efterhånden som vi opdagede nye problemstillinger. Et eksempel på dette var da vi opdagede at nogen af ledningerne der var ledt ned gennem gearene ville forhindre rotation af solpanelet: breadboardet der før havde siddet på undersiden af systemet fik nu bygget en ”hylde” på toppen af systemet, lige under hvor solcellen skulle ligge. Dette medførte dog at breadboardet roterede med solcellen, mens at arduino boardet lå stille ved siden af systemet. Da dette ville betyde at ledningerne ville blive trukket ud af Arudinoen, var vi ligeledes været nødt til at bygge arduinoen op på toppen af systemet. Dette kunne heller ikke lade sig gøre, hvilket resulterede i den nuværende opbygning. Alt i alt har ledninger været den største udfordring ifht. Opbygningen af systemet.

 

4. Hvordan er robottens hardware sammensat?

4.1 Diagramtegning:

 

 

4.2 Billed af robotten, med markering af delkomponenterne:

På billedet er der blevet markeret de forskellige delkomponenter anvendt, og under er der en efterfølgende beskrivelse af delkomponenter.

 

  1. Breadboardet, hvori at kredsløbet opsættets
  2. Gearene – de er gemt væk bag de platforme som er sat oven på, men de består af to tandhjul der udgør et gear.
  3. Solcelle pladen – det er her vi har placeret de to LDR, og det ville være her vi ville placere vores solceller.
  4. Væggen der adskiller de to LDR, og derved sørger for at der kan opstå forskellige værdier i den mængde lys LDR optager.
  5. Arduinoen og motorshieldet.

 

4.3 Har der været nogle problemer ift. at få hardwaren til at virke?

Det primære hardware problem vi har stødt på er inflexibilteten af ledningerne: I det at gearene blev drejet rundt ville ledningerne stride imod, og nogen gang blive skubbet ud af breadboardet, hvilket ville slukke for robotten. Derudover gjorde modstanden i ledningerne at den ikke kunne dreje 180 grader uden hjælp, i form at et lille skub på ledningerne.

 

5. Hvordan er robottens opførsel implementeret?

5.1 Hvad er de overordnede opførelser / metoder for robotten?

Robottens opførsel er produceret ved at sammenligne modstanden fra 2 LDR sensorer, og vende sig imod lyset ind til de to sensorer når tæt på den samme værdi returneret.
Hvis begge sensorer måler under en vis grænse, går den i længere pauser mellem hver test.

5.2 Lav et flow-diagram, der beskriver robottens opførsel.

 

5.3 Inkludér kode + beskrivelse

 

//input pins fra sensorer og til motor
const int motor1 = 9;
const int motor2 = 12;
const int sensor1 =2;
const int sensor2 = 3;

int stateVar = 0;

void setup() {

 // put your setup code here, to run once:

 pinMode(motor1, OUTPUT);
 pinMode(motor2, OUTPUT);

 Serial.begin(9600);
}

void loop() {

 // put your main code here, to run repeatedly:

 int value1 = analogRead(sensor1); //læs fra sensorer
 int value2 = analogRead(sensor2);

 Serial.println(value1);
 Serial.println(value2);


 if (value1 < 200 && value2 < 200){ //hvis lyset er lavt så tag en pause

     Serial.println("stateSleep");
     delay(60000);
 }else

 if (value1 > 50+value2){ //hvis sensor1 er væsentligt højere end sensor2 så drej den ene vej

   Serial.println("state 1");
   stateVar = 1;
 } else

 if (value2 > 50 + value1) {//hvis sensor2 er væsentligt højere end sensor1 så drej den anden vej

   Serial.println("state 2");
   stateVar = 2;
 } else //hvis de er ca. Lige høje
 {
   Serial.println("state even");
   stateVar = 0;
 }
 if (stateVar == 1) { //drej den ene vej
 digitalWrite(12, HIGH);
 digitalWrite(9, LOW);
 analogWrite(3,100);
 } else
 if (stateVar == 2) //drej den anden vej
 {
   digitalWrite(12,LOW);
   digitalWrite(9,LOW);
   analogWrite(3, 100);
 } else { //stå stille
   digitalWrite(12,LOW);
   digitalWrite(9,HIGH);
   analogWrite(3, 0);
 }

 delay(500); //pause

}

 

5.4 Hvilke udfordringer har der været ift. til at få koden til at virke?

Ikke de store udfordringer, ud over at eksperimenterer lidt med hvor højt der skulle skrues op for motoren.

 

6. Konklusion

6.1 Løser robotten opgaven ift. opgaveformuleringen?

Vi mener ikke at vores system er tilstrækkeligt ift. at skulle løse opgaven. Vores kode fungere som tiltænkt, i det at den  fint fungere til skulle vende solcellen så der er lige meget lys på begge LDR. På trods af dette går vores system i stå når den har rykket sig lidt, pga. modstanden i ledningerne. På baggrund af dette mener vi ikke at systemet i sin helhed er tilstrækkelig.

6.2 På hvilke punkter kan den forbedres – og evt. hvordan?

Umiddelbart vil den kunne forberedes ved at få tilført mere kraft til motoren. Eller hvis vi kunne få sat alle dele med ledninger op over tandhjulet så ledninger ikke vil sidde fast. Vi antager også at hvis vi havde fået lavet bedre gearing vil systemet have fungeret.

 

Leave a Reply