Testa en spoonBot#
spoonBot är en enkel robot med differentialdrivning med en sked ansluten till en servo som gör att den kan panorera och luta. Se sidan spoonBot-Construction för information om hur man bygger spoonBot. Exempelprogrammet som medföljer den senaste cc3-distributionen innehåller exempelkod som visar hur man flyttar spoonBot samt kör spoonBot Demo-läge. spoonBot Demo-läge liknar CMUcam2:s demoläge förutom att det använder spoonBot för att panorera och luta.
Kalibrera spoonBot#
Innan du använder spoonBot måste du kalibrera dina servoinställningar. Detta görs genom att ställa in följande datastruktur överst i main:
// SpoonBot Calibration Points
// Assume Left = Servo 0
// Assume Right = Servo 1
// Assume Spoon = Servo 2
my_cal.left_mid = 71;
my_cal.right_mid = 77;
my_cal.spoon_down = 100;
my_cal.spoon_mid = 202;
my_cal.spoon_up = 255;
my_cal.left_dir = 1;
my_cal.right_dir = -1;
my_cal.spoon_dir = 1;
// Set the calibration points
spoonBot_calibrate (my_cal);
Flasha cmucam2-emuleringsfirmware till kameran
Öppna antingen CMUcam3 Frame Grabber eller ett terminalprogram
Med Frame Grabber, gå till panelen ”Settings” och dra i servostaplarna för att ändra värden
I en terminal, skriv ”sv <servo-id> <servo-value>” för att ställa in servona, till exempel:
:sv 0 77 ACK
Hitta mittpositionen för Servo 0 och 1 genom att justera dem tills hjulen stannar
my_cal.left_mid = <värde från servo 0>
my_cal.righ_mid = <värde från servo 1>
Nu måste du hitta tecknet för riktningarna
När du tittar på spoonBot bakifrån (skeden mot dig), prova att sänka servo 0-numret vilket bör vara det vänstra hjulet
om servot snurrar medurs / bakåt (mot dig) ska left_dir ställas in på 1
om servot snurrar moturs ska left_dir ställas in på -1
Upprepa för servo 1 (som bör vara det högra hjulet ur spoonBots synvinkel)
om servot snurrar medurs / bakåt (mot dig) ska right_dir ställas in på 1
om servot snurrar moturs ska right_dir ställas in på -1
Vanligtvis bör ett servo ställas in på negativt!
Hitta nu Min-, Middle- och Max-positionerna för skeden genom att justera Servo 2
Min bör vara det minsta värdet som trycker ner skeden och därmed lutar spoonBot framåt
Ställ in spoon_down därefter
Max är vanligtvis 255 och bör positionera spoonBot så att den tittar så långt upp som möjligt
Ställ in spoon_up därefter
Middle är det värde som gör servot jämnt/plant
Ställ in spoon_mid därefter
Om Min och Max verkar vara omvända, ändra spoon_dir till -1
När kalibreringen är klar, kompilera om projektet och FLASHa CMUcam3. spoonBot går först igenom en sekvens av skriptade rörelser för att säkerställa att servona är korrekt inställda. Sedan väntar spoonBot på en knapptryckning för att börja spåra en färg. Text visas över den seriella porten som meddelar dig om de olika driftstadierna.
Den skriptade rörelsen bör vara som följer:
Sitt stilla
Titta ner
Titta upp
Tillbaka till mittposition
Rotera medurs (sett uppifrån)
Rotera moturs
Röd lysdiod släckt medan kameran gör sig redo
Röd lysdiod tänds när den är redo att spåra
Om detta ser korrekt ut, prova att hålla ett klarfärgat objekt några centimeter framför kameran och tryck sedan på knappen. När du drar bort objektet bör spoonBot rotera mot det. Använd klarfärgade objekt som är så enfärgade som möjligt. Ett objekt som en klarröd trasa skulle fungera bra eftersom den reflekterar mycket lite ljus (annat än det rena röda). Se till att det finns tillräckligt med belysning i rummet. Prova att fånga en bild för att se hur förhållandena ser ut.
Obs: Om du vill inaktivera servon utan att koppla ur dem, koppla bort servo-power-bygeln.