Balancerende robot
Denne uge står laboratorie-udfordringen på en selv-balancerende robot. Ved brug af en lyssensor skal vi bedømme om vores robot står oprejst eller er ved at falde til en side - og derpå ved hjælp af motorerne hjælpe robotten tilbage i balance.
Idag er Toke, Phillip og Esben tilstede, Lasse er syg.
Forsøg 1:
Bygge-fasen var simpel og kort, det tog omkring 2 min at samle den nye robot.
I mellemtiden var balance programmet blevet downloadet og gjort klar til overførsel. Den første kørsel fejlede øjeblikkeligt; Robotten startede og væltede inden for 1 sekund.
Forsøg 2:
Vi forsøgte at finde den value der passede med ligevægt, og forsøgte at hard-code denne ind i programmet. Dette gav umiddelbart en fordel; Det var muligt for os at finpudse denne værdi og dermed ikke være afhængig af at hole robotten helt ens under start længere.
Forsøg 3:
Efter noget finpudsning af lys-sensor threshold. begyndte vi at rode med de forskellige gains. Det var dog stadig ikke muligt for os at finde en indstilling som kunne få robotten til at balancere mere end 1-3 sekunder.
På dette tidspunkt er den første time gået.
Datalog:
Da vi ikke helt var klar over hvorfor vores program fejlede, besluttede vi at indføre en datalogger, så vi kunne få en graf over udviklingen; Og måske klarlægge årsagen til vores fejlende program.
Fra den graf vi fik ud, kunne vi konkludere at vores robot overskød mere og mere og derfor uundgåeligt væltede.
Forsøg 4:
Efter tilføjelse af datalogger kørte vi flere forsøg hvor vi igen prøvede forskellige gain-indstillinger. Da vi havde behov for at skifte omåde og underlag måtte vi sætte initial indstilling af threshold tilbage i robottens program.
Sidste udkald:
Efter nogle timers frustrationer over vores robot og da tiden var ved at være udløbet, gik det op for os at vi havde arbejdet på et dårligt underlag. underlaget havde været et bord som havde en skinnene overflade. Da vi skiftede til at køre på et stykke farvet papir gik det bedre - men robotten ville stadig ikke balancere helt.
Vores sidste udkast til programmet (som stadig ikke virker):