Testování spoonBotu#
spoonBot je jednoduchý robot s diferenciálním pohonem se lžící připojenou k servu, které mu umožňuje natáčení a naklánění. Informace o sestavení spoonBota naleznete na stránce spoonBot-Construction. Ukázkový program, který je součástí nejnovější distribuce cc3, obsahuje ukázkový kód demonstrující, jak spoonBotem pohybovat, jakož i jak spustit demo režim spoonBota. Demo režim spoonBota je podobný demo režimu CMUcam2, jen používá spoonBota k natáčení a naklánění.
Kalibrace spoonBotu#
Před použitím spoonBotu je nutné zkalibrovat nastavení serva. To se provádí nastavením následující datové struktury na začátku funkce 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);
Flashněte emulační firmware cmucam2 do kamery
Otevřete buď CMUcam3 Frame Grabber, nebo terminálový program
Pomocí Frame Grabberu přejděte na panel „Settings“ a přetažením posuvníků serv změňte hodnoty
V terminálu napište „sv <servo-id> <servo-value>“ pro nastavení serv, například:
:sv 0 77 ACK
Najděte střední polohu serv 0 a 1 jejich úpravou, dokud se kola nezastaví
my_cal.left_mid = <hodnota ze serva 0>
my_cal.righ_mid = <hodnota ze serva 1>
Nyní musíte najít znaménko směrů
Při pohledu na spoonBot zezadu (lžíce směrem k vám) zkuste snížit číslo serva 0, které by mělo být levé kolo
pokud se servo otáčí ve směru hodinových ručiček / dozadu (směrem k vám), pak by left_dir mělo být nastaveno na 1
pokud se servo otáčí proti směru hodinových ručiček, left_dir by mělo být nastaveno na -1
Opakujte pro servo 1 (které by mělo být pravé kolo z pohledu spoonBota)
pokud se servo otáčí ve směru hodinových ručiček / dozadu (směrem k vám), pak by right_dir mělo být nastaveno na 1
pokud se servo otáčí proti směru hodinových ručiček, right_dir by mělo být nastaveno na -1
Obvykle by jedno servo mělo být nastaveno na zápornou hodnotu!
Nyní najděte polohy lžíce Min, Middle a Max úpravou serva 2
Min by měla být nejmenší hodnota, která zatlačí lžíci dolů, a tím nakloní spoonBota dopředu
Nastavte spoon_down odpovídajícím způsobem
Max je obvykle 255 a měl by nastavit spoonBota tak, aby se díval co nejvýše
Nastavte spoon_up odpovídajícím způsobem
Middle je hodnota, která nastaví servo do vodorovné polohy
Nastavte spoon_mid odpovídajícím způsobem
Pokud se zdá, že Min a Max jsou obrácené, změňte spoon_dir na -1
Jakmile je kalibrace hotová, znovu zkompilujte projekt a FLASHněte CMUcam3. spoonBot nejprve projde sekvencí naskriptovaných pohybů, aby se ujistil, že jsou serva správně nastavena. Poté spoonBot počká na stisknutí tlačítka, aby začal sledovat barvu. Přes sériový port se zobrazuje text, který vás informuje o různých fázích provozu.
Naskriptovaný pohyb by měl být následující:
Seďte nehybně
Podívejte se dolů
Podívejte se nahoru
Zpět do střední polohy
Otočte po směru hodinových ručiček (při pohledu shora)
Otočte proti směru hodinových ručiček
Červená LED zhasne, zatímco se kamera připravuje
Červená LED se rozsvítí, když je připravena ke sledování
Pokud to vypadá správně, zkuste podržet jasně zbarvený objekt několik palců před kamerou a poté stiskněte tlačítko. Jak objekt oddálíte, spoonBot by se měl otočit směrem k němu. Používejte jasně zbarvené objekty, které jsou v barvě co nejjednotnější. Objekt jako jasně červená látka by fungoval dobře, protože odráží velmi málo světla (kromě čisté červené). Ujistěte se, že je v místnosti dostatek osvětlení. Zkuste zachytit snímek, abyste viděli, jak podmínky vypadají.
Poznámka: Chcete-li deaktivovat serva bez jejich odpojení, odpojte servo-power-jumper.