Testarea unui spoonBot#

spoonBot este un simplu robot cu tracțiune diferențială, cu o lingură conectată la un servomotor care îi permite să facă panoramare și înclinare. Consultați pagina spoonBot-Construction pentru informații despre construirea spoonBot. Programul exemplu care vine cu cea mai recentă distribuție cc3 conține cod exemplu care demonstrează cum să mișcați spoonBot, precum și cum să rulați modul demo spoonBot. Modul demo spoonBot este similar cu modul demo CMUcam2, doar că folosește spoonBot pentru a face panoramare și înclinare.

Calibrarea spoonBot#

Înainte de a utiliza spoonBot, trebuie să calibrați setările servoului. Acest lucru se face prin setarea următoarei structuri de date în partea de sus a funcției 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);
  • Programați firmware-ul de emulare cmucam2 pe cameră

  • Deschideți fie CMUcam3 Frame Grabber, fie un program de terminal

    • Folosind Frame Grabber-ul, mergeți la panoul „Settings” și trageți barele servo pentru a schimba valorile

    • Într-un terminal, tastați „sv <servo-id> <servo-value>” pentru a seta servourile, de exemplu:

      :sv 0 77
      ACK
      
  • Găsiți poziția de mijloc a servourilor 0 și 1 ajustându-le până când roțile se opresc

    • my_cal.left_mid = <valoare de la servo 0>

    • my_cal.righ_mid = <valoare de la servo 1>

  • Acum trebuie să găsiți semnul direcțiilor

    • Privind spoonBot din spate (cu lingura spre dvs.), încercați să reduceți numărul servoului 0, care ar trebui să fie roata din stânga

      • dacă servomotorul se rotește în sensul acelor de ceasornic / înapoi (spre dumneavoastră) atunci left_dir ar trebui setat la 1

      • dacă servomotorul se rotește în sens invers acelor de ceasornic, left_dir ar trebui setat la -1

    • Repetați pentru servo 1 (care ar trebui să fie roata din dreapta din punctul de vedere al spoonBot)

      • dacă servomotorul se rotește în sensul acelor de ceasornic / înapoi (spre dumneavoastră) atunci right_dir ar trebui setat la 1

      • dacă servomotorul se rotește în sens invers acelor de ceasornic, right_dir ar trebui setat la -1

    • De obicei, un servomotor ar trebui setat la negativ!

  • Acum găsiți pozițiile Min, Middle și Max ale lingurii ajustând Servo 2

    • Min ar trebui să fie cea mai mică valoare care împinge lingura în jos și, prin urmare, înclină spoonBot înainte

      • Setați spoon_down în consecință

    • Max este de obicei 255 și ar trebui să poziționeze spoonBot privind cât mai sus posibil

      • Setați spoon_up în consecință

    • Middle este valoarea care face servoul să fie la nivel

      • Setați spoon_mid în consecință

    • Dacă Min și Max par a fi inversate, schimbați spoon_dir la -1

Odată ce calibrarea este finalizată, recompilați proiectul și programați CMUcam3. spoonBot va parcurge mai întâi o secvență de mișcări scriptate pentru a se asigura că servourile sunt configurate corect. Apoi spoonBot va aștepta o apăsare de buton pentru a începe urmărirea unei culori. Textul este afișat prin portul serial, notificându-vă despre diferitele etape de funcționare.

Mișcarea scriptată ar trebui să fie următoarea:

  • Stai nemișcat

  • Privire în jos

  • Privire în sus

  • Înapoi la poziția de mijloc

  • Rotire în sensul acelor de ceasornic (privind de sus)

  • Rotire în sens invers acelor de ceasornic

  • LED-ul roșu stins în timp ce camera se pregătește

  • LED-ul roșu se aprinde când este gata de urmărire

Dacă acest lucru arată corect, atunci încercați să țineți un obiect viu colorat la câțiva centimetri în fața camerei și apoi apăsați butonul. Pe măsură ce îndepărtați obiectul, spoonBot ar trebui să se rotească spre el. Folosiți obiecte viu colorate care sunt cât mai uniforme în culoare posibil. Un obiect precum o cârpă roșie aprinsă ar funcționa bine, deoarece reflectă foarte puțină lumină (în afară de roșul pur). Asigurați-vă că există suficientă iluminare în cameră. Încercați să capturați un cadru pentru a vedea cum arată condițiile.

Notă: Dacă doriți să dezactivați servourile fără a le deconecta, deconectați jumperul de alimentare a servourilor.