-
Danke Danke Danke !!!!
Das Programm läeuft echt Super, hab echt einiges versucht und es hat ohne Probleme funktioniert nach dem abstecken der Akkus, super nun kann ich die Einstellungen so vornehmen wie ich sie brauche, und auch endlich damit anfangen die Bumper zu verwenden.
Nurnoch eine kleine frage ich hab den Ultraschall ULT-10 von asuro kann man das auch für den RP6 verwenden über XBUS?.
Muss wohl echt daran gelegen haben das die Fahrtenregler zeit brauchen.
Nochmals vielen Dank für deine Hilfe!!
-
Hi,
also kein problem xD
ähm mit asuro kenn ich mich nich aus, ich würd sagen das kann dir am besten der radbruch erklären (--> youtube = asurofilmchen --> radbruch = asuroprofi?)
LG Pr0gm4n
-
Hallo Pr0gm4n!
Danke nochmal für dein Programm, leider ist es soo, dass die Einstellungen anscheinend zu grob sind und ich keine langsame Geschwindigkeit schaffe, da es 2 sehr starke Motoren sind. Ich habe alle Einstellungen von oben bis unten durch probiert, aber ich bin leider zu keinem Ergebnis gekommen, dass für meinen Roboter geeignet wäre, da er entweder nur Vollgas oder stockend fährt.
Hast du vielleicht eine Idee was ich falsch machen könnte, an was das sonst noch liegen könnte oder noch irgendwelche Ideen die ich ausprobieren könnte?
Ich habe auch bei nachfolgenden Absatz auch versucht von 1-20 vor u. rückwärts alle Möglichkeiten versucht, aber leider hatte ich auch hier keinen Erfolg.
if(geschwindigkeit > 5)geschwindigkeit = 5;
if(geschwindigkeit < 0)geschwindigkeit = 0;
int x = 15+geschwindigkeit;
int i;
for(i=0;i<(zeit/20);i++)
Ich wäre dir unendlich dankbar für Lösungsvorschläge. Seit 2 Monaten arbeite ich nur daran die Fahrtenregler einzustellen um eine vernünftige Geschwindigkeit programmieren zu können und bin mittlerweile schon verzweifelt und glaube sogar schon, dass daran mein Projekt scheitern muss.
Code:
#include "RP6RobotBaseLib.h" //Code by Pr0gm4n© v1.1 Fahrtenregler/Servos an ADC0 und ADC1 die entgegengesetzt drehen
void vorwaerts(int geschwindigkeit, int zeit)//geschwindigkeit zwischen 0 und 5, bei 0 = stillstand; zeit in ms
{
if(geschwindigkeit > 5)geschwindigkeit = 5;
if(geschwindigkeit < 0)geschwindigkeit = 0;
int x = 15+geschwindigkeit;
int i;
for(i=0;i<(zeit/20);i++)
{
PORTA |= 1;
sleep(x);
PORTA &= ~1;
PORTA |= 2;
sleep(30-x);
PORTA &= ~2;
sleep(170);
}
}
void rueckwaerts(int geschwindigkeit, int zeit)//geschwindigkeit zwischen 1 und 5; zeit in ms
{
if(geschwindigkeit > 5)geschwindigkeit = 5;
if(geschwindigkeit < 0)geschwindigkeit = 0;
int x = 15-geschwindigkeit;
int i;
for(i=0;i<(zeit/20);i++)
{
PORTA |= 1;
sleep(x);
PORTA &= ~1;
PORTA |= 2;
sleep(30-x);
PORTA &= ~2;
sleep(170);
}
}
void links() // oder rechts, das musst du testen, hängt davon ab, was an adc0 oder adc1 hängt
{
int x= 17; // hier kannst du an der geschwindigkeit in der kurve rumprobieren (15 < x <= 20)
int y= 20; // hier kannst du am Winkel der Drehung rumprobieren, das hängt von den Motoren ab, einfach ausprobieren dann siehst du was gut iss xD
int i;
for(i=0; i<y ;i++)
{
PORTA |= 1;
sleep(x);
PORTA &= ~1;
sleep(200-x);
}
}
void rechts() // oder links, das musst du testen, hängt davon ab, was an adc0 oder adc1 hängt
{
int x= 17; // hier kannst du an der geschwindigkeit in der kurve rumprobieren (15 < x <= 20)
int y= 20; // hier kannst du am Winkel der Drehung rumprobieren, das hängt von den Motoren ab, einfach ausprobieren dann siehst du was gut iss xD
int i;
for(i=0; i<y ;i++)
{
PORTA |= 2;
sleep(x);
PORTA &= ~2;
sleep(200-x);
}
}
void initMotoren()
{
DDRA |=3;
vorwaerts(0, 10000);
}
int main(void)
{
initRobotBase();
initMotoren();
while(true)
{
vorwaerts(0, 2500);
vorwaerts(0, 100);
rueckwaerts(0, 2500);
vorwaerts(0, 100);
}
return(0);
}
-
Hallo
Kleines Offtopic zum US-Sensor des asuro am RP6: Hier gibt's einen ausführlichen Thread über den Umbau am asuro selbst:
https://www.roboternetz.de/phpBB2/ze...ag.php?t=10907
Ich bin zwar noch nicht durch, aber auf Seite 2 findet sich schon mal einen Bibliothek. Anscheinend muss der asuro die 40kHz-Trägerfrequenz selbst erzeugen, das sollte der RP6 auch können. Möglicherweise stimmen die Timersetups nicht völlig überein, aber die Werte sollten passen weil beide mit 8MHz takten. Angriffspunkt ist wohl Timer2 der normalerweise die 36kHz für die IR-Kommunikation erzeugt. btw. fehlt mir noch der Schaltplan für die US-Erweiterung...
Gruß
mic
-
soooooooo...
also, bei dem code kann man im prinzip die genauigkeit der geschwindigkeit beliebig machen...
wenn ich mich recht erinnere nimmt die sleep-funktion auch floats?
naja ich wollte es halt so einfach wie möglich für dich machen xD
naja, kannst du nicht mit geschwindigkeit 1 probieren und jo...
ich hab grad ned viel zeit und ehrlich gesagt kann ich die werte auch nur wirklich einstellen wenn ich das modell vor mir hab und rumprobieren kann...
sowas mach ich aber wegen zeitintensivität eig. nur bei eigenen projekten xD
du musst halt einfach rumprobieren...
das was du bisher so von dir gibst lässt für mich nurnoch den schluss zu, dass du eig. keine ahnung hast was ich da wirklich zusammengecoded hab und du gern nen kompletten code hättest mit dem das dann läuft...
tja, so läuft das halt nicht, normal kriegst du noch nichtmal soviel..
wenn du das bisherige nicht ganz verstehst dann schau lieber erstmal dass du das hinkriegst bevor du weiter gehst....
LG Pr0gm4n