Instructions
Program pro rozsvícení levého oka robota
#This program will swich on YETI’s right ‘eye’
#include “YETI.h” //load definitions and functions
int main(void){ //main function entry
vInitYeti(); //initialize all microprocessor modules in
//the YETI
vFrontLEDs(RIGHT); //swich on YETI’s right ‘eye’-LED
return 0; //terminating the main function and
//returning a value 0
} //end of the main function
#include “YETI.h”
Do tohoto místa vloží kompilátor soubor ´YETI´h, který obsahuje všechny definice pro funkce,
například funkce ‘vYetiInit()’. Kódování řádků pro funkce najdete v souboru ‘YETI.c’.
vInitYeti();
Jedná se o speciální funkci, která aktivuje všechny mikrokontroléry a moduly robota.
Funkci můžete volat příkazem vInitYeti(); na začátku programu robota kódování naleznete
v souboru ‘YETI.
c’.
vFrontLEDs(LEFT);
Tato funkce aktivuje levé oko robota.
Ekvivalentní funkce jsou:
vFrontLEDs(RIGHT);
Aktivace pravého oka robota.
vFrontLEDs(OFF);
Zhasnutí obou očí.
vFrontLEDs(BOTH);
Rozsvícení obou očí.
5x probliknutí LED v pravém oku robota
Tento program zajistí, aby pravé oko robota probliklo celkem 5x s prodlevou 1 sekundy
mezi jednotlivým rozsvícením.
#include “YETI.h” //load definitions and
//functions
int main(void){ //main function entry
int i; //define variable ‘i’ as an integer
vInitYeti(); //initialize all microprocessor
//modules in the YETI
for(i=0 ;i<5 ;i++){ //repeat for-loop (5 times)
vFrontLEDs(RIGHT); //activate YETI’s right eye LED
vWaitMilliseconds(500); //wait half a second
vFrontLEDs(OFF); //deactivate YETI’s right eye LED
vWaitMilliseconds(500); //wait half a second
} //terminate for-loop (5 times)
return 0; //terminating the main function
} //end of the main function
for(…){
}
Programový modul vložený do závorek { a } se nazývá „loop“.
Int i; je definice proměnné s označení „i“.
vWaitMilliseconds(500);
Tuto funkci můžete nalézt v souboru ‘YETI.c’, který můžete otevřít v aplikaci PN2.
Tato funkce využívá interní mikrokontrolér a předdefinovaný počet milisekund a návrat na volání
programu. Tato funkce akceptuje celou řadu milisekund (1/1000 s). Výše uvedená sekvence
pro volání bude generovat cyklus prodlevy ½ sekundy.
Generování akustický signálů
#include “YETI.h” //load definitions and functions
int main(void){ //main function entry
vInitYeti(); //initialize all microprocessor
//modules in the YETI
vBeep(400,80); //make YETI generate a beep sound
vBeep(520,120); //make YETI generate a beep sound
vBeep(360,80); //make YETI generate a beep sound
vBeep(580,160); //make YETI generate a beep sound
return 0; //terminating the main function
} //end of the main function
vBeep(400,80);
volání funkce ‘vBeep’ s intenzitou 400 a průběhem 8 x 10 = 80 milisekund.
Pohyb levé nohy robota
#include “YETI.h” //load definitions and functions
#include “yetimove.c” //insert YETI’s servo functions
int main(void){ //main function entry
int i; //define variable ‘i’ as an integer
vInitYeti(); //initialize all microprocessor modules in
//the YETI
for(i=0 ;i<3 ;i++){ //do for-loop 3 times
vMoveBody(16,10); //move body to the left
vMoveBody(-16,10); //move body to the right
} //terminate for-loop (3 times)
vMoveBody(0,10); //move body to the centre position
return 0; //terminating the main function
}
#include “yetimove.c”
Vložení funkcí pro servomotor.
vMoveBody(16,10);
Pohyb nohy robota (servomotoru) o 16 kroků doleva, v časovém úseku 10 milisekund pro každý krok.
vMoveBody(-16,10);
Pohyb nohy robota (servomotoru) o 16 kroků doprava, v časovém úseku 10 milisekund pro každý
krok.
Pro krok motoru můžete volit pozice v rozsahu -58 až +58. Prodleva bude vždy zaokrouhlena směrem
nahoru na vyšší hodnotu milisekund, což ve výsledku může představovat 10 milisekund na 1 krok
motoru pro každou hodnotu parametru mezi 1 -10 milisekund a prodleva 20 milisekund na 1 krok
motoru pro každou hodnotu parametru mezi 11 – 20 milisekund.
vMoveBody(0,10);
Reset „feet“ servomotoru robota a přechod do výchozí pozice (vzpřímená poloha).
Obdobná funkce ‘vMoveLegs()’ aktivuje pohyb nohou vpřed nebo dozadu.