====== Distance Lab Roboter ====== Der Roboter kann auf verschiedene Weisen bestückt werden: * Manipulator (Abb. 1) * Einfacher Radar (Abb. 2) * Kamera {{http://www.mehhatroonika.ee/images/user/device/platvorm1.jpg|Platvorm1}} Abb. 1 Roboter mit Manipulator {{http://www.mehhatroonika.ee/images/user/device/platvorm2.jpg|Platvorm2}} Abb. 2 Roboter mit Infrarot Radar ===== Grundlegende Navigation ===== #define F_CPU 14745600UL //CPU Frequenz (beeinflusst delay Funktion) #include #include int init(){ DDRD = 0xFF;// set port direction (output) PORTD = 0x00;// initialize port //Pamperi lülitid DDRC = 0x00;// set port direction (input) PORTC = 0x00;// initialize port DDRA = 0x00;// set port direction (input) PORTA = 0x00;// initialize port DDRB = 0xFF;// set port direction (output) PORTB = 0x00;// initialize port DDRG = 0xFF; // set port direction (output) PORTG = 0x00;// initialize port - pins-s low return 0; } int edasi(){ PORTD=0x02; //vasak edasi PORTB=0x80; //parem edasi return 0; } int tagasi(){ PORTD=0x01; //vasak tagasi PORTB=0x10; //parem tagasi return 0; } int stop(){ PORTD=0x00; //vasak stop PORTB=0x00; //parem stop return 0; } int poore_vasak(){ PORTD=0x01; //vasak tagasi PORTB=0x80; //parem edasi return 0; } int poore_parem(){ PORTD=0x02; //vasak edasi PORTB=0x10; //parem tagasi return 0; } int main (void){ init(); while(1){ edasi(); if (bit_is_set(PINA, 0)||bit_is_set(PINA, 1)) { tagasi(); _delay_ms(500); poore_parem(); _delay_ms(1000); } if (bit_is_set(PINA, 2)||bit_is_set(PINA, 3)) { tagasi(); _delay_ms(500); poore_vasak(); _delay_ms(1000); } if (bit_is_set(PINC, 4)||bit_is_set(PINC, 5)||bit_is_set(PINC, 6)||bit_is_set(PINC, 7)) { stop(); _delay_ms(1000); } } }