Een spoonBot testen#
spoonBot is een eenvoudige differentiële-aandrijvingsrobot met een lepel die op een servo is aangesloten, waardoor hij kan pannen en tilten. Zie de spoonBot-Constructie-pagina voor informatie over het bouwen van spoonBot. Het voorbeeldprogramma dat bij de nieuwste cc3-distributie wordt geleverd, bevat voorbeeldcode die laat zien hoe je spoonBot beweegt en hoe je de spoonBot-demomodus uitvoert. De spoonBot-demomodus lijkt op de CMUcam2-demomodus, alleen gebruikt hij spoonBot om te pannen en te tilten.
spoonBot kalibreren#
Voordat je spoonBot gebruikt, moet je je servo-instellingen kalibreren. Dit doe je door de volgende datastructuur bovenaan main in te stellen:
// 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);
Flash de cmucam2-emulatiefirmware op de camera
Open ofwel de CMUcam3 Frame Grabber of een terminalprogramma
Ga met de Frame Grabber naar het paneel “Settings” en versleep de servobalken om waarden te wijzigen
Typ in een terminal “sv <servo-id> <servo-value>” om de servo’s in te stellen, bijvoorbeeld:
:sv 0 77 ACK
Vind de middenpositie van Servo 0 en 1 door ze aan te passen totdat de wielen stoppen
my_cal.left_mid = <waarde van servo 0>
my_cal.righ_mid = <waarde van servo 1>
Nu moet je het teken van de richtingen vinden
Kijkend naar spoonBot vanaf de achterkant (lepel naar je toe), probeer het servo 0-getal te verlagen, wat het linkerwiel zou moeten zijn
als de servo met de klok mee / achteruit (naar je toe) draait, moet left_dir op 1 worden ingesteld
als de servo tegen de klok in draait, moet left_dir op -1 worden ingesteld
Herhaal voor servo 1 (wat het rechterwiel zou moeten zijn vanuit spoonBots gezichtspunt)
als de servo met de klok mee / achteruit (naar je toe) draait, moet right_dir op 1 worden ingesteld
als de servo tegen de klok in draait, moet right_dir op -1 worden ingesteld
Meestal moet één servo op negatief worden ingesteld!
Vind nu de Min-, Middle- en Max-lepelposities door Servo 2 aan te passen
Min zou de kleinste waarde moeten zijn die de lepel omlaag duwt en dus spoonBot naar voren kantelt
Stel spoon_down dienovereenkomstig in
Max is meestal 255 en zou spoonBot zo ver mogelijk omhoog moeten laten kijken
Stel spoon_up dienovereenkomstig in
Middle is de waarde die de servo waterpas maakt
Stel spoon_mid dienovereenkomstig in
Als Min en Max omgekeerd lijken te zijn, wijzig spoon_dir in -1
Zodra de kalibratie is voltooid, compileer je het project opnieuw en FLASH je de CMUcam3. spoonBot zal eerst een reeks scripted bewegingen doorlopen om ervoor te zorgen dat de servo’s correct zijn ingesteld. Vervolgens wacht spoonBot op een druk op de knop om te beginnen met het volgen van een kleur. Er wordt tekst weergegeven via de seriële poort om je op de hoogte te stellen van de verschillende bedrijfsfasen.
De scripted beweging zou als volgt moeten zijn:
Stil zitten
Omlaag kijken
Omhoog kijken
Terug naar middenpositie
Met de klok mee draaien (van bovenaf gezien)
Tegen de klok in draaien
Rode led uit terwijl de camera zich klaarmaakt
Rode led gaat aan wanneer klaar om te volgen
Als dit er correct uitziet, probeer dan een felgekleurd object een paar centimeter voor de camera te houden en druk vervolgens op de knop. Terwijl je het object wegtrekt, zou spoonBot ernaartoe moeten draaien. Gebruik felgekleurde objecten die zo uniform mogelijk van kleur zijn. Een object zoals een felrode doek zou goed werken, omdat het zeer weinig licht reflecteert (anders dan het pure rood). Zorg dat er voldoende verlichting in de kamer is. Probeer een frame vast te leggen om te zien hoe de omstandigheden eruitzien.
Let op: Als je de servo’s wilt uitschakelen zonder ze los te koppelen, ontkoppel dan de servo-power-jumper.