ah wieder einbischen was gelernt ;)
Druckbare Version
ah wieder einbischen was gelernt ;)
Hallo
Wenn ich das richtig sehe hast gleich voll zugeschlagen und dir den RP6 mit M32 und dem LCD angeschafft. Das alles zusammen zu betreiben ist schon nicht ganz einfach und für Einsteiger schwer zu überblicken.
Der beste Einstieg sind wohl kleine Spielereien wie LEDs blinken lassen oder Sensoren einlesen und Werte zum Terminal (RP6Loader) senden. Basis können dabei die vielen mitgelieferten Beispiele sein die man variiert und kombiniert. Das intensive Studium der mitgelieferten Doku ist allerdings trotzdem Pflicht!
Gruß
mic
Das hab ich Gestern abend bist um 4 uhr nachts durch gelesen und auch verstanden bin gerade dabei die Bumper eine funktion zuzuweißen aber das klappt nicht (aber ich versuche es so lange bis es funktioniert, dafür gibt es ja diverse Möglichkeiten dank den "World Wide Web" herauszufinden wie man einen Bumper ansteuer das in der verfassten .pdf kann mir dort nicht so weiter helfen )Zitat:
Zitat von radbruch
Mit freundlich Grüßen Michael K.
Also irgendwie bekomme ich es nicht hin die Bumper so zu programmieren das wen man sie drück das der RP6 zurück fährt .... =(
Leider sind die Akkus meiner Glaskugel nicht aufgeladen. Könnest du vielleicht das Problem genauer beschreiben und deinen Quellcode posten?
"bis um 4 uhr nachts durchgelesen..." Ich weiß schon, dass der RP6 "süchtig" machen kann, aber solltest du dir nicht auch mal eine Pause gönnen?
Aber ich möchte auch so gern das Programmieren können, verstehste das? Und mal einen Erfolg sehen, das ganze jahr schon war irgendwie alles nicht so gelaufen wie ich es mir vorgestellt hatte, und jetz will ich endlich mal etwas können was andere bei uns in der gegend nicht können :roll:
PS:Bin erst heute um 9:30 aufgestanden 8-[Code:#include "RP6RobotBaseLib.h"
void task_Bumpers(void)
int main(void)
{
initRobotBase();
setLEDs(0b001001);
powerON();
moveAtSpeed(50,50);
//getLeftSpeed(50,30)
//getRightSpeed(30,50)
startStopwatch1();
startStopwatch2();
while(true)
{
setLEDs(0b000001);
setLEDs(0b000010);
setLEDs(0b000100);
setLEDs(0b001000);
setLEDs(0b010000);
setLEDs(0b100000);
setLEDs(0b111111);
if(getStopwatch1() > 4000)
{
move(60, FWD, DIST_MM(300), true);
rotate(30, LEFT, 180, true);
move(60, FWD, DIST_MM(300), true);
rotate(30, LEFT, 90, true);
move(60,FWD,DIST_MM(200), true);
rotate(30, RIGHT, 45, true);
setStopwatch1(0);
}
if(getStopwatch2() > 200)
{
if(getBumperLeft() && getBumperRight()) escape();
else if(getBumperLeft())
escapeLeft(move(30, BWD, DIST_MM(100), true), rotate(20, RIGHT, 45, true));
else if(getBumperRight())
escapeRight(move(30, BWD, DIST_MM(100), true), rotate(20, LEFT, 45, true));
mSleep(50);
setStopwatch2(0);
}
task_motionControl();
task_Bumpers();
}
return 0;
}
Hallo
Ja, das kann ich schon verstehen. Aber verzwingen kann man es auch nicht. Hier mal eine fehler- und warnungsfrei kompilierbare Version deines Programms:
Obwohl ich meinen RP6 jetzt reaktiviert habe, kann ich es trotzdem noch nicht testen:Code:#include "RP6RobotBaseLib.h"
void bumpersStateChanged(void)
{
writeString_P("\nBumper Status hat sich geaendert:\n");
if(bumper_left)writeString_P(" - Linker Bumper gedrueckt!\n");
else writeString_P(" - Linker Bumper nicht gedrueckt.\n");
if(bumper_right) writeString_P(" - Rechter Bumper gedrueckt!\n");
else writeString_P(" - Rechter Bumper nicht gedrueckt.\n");
}
int main(void)
{
initRobotBase();
BUMPERS_setStateChangedHandler(bumpersStateChanged);
setLEDs(0b111111);
powerON();
moveAtSpeed(50,50);
//getLeftSpeed(50,30)
//getRightSpeed(30,50)
startStopwatch1();
startStopwatch2();
startStopwatch3();
setLEDs(0b000000);
while(true)
{
if(getStopwatch1() > 4000)
{
move(60, FWD, DIST_MM(300), true);
rotate(30, LEFT, 180, true);
move(60, FWD, DIST_MM(300), true);
rotate(30, LEFT, 90, true);
move(60,FWD,DIST_MM(200), true);
rotate(30, RIGHT, 45, true);
setStopwatch1(0);
}
if(getStopwatch2() > 300)
{
writeString_P("\nADC Lichtsensor Links: ");
writeInteger(adcLSL, DEC);
writeString_P("\nADC Lichtsensor Rechts: ");
writeInteger(adcLSL, DEC);
writeString_P("\nADC Akku: ");
writeInteger(adcBat, DEC);
writeChar('\n');
if(adcBat < 600) writeString_P("Warnung! Akku ist bald leer!\n");
setStopwatch2(0);
}
if(getStopwatch3() > 200)
{
if(getBumperLeft() && getBumperRight())
{
move(30, BWD, DIST_MM(100), true);
rotate(20, RIGHT, 180, true);
}
else if(getBumperLeft())
{
move(30, BWD, DIST_MM(100), true);
rotate(20, RIGHT, 45, true);
}
else if(getBumperRight())
{
move(30, BWD, DIST_MM(100), true);
rotate(20, LEFT, 45, true);
}
mSleep(50);
setStopwatch3(0);
}
task_RP6System(); // alle Tasks auf einmal
}
return 0;
}
Muss wohl erst die Akkus laden, weil sich der RP6 sofort resetet ;)Code:RP6Loader Terminal - type ".help" for command list!
[RP6BOOT]
[READY]
[READY]
ADC Lichtsensor Links: 135
ADC Lichtsensor Rechts: 135
ADC Akku: 524
Warnung! Akku ist bald leer!
ADC Lichtsensor Links: 133
ADC Lichtsensor Rechts: 133
ADC Akku: 527
Warnung! Akku ist bald leer!
[RP6BOOT]
[READY]
ADC Lichtsensor Links: 140
ADC Lichtsensor Rechts: 140
ADC Akku: 524
Warnung! Akku ist bald leer!
ADC Lichtsensor Links: 138
ADC Lichtsensor Rechts: 138
ADC Akku: 527
Warnung! Akku ist bald leer!
[RP6BOOT]
[READY]
Bumper Status hat sich geaendert:
- Linker Bumper nicht gedrueckt.
- Rechter Bumper gedrueckt!
[RP6BOOT]
[READY]
Gruß
mic
Hallo,
da ich einen Thread offen habe, frag ich einfach einmal hier nach.
Ob diese Aufkleber für den RP6 passen:
http://www.conrad.de/ce/de/product/1...LEBERN/2420181
Mfg Michi
Hallo
Obwohl das nicht in der Beschreibung erwähnt wird, enthält dieses Set auch die Codeaufkleber für den RP6:
http://www.conrad.de/ce/de/product/191346/
https://www.roboternetz.de/phpBB2/ze...=404960#404960
+folgender Beitrag von SlyD.
Gruß
mic