Testiranje spoonBota#
spoonBot je jednostavan robot s diferencijalnim pogonom sa žlicom spojenom na servo motor koji mu omogućuje pomicanje i nagib. Pogledajte stranicu spoonBot-Construction za informacije o izradi spoonBota. Primjer programa koji dolazi s najnovijom cc3 distribucijom sadrži primjer koda koji demonstrira kako pomicati spoonBot kao i pokretati spoonBot Demo način. spoonBot Demo način sličan je CMUcam2 demo načinu samo što koristi spoonBot za pomicanje i nagib.
Kalibriranje spoonBota#
Prije korištenja spoonBota morate kalibrirati postavke servo motora. To se radi postavljanjem sljedeće podatkovne strukture na vrhu 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);
Flashajte firmver za emulaciju cmucam2 na kameru
Otvorite ili CMUcam3 Frame Grabber ili terminalski program
Koristeći Frame Grabber, idite na ploču „Settings” i povucite trake servo motora za promjenu vrijednosti
U terminalu upišite „sv <servo-id> <servo-value>” za postavljanje servo motora, na primjer:
:sv 0 77 ACK
Pronađite srednji položaj servo motora 0 i 1 podešavajući ih dok se kotači ne zaustave
my_cal.left_mid = <vrijednost sa servo motora 0>
my_cal.righ_mid = <vrijednost sa servo motora 1>
Sada morate pronaći predznak smjerova
Gledajući spoonBota straga (žlica prema vama), pokušajte smanjiti broj servo motora 0 koji bi trebao biti lijevi kotač
ako se servo motor okreće u smjeru kazaljke na satu / unatrag (prema vama) tada left_dir treba postaviti na 1
ako se servo motor okreće suprotno od kazaljke na satu, left_dir treba postaviti na -1
Ponovite za servo 1 (koji bi trebao biti desni kotač iz perspektive spoonBota)
ako se servo motor okreće u smjeru kazaljke na satu / unatrag (prema vama) tada right_dir treba postaviti na 1
ako se servo motor okreće suprotno od kazaljke na satu, right_dir treba postaviti na -1
Obično bi jedan servo motor trebao biti postavljen na negativno!
Sada pronađite minimalni, srednji i maksimalni položaj žlice podešavanjem servo motora 2
Min bi trebao biti najmanja vrijednost koja gura žlicu prema dolje i time naginje spoonBota prema naprijed
Postavite spoon_down u skladu s tim
Max je obično 255 i trebao bi pozicionirati spoonBota da gleda što je više moguće prema gore
Postavite spoon_up u skladu s tim
Middle je vrijednost koja postavlja servo motor u ravninu
Postavite spoon_mid u skladu s tim
Ako se čini da su Min i Max obrnuti, promijenite spoon_dir na -1
Nakon što je kalibracija gotova, ponovno kompajlirajte projekt i FLASH-ajte CMUcam3. spoonBot će prvo proći kroz niz skriptiranih pokreta kako bi se uvjerio da su servo motori ispravno postavljeni. Zatim će spoonBot čekati pritisak gumba za početak praćenja boje. Tekst se prikazuje preko serijskog priključka obavještavajući vas o raznim fazama rada.
Skriptirani pokret trebao bi biti sljedeći:
Mirovanje
Gledaj dolje
Gledaj gore
Natrag u srednji položaj
Rotacija u smjeru kazaljke na satu (gledano odozgo)
Rotacija suprotno od kazaljke na satu
Crvena LED je isključena dok se kamera priprema
Crvena LED se uključuje kada je spremna za praćenje
Ako ovo izgleda ispravno, pokušajte držati jarko obojeni objekt nekoliko centimetara ispred kamere i zatim pritisnite tipku. Kako povlačite objekt, spoonBot bi se trebao okrenuti prema njemu. Koristite jarko obojene objekte koji su što ujednačeniji u boji. Objekt poput jarko crvene tkanine dobro bi funkcionirao jer reflektira vrlo malo svjetla (osim čiste crvene). Provjerite ima li dovoljno osvjetljenja u prostoriji. Pokušajte dohvatiti sličicu kako biste vidjeli kako izgledaju uvjeti.
Napomena: Ako želite onemogućiti servo motore bez njihova iskopčavanja, odspojite servo-power-jumper.