
Första veckan slut!
Tiden har gått fort och vi har redan varit här en vecka!
Vi har hunnit komma igång lite och beställt det mesta av materialet vi behöver men det är mycket kvar som skall göras.
Första två dagarna diskuterade vi mycket om hur roboten ska designas, vilka komponenter som skulle komma att behövas och vilka som är mest optimala för oss, lite beroende på kunskap, pris, leveranstid etc.
Raspberry Pi
Vi kom fram till att använda Raspberry Pi som kretskort. Den är relativt lätthanterad, det finns mycket informaion att hämta om den på internet (och färdiga bibliotek). Vi gick och köpte en i butik eftersom vi ville börja experimentera på den så snart som möjligt. Vid senare tillfälle hade vi tänkt styra roboten med hjälp av en bluetooth handkontroll och det fanns gott om exempel på hur man skulle kunna göra det på en Raspberry Pi på nätet utan att behöva leta särskilt mycket.
Figur 1. Författarens egen bild.
Det första vi gjorde med Raspberry Pi:n var att installera ett linux operativsystem som heter Raspbian på dess minneskort. När detta var gjort installerade vi kompilatorn Geany som verkar vara det bästa alternativet att använda för all programmering, speciellt i C-programering men även möjligen i Python vid behov.
När detta var klart så experimenterade vi med kretskortet och dess utgångar.
Denna kodning gör att lamporna blinkar i ökande takt runt i en "cirkel".
Kod:
#include <stdio.h>
#include <wiringPi.h>
int main (void)
{
/*** blinking lights ***/
wiringPiSetup () ;
pinMode (0, OUTPUT) ; //pin 0 (#17) = output
pinMode (1, OUTPUT) ; //pin 1 (#18) = output
pinMode (2, OUTPUT) ; //pin 2 (#27) = output
int i;
while(1)
{
for (i=200;i>0;i=i-10)
{
digitalWrite (0, HIGH); delay (i); //Digital 1 ut på ben 0 (#17), aktiv
digitalWrite (0, LOW) ; delay (i); //Digital 0 ut på ben 0 (#17), deaktivera
digitalWrite (1, HIGH); delay (i);
digitalWrite (1, LOW) ; delay (i);
digitalWrite (2, HIGH); delay (i);
digitalWrite (2, LOW) ; delay (i);
}
}
return 0 ;
}
Denna sekvens sparas så vi alltid kan gå tillbaka och kolla så inget hänt med Raspberry:n och dess GPIOs (pins).
Servo
För att få rörelse frammåt har vi valt att använda sex stycken servos som i horisontalled ska röra sig mellan ett visst gradtal ~0-90 grader men detta är något som vi kommer att pröva oss fram till under programmeringsdelen. De ska jobba i par om tre, dels för att underlätta programmeringsdelen samt för att det verkade vara en fungerande lösning. Vid senare skede är det även möjligt att koppla in och programmera servona var för sig men vårt första mål är att få denna spindel att helt enkelt röra sig frammåt så utveckling kan ske men vi sparar det till senare om tid finns.
Valet blev en servo med låg vikt (~50 g) och med metalldelar så vi är säkra på att de håller, även om det troligtvis hade räckt med plast.
Figur 2. Författarens egen bild.
Teleskopsben
Vi valde ett linjärt ställdon som vi ansåg vara nästintill optimalt för vårt projekt. Den hade en bra slaglängd på 100 mm, de var inte alltför dyra, finns tillgängliga i Sverige, ger tillbaka en analog signal över dess position (0V-3.3V, indragen - utdragen), små och lätta samt går att styra med hjälp av en PWM signal m m.
PWM HAT
För att styra servo och ställdon kommer vi behöva minst åtta stycken PWM signaler. Raspberry Pi kortet har enbart tillgång till två stycken PWM kanaler. En PWM HAT är ett utbyggnadskort till Raspberry Pi:n för att utöka antalet PWM kanaler. Detta beställde vi också så nu har vi tillgång till totalt 16 stycken PWM kanaler. Vi har hitills lyckats konfigurera PWM HAT:en och fått den att kommunicera med Raspberry Pi:en.
Figur 3. Författarens egen bild.
Missöden
Allting har flutit på bra under veckan förutom ett missöde. Efter inkoppling, lödning och programmering av PWM HAT:en som används för att styra ett servo märkte vi att det började ryka kring DC kontakten.
Vi väntar på svar från tillverkaren då det är möjligt att detta är ett fabriksfel.
Just nu sitter vi och väntar på att en ny PWM Hat ska levereras, det var ett misstag från vår sida att vi inte beställde mer än ett sådant kort för säkerhets skull.