PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Vorstellung neues Projekt und Einsteigerfragen



Wheezle
05.09.2013, 12:54
Hallo zusammen,

ich habe mich gerade im Roboternetz angemeldet und muss sagen, dass ich es toll finde, dass wir so etwas im deutschsprachigen Raum haben.

Prima, dass sich so viele mit dem Thema Robotik beschäftigen.

Ich möchte jetzt auch einsteigen und habe mich schon mit einigem Material eingedeckt.

Der Roboter soll zunächst einfach durch die Gegend fahren können und vor Ort mit einer Kamera Livebilder übertragen. Steuern möchte ich das Ganze übers WLAN von einem beliebigen Gerät mit Webbrowser (Smartphone, Tablet, PC oä.) Später darf er dann gerne autonom losziehen ;-)

Die Zutaten:

• Raspberry Pi
• USB-WLan-Dongle
• Raspberry-Kamera
• SRF02 Ultraschall Entfernungssensor (als Kollisionswarner)
• Dagu 4WD Wild Thumper All-Terrain Chassis mit Greifer http://www.exp-tech.de/Roboter/UGV/Dagu-4WD-Wild-Thumper-mit-Greifer--schwarz-.html

• Dagu Wild Thumper Robot Controller (Arduino Kompatibel) http://www.exp-tech.de/Mainboards/Dagu-Wild-Thumper-Controller.html

Den RasPi habe ich eingerichtet und kann mich übers WLAN per Webbrowser und VNC oder SSH mit ihm verbinden.

Die Frage ist, wie es nun weitergeht. Leider ist der Robot Controler nur äußerst sparsam beschrieben. Wenn man den Beispielssketch vom Hersteller verwendet, kann man eine serielle Verbindung aufbauen und Kommandos und Abfragen verschicken. Beispiele solcher Kommandos bleibt er schuldig.

Hat Jemand zufällig Erfahrungen damit?

Der Pi ist ja ein ganz normaler Linux-Computer. Gibt es dafür schon spezielle Robotersteuerungssoftware?

Letztenendes soll der RasPi das Gehirn des Roboters werden und der Arduino-Controller die Hardware-nahen Sensoren und Aktoren bedienen.

Ich habe gerade ein paar zu viele Freiheitsgrade und weiß nicht so recht, wo anfangen ;-)

Bin für jeden Hinweis dankbar.

Viele Grüße
Markus

Wheezle
06.09.2013, 08:17
Hallo Zusammen,

vielleicht war meine Anfrage ein wenig zu weit gefasst.
Dann möchte ich es auf den Dagu Wild Thumper Robot Controller (Arduino Kompatibel) http://www.exp-tech.de/Mainboards/Dagu-Wild-Thumper-Controller.html einengen.

Setzt jemand diese Steuerung ein und kann mir ein paar Tipps geben?

• Wie funktioniert die Ladeautomatik?
• Mit wie viel mA kann ich die 5V-Klemme belasten?
• Wie sehen Steuerkommandos für die Serielle Schnittstelle aus?
• Kann man den Controller tatsächlich nur mit der uralten 0018 Arduino IDE programmieren?
• ...

Das wären ein paar konkrete Fragen, die mir zu dem Teil einfallen.

Viele Grüße
Markus

Wsk8
06.09.2013, 11:14
Hast du mal einen Blick ins Manual geworfen?? Dort findest du alle antworten.

mfg

Wheezle
13.09.2013, 10:24
Ja klar habe ich einen Blick ins Manual geworfen. Sogar in den Quellcode des Controlers.
Leider fehlt mir ein Beispiel für den Befehl den Motor zu steuern.


In der Anleitung steht folgendes: “HB” followed by 4 bytes of data sets the mode (0-2) and power (0-255) of each “H” bridge.

Wenn ich jetzt mit halber Kraft geradeaus fahren möchte, ist das dann:
HB 1 128 1 128
oder
HB11281128
oder
HB01 128 01 128
oder
HB
1
128
1
128
oder HB 1 1 128 128
???
Ich habe natürlich Einiges schon ausprobiert, aber mein Roboter tut keinen Mucks.
Da das auch viele andere Ursachen haben kann, ist das ein ziemliches Gestocher im Nebel.

Also falls jemand schon mal erfolgreich einen Befehl über die serielle Schnittstelle an die Motoren geschickt hat,
wäre ich für jeden Tipp dankbar.

Viele Grüße
Markus

radbruch
13.09.2013, 14:03
Hallo

Ich kenne die Steuerplatine nicht, aber “HB” followed by 4 bytes of data sets the mode (0-2) and power (0-255) of each “H” bridge.würde ich nicht so interpretieren. Mit 4 Bytes sind vermutlich nicht 4 ASCII-Ziffern gemeint sóndern 4 Werte von 0 bis 255:

HBCHR(0-2)CHR(0-255)chr(0-2)chr(0-255)

wobei CHR(x) für den Wert steht, den du sendest. 'A' ist 65, 'B' ist 66...

Gruß

mic

So wirds auch im Beispiel beschrieben:


// HB = "H" bridge data - next 4 bytes will be:
// left motor mode 0-2
// left motor PWM 0-255
// right motor mode 0-2
// right motor PWM 0-255



// --------------------------------------------------------- Code to drive dual "H" bridges --------------------------------------

if (Charged==1) // Only power motors if battery voltage is good
{
if ((millis()-leftoverload)>overloadtime)
{
switch (Leftmode) // if left motor has not overloaded recently
{
case 2: // left motor forward
analogWrite(LmotorA,0);
analogWrite(LmotorB,LeftPWM);
break;

case 1: // left motor brake
analogWrite(LmotorA,LeftPWM);
analogWrite(LmotorB,LeftPWM);
break;

case 0: // left motor reverse
analogWrite(LmotorA,LeftPWM);
analogWrite(LmotorB,0);
break;
}
}
if ((millis()-rightoverload)>overloadtime)
{
switch (Rightmode) // if right motor has not overloaded recently
{
case 2: // right motor forward
analogWrite(RmotorA,0);
analogWrite(RmotorB,RightPWM);
break;

case 1: // right motor brake
analogWrite(RmotorA,RightPWM);
analogWrite(RmotorB,RightPWM);
break;

case 0: // right motor reverse
analogWrite(RmotorA,RightPWM);
analogWrite(RmotorB,0);
break;
}
}
}
else // Battery is flat
{
analogWrite (LmotorA,0); // turn off motors
analogWrite (LmotorB,0); // turn off motors
analogWrite (RmotorA,0); // turn off motors
analogWrite (RmotorB,0); // turn off motors
}
}
}

Wheezle
16.09.2013, 10:30
Hallo radbruch,

danke für deinen Beitrag!

Vielleicht stelle ich mich hier auch ein wenig begriffsstutzig an, aber
HBCHR(0-2)CHR(0-255)chr(0-2)chr(0-255)
ist mir immer noch zu cryptisch ;-)
Mal ganz konkret:
Ich verbinde den Controller via USB mit meinem PC und starte den seriellen Monitor meiner Arduino IDE.
Was muss ich dort eintippen, wenn ich den linken und den rechten Motor mit halber Geschwindigkeit nach vorne fahren lassen will?

Viele Grüße
Markus

tbasnoopy
16.09.2013, 11:45
gugst du google was chr macht weist du was radbruch meint.

http://php.net/manual/de/function.chr.php

Wheezle
16.09.2013, 12:25
Das ist ja alles schön und gut. Ich möchte aber eigentlich keine Rätsel lösen oder mir ein Skript in PHP schreiben.
Alles was ich möchte, ist den richtigen Befehl, der das Vehikel auf die Reise schickt.

Hat denn keiner diesen Controler im Gebrauch und kann mir ein paar Tipps geben?

tbasnoopy
16.09.2013, 13:23
Ich glaube du willst alles vorgekaut haben. Die Loesung steht naemlich mehrfach schon da.

Und nein, ich will nicht das du ein PHP Script schreibst sondern das du dir die funktion anschaust; versuchst zu verstehen; und selber umsetzt.

Uebrigens bringt es dir garnichts wenn ich irgendwelche ASCII Sonderzeichen hier reintippe. Denn die kannst du eh nicht copy-pasten ;-P

HannoHupmann
16.09.2013, 13:26
@Wheezle Vermutlich musst du dich selber einarbeiten.
Das ist übrigens eine der Hauptaufgaben beim Hobby- Roboterbauen, dass man sich in unbekannte Aufgabenstellungen einarbeiten muss. Zwar gibt es schon sehr viel Tutorials und Anleitungen im Internet, aber da man immer einen eigenen sehr speziellen Fall hat, muss man eben selber suchen oder ausprobieren.

Jedesmal wenn ich einen neuen i2c Baustein in meinen Roboter einbaue muss ich mich in die Ansteuerung einarbeiten, das kann dann schon mal 2 bis 5 Tage dauern. Erwarte bitte nicht, dass dir hier im Forum immer eine schmackhafte Lösung präsentiert wird, denn nur in den seltensten Fällen hat man das Glück, dass jemand gerade das gleiche Problem gelöst hat.

Gerade bei Neulingen hat man als alter Hase häufig das Gefühl, dass sie erwarten, dass ihnen nun jeder helfen muss und ihre Probleme lösen soll. Alte Hasen helfen gerne, wenn sie die Lösung wissen, selten arbeiten sie sich ein, dafür haben auch alte Hasen zu viele eigene Projekte.

radbruch
16.09.2013, 13:28
Hallo

Du benötigst ein Terminalprogramm das nicht nur ASCII-Eingabe unterstützt, z.B. HTerm:

http://www.der-hammer.info/terminal/index.htm

http://www.mikrocontroller.net/topic/96619

Gruß

mic

Wheezle
16.09.2013, 14:01
Hallo Leute,

ihr habt ja recht. Ich war schon kurz davor meinen letzten Beitrag wieder zu löschen, weil er mir im Nachhinein betrachtet undankbar erscheint. Nichts für ungut. So ein Forum verleitet einen auch zu einer gewissen Bequemlichkeit. Man fragt einfach und schon bekommt man die Lösung auf dem Silbertablett ;-)

So war das nicht gemeint. Es ist nur so, dass ich mit meinem Roboterprojekt ganz am Anfang stehe und da möchte man natürlich möglichst schnell an solchen vermeintlichen Lappalien vorbeikommen und endlich sehen, dass sich etwas bewegt.

@mic: Danke für den Tipp mit den Terminalprogrammen. Das probiere ich zuhause gleich aus.

Viele Grüße
Markus

HannoHupmann
16.09.2013, 16:11
Diese Lappalien sind meistens sehr sadistische und es macht ihnen außerordentliche Freude einen sehr lange zu beschäftigen. Wenn man dann die Lösung gefunden hat, eröffnet sich einem, dass es wirklich einfach war. Das Tolle daran ist: Man hat dann eine Menge gelernt und beim nächsten Mal gehts schneller.

Ich wünsch dir viel Erfolg und Spass im Forum. O:)

oderlachs
16.09.2013, 17:45
Da ich nebenbei auch noch mit einem Raspi umherhantiere, kann ich sagen man sollte sich in entsprechenden RaspberryPi-Foren dazu Auskunft holen, bzw. auch mal ein Grundlagenbuch für den Raspi kaufen. Andererseits sind in vielen anderen Foren bzw. Blogs vielmehr über die Verwendung des Raspi zu finden als wie hier.
Die Zeit für ein wenig Googlen sollte jeder aufbringen können, kleine Probleme dann können immer noch hier im Forum gelöst werden.
Zum Anderen bin ich auch aus den Ausführungen nicht ganz schlau geworden... Zumindest habe ich den Eindruck das noch ne Menge Grundlagen bei der Raspi IO-programmierung fehlen, da sollte man mit einfachen LEDs beginnen dann gehts später schon mal mit PWM usw einfacher daher...

Ausserdem muss man ja das verwendete OS dazu bewegen die Befehle auszuführen....

Gruss

Oderlachs