Hallo
Recht einfach kann man beim Probot die Antriebsplatine austauschen:
Bild hier
http://www.youtube.com/watch?v=Z7VJT-kw9VQ
Die Steuerplatine treibt die Motoren der umgebauten Servos über die orginalen Servoplatinen an. Die Potis dienen nun zum Kalibrieren des Nullpunkts (am Anfang des Videos). Leider haben meine Omniwheels fast keinen Grip auf dem Laminat.
Das kleine Demo erzeugt die Servoimpulse asurolike mit Sleep():
Code:
// Erster Test mit Omniwheels 19.10.09 mic
#include "asuro-probot.h"
#include "asuro-probot.c"
void omniwheels(char x, char y, char z, int t)
{
int i;
while(t--)
{
PORTB |= (1<<PB1);
Sleep(36+x);
PORTB &= ~(1<<PB1);
PORTB |= (1<<PB2);
Sleep(36+y);
PORTB &= ~(1<<PB2);
PORTB |= (1<<PB4);
Sleep(36+z);
PORTB &= ~(1<<PB4);
for(i=15; i--; Sleep(36));
}
}
int main(void)
{
Init();
PORTC |= 3; // Odo-PullUps simulieren für PollSwitch()
PORTB &= ~(1<<PB5 | 1<<PB4 | 1<<PB2 | 1<<PB1);
while(!PollSwitch());
while(PollSwitch());
StatusLED(RED);
while(!PollSwitch()) // kalibrieren
{
omniwheels(0,0,0,10);
}
while(PollSwitch()); //fertig
StatusLED(YELLOW);
Beep(200);
Msleep(200);
Beep(1000);
while(1) // Demo
{
omniwheels(2,2,2,200);
Beep(100);
omniwheels(-2,-2,-2,300);
Beep(200);
omniwheels(5,5,5,400);
Beep(100);
omniwheels(-7,-7,-7,400);
Beep(200);
Msleep(200);
Beep(200);
omniwheels(2,-2,0,300);
Beep(200);
omniwheels(4,-4,0,300);
Beep(200);
omniwheels(0,5,-3,300);
Beep(200);
omniwheels(5,3,-5,300);
Beep(200);
Msleep(200);
Beep(200);
}
}
Gruß
mic
Lesezeichen