Raspberry Pi an J4

Erweiterungen zum c't-Bot

Moderator: Moderatoren Team

caramba
Friends of Marvin
Friends of Marvin
Beiträge: 8
Registriert: 24 Nov 2012, 14:59

Raspberry Pi an J4

Beitrag von caramba » 07 Dez 2012, 07:23

Hallo,

ich habe hier noch einen Raspberry Pi B übrig und möchte sein GPIO an J4 anschließen.
Wäre folgende Schaltung richtig http://www.rn-wissen.de/index.php/Raspberry_PI:_GPIO ?

- Kann mein Mega1284p nicht auch 3,3 V Pegel und würden dann nicht die unteren beiden Widerstände reichen?

- Ich würde gerne die Bot-Funktionen über den Pi aufrufen. Wie mache ich das? Ist da schon ein Protokoll vorgesehen/vorhanden?

Danke und viele Grüße!

marvin
Wiki Master
Wiki Master
Beiträge: 440
Registriert: 18 Jan 2006, 16:21
Wohnort: Berlin
Kontaktdaten:

Re: Raspberry Pi an J4

Beitrag von marvin » 07 Dez 2012, 20:10

Hi,
aha noch ein Raspberry Pi Nutzer. Ich habe auch vor, das RasPi board seriell am ct-Bot anzubinden. Die Pegelwandlung ist wohl unumgänglich. Zwar läuft der ATmega1284 auch mit 3.3V, aber das ct-Bot Design ist nunmal für 5V ausgelegt. Die Sharp Sensoren brauchen 5V, ebenso der Motor Treiber. Auch die Vorwiderstände für die LEDs und IR LEDs sind für 5V dimensioniert.
Die Schaltung aus dem Roboternetz kann man so verwenden. Es ginge aber auch einfacher mit einem einzelnen FET statt der 2 Transistoren.
Ich werde den 4fach Level Shifter von Adafruit verwenden.
Das bestehende ct-Bot Protokoll sollte alles bieten was man braucht um den ct-Bot vom RasPi aus zu steuern und Sensor Werte abzufragen.
Wie willst du den RasPi programmieren? In C, Python oder...

Grüße Peter

tobi
Friends of Gort
Friends of Gort
Beiträge: 50
Registriert: 28 Apr 2011, 16:45
Wohnort: Pforzheim

Re: Raspberry Pi an J4

Beitrag von tobi » 08 Dez 2012, 02:28

Hi,
caramba hat geschrieben:Hallo,

ich habe hier noch einen Raspberry Pi B übrig und möchte sein GPIO an J4 anschließen.
Wäre folgende Schaltung richtig http://www.rn-wissen.de/index.php/Raspberry_PI:_GPIO ?

- Kann mein Mega1284p nicht auch 3,3 V Pegel und würden dann nicht die unteren beiden Widerstände reichen?

- Ich würde gerne die Bot-Funktionen über den Pi aufrufen. Wie mache ich das? Ist da schon ein Protokoll vorgesehen/vorhanden?

Danke und viele Grüße!
ja, laut Datenblatt versteht der ATMega1284p auch wenn er mit 5V betrieben wird (wie beim ct-Bot) 3.3V Signale. Man braucht also nur auf der Empfangsseite (RX) des RPi die beiden Widerstände als Spannungsteiler. Bei der SD-Kartenanbindung wird das beim ct-Bot übrigens genauso gemacht, die Karten laufen auch mit 3.3V.

Als Protokoll würde ich auch das ct-Bot zu ct-Sim Protokoll verwenden, da gibt es glaube ich auch schon was, um von nem Linux den Bot zu steuern.

VG
Tobi

marvin
Wiki Master
Wiki Master
Beiträge: 440
Registriert: 18 Jan 2006, 16:21
Wohnort: Berlin
Kontaktdaten:

Re: Raspberry Pi an J4

Beitrag von marvin » 08 Dez 2012, 12:16

Hi,
upps, Frage falsch verstanden. Ich dachte du wolltest den ATmega mit 3.3V versorgen. Tobi hat natürlich recht, der Spannungsteiler sollte reichen.

Eine Sache noch. Die Stromversorgung für das RasPi board. 5V direkt vom ct-Bot abzuzwacken wird der Spannungsregler nicht mitmachen. Ich überlege den ct-Bot mit einem 7.2V LiPo Akku oder 6xAA Mignon oder 2xUltraFire zu versorgen und einen Schaltwandler zu verwenden. Einen Schaltwandler hätte ich schon, der braucht aber mindestens 6.5V.

Grüße Peter

caramba
Friends of Marvin
Friends of Marvin
Beiträge: 8
Registriert: 24 Nov 2012, 14:59

Re: Raspberry Pi an J4

Beitrag von caramba » 08 Dez 2012, 20:55

So, der Pi ist per Spannungsteiler über P1 mit dem J4 des Bots verbunden. Mein serielles Device ist /dev/ttyAMA0 .
Bei Raspbian muss man in /boot/cmdline.txt den Eintrag in "dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait" ändern und in /etc/inittab den Eintrag 2:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100 auskommentieren. Dann erscheint init.c(128) - INFO - Hallo Welt! usw. (Man muss das BOT_2_SIM in der bot.h rausnehmen, denn sonst geht kein ASCII übers Device).

Werde wohl erstmal mit Java starten, da es im Sim eine Implementierung des Protokolls für Remote-Calls gibt. (So der Plan ... ich hoffe, dass der Java-Kram auf dem Pi läuft; die rxtx-Libs machen mir Sorgen) Oder hat jemand eine Python oder Perl Lib dafür?

Als Stromversorgung dachte ich an sowas "TrekStor Power-Bank 2200". Könnt ihr eine Batterie empfehlen? Ich möchte noch eine Kamera (per USB solange es diese Raspberry Camera noch nicht gibt) anschließen.

Grüße!

marvin
Wiki Master
Wiki Master
Beiträge: 440
Registriert: 18 Jan 2006, 16:21
Wohnort: Berlin
Kontaktdaten:

Re: Raspberry Pi an J4

Beitrag von marvin » 09 Dez 2012, 00:54

Das sieht doch schon mal ganz gut aus. Gute Idee mit dem Power Pack. So was liegt bei mir auch noch herum. Ansonsten habe ich noch vor, eine Web Cam (MS LifeCam HD6000) und einen WiFi Dongle anzuschliessen. Hoffe das klappt ohne powered USB Hub.

Ich werde wohl mit Python anfangen. Keine Ahnung wie performant Java auf dem RasPi ist und ob die RXTX Lib darauf läuft.

Grüße Peter

caramba
Friends of Marvin
Friends of Marvin
Beiträge: 8
Registriert: 24 Nov 2012, 14:59

Re: Raspberry Pi an J4

Beitrag von caramba » 09 Dez 2012, 18:14

An der Python-Anbindung habe ich Interesse! Wann hast Du sie fertig [-o< ? Solage bleibe ich bei Java.

Habe den Edimax EW-78911un und eine Philips SPC520NC an dem USB-Hub. Das läuft mit einem Netzteil stabil.

Kann jemand einen USB Powerpack empfehlen. Ich denke, dass 1000mAh ca eine Stunde reichen oder liege ich da falsch? Dann würde mir so ein 2200mAh erstmal reichen.

eax
Friends of Robby
Friends of Robby
Beiträge: 761
Registriert: 18 Jan 2006, 16:16
Wohnort: Karlsruhe

Re: Raspberry Pi an J4

Beitrag von eax » 09 Dez 2012, 19:24

Hallo zusammen,
marvin hat geschrieben:Eine Sache noch. Die Stromversorgung für das RasPi board. 5V direkt vom ct-Bot abzuzwacken wird der Spannungsregler nicht mitmachen. Ich überlege den ct-Bot mit einem 7.2V LiPo Akku oder 6xAA Mignon oder 2xUltraFire zu versorgen und einen Schaltwandler zu verwenden. Einen Schaltwandler hätte ich schon, der braucht aber mindestens 6.5V.
das Problem hatte ich auch, insbesondere, weil ich für das Linux-Board kein zweites Akku-Pack haben wollte (Montage wird schwierig, wenn man aus guten Gründen den Schwerpunkt des Bots nicht zu weit nach oben verlagern will).
Daher habe ich ein 5Ah Akku-Pack aus vier Li-Ion 18650-Zellen gebastelt, das gerade noch in das Batteriefach des Bots passt. Beachten muss man (neben einer Schutzschaltung!) bei Li-Ion-Akkus aber, dass die max. Spannung mit 8.2V deutlich höher liegt, als die Nennspannung der Motoren, daher sollten man das maximale PWM-Puls-Pause-Verhältnis im Bot-Code anpassen! Den Servo-Vorwiderstand evtl. auch...
Die 5V für Linux-Board und Bot-Elektronik erzeugt ein ptr08060w Schaltregler, der mit 6V Eingangsspannung auskommt, was gut zur Entladeschlussspannung der Akkus passt. Um den Ladestand der Akkus zu überwachen und anzuzeigen, habe ich außerdem einen ATmega88 mit auf die Platine gepackt, der Spannung und Strom messen kann und ein paar LEDs zur Anzeige. Sinnvoll wäre auch noch, die Akkuspannung an den Bot zu melden, um u.a. das maximale PWM Puls-Pause-Verhältnis für die Motoren entsprechend anzupassen.

Grüße,
Timo

tobi
Friends of Gort
Friends of Gort
Beiträge: 50
Registriert: 28 Apr 2011, 16:45
Wohnort: Pforzheim

Re: Raspberry Pi an J4

Beitrag von tobi » 30 Dez 2012, 21:56

Hallo zusammen,

gibt es bei euch schon was neues, was die Steuerung / den Code auf dem RPi angeht?
Ich hab letztens auf der ct-Bot Liste gelesen, dass der offizielle (high-level?) Code jetzt auch den RPi unterszützt, hab aber das Prinzip noch nicht so ganz verstanden :roll:

VG Tobi

marvin
Wiki Master
Wiki Master
Beiträge: 440
Registriert: 18 Jan 2006, 16:21
Wohnort: Berlin
Kontaktdaten:

Re: Raspberry Pi an J4

Beitrag von marvin » 31 Dez 2012, 00:34

Hi Tobi,
ich hatte mir den Devel Zweig heruntergeladen und versucht für den Raspi zu übersetzen. Hat leider nicht nicht geklappt unter Windows mit cygwin Cross Compiler. Die C Files liessen sich übersetzen, Der Assembler Teil (1st_init.S) leider nicht. Werde es mal unter Linux probieren.
So wie ich ganze verstanden habe soll der High Level Teil wie das Mapping auf dem Raspi laufen, die Low Level Funktionen auf dem ct-Bot. Kommunkation über das vorhandene Steuerprotokoll.

Grüße Peter

tobi
Friends of Gort
Friends of Gort
Beiträge: 50
Registriert: 28 Apr 2011, 16:45
Wohnort: Pforzheim

Re: Raspberry Pi an J4

Beitrag von tobi » 02 Jan 2013, 03:31

Hi Peter,

danke für deine Antwort! :)
marvin hat geschrieben:ich hatte mir den Devel Zweig heruntergeladen und versucht für den Raspi zu übersetzen. Hat leider nicht nicht geklappt unter Windows mit cygwin Cross Compiler. Die C Files liessen sich übersetzen, Der Assembler Teil (1st_init.S) leider nicht.
Also das Problem hatte ich nicht, ich musste nur in Eclipse in den Pfad-Einstellungen das cygwin-bin Verzeichnis als erstes angeben, damit make von cygwin benutzt wird und nicht das von msys. Und ich muss immer make->clean ausführen, aber ansonsten compiliert der Code fehlerfrei und lässt sich vom RPi auch starten und mit dem Simulator auf dem PC verbinden.
Welchen Cross-Compiler hast du denn verwendet?

Ich weiß nur noch nicht so recht, wie ich jetzt weitermachen muss, will ja nicht simulierte Bots auf dem RPi starten :roll:

Grüße, Tobi

marvin
Wiki Master
Wiki Master
Beiträge: 440
Registriert: 18 Jan 2006, 16:21
Wohnort: Berlin
Kontaktdaten:

Re: Raspberry Pi an J4

Beitrag von marvin » 04 Jan 2013, 17:40

Hi Tobi,

ich habe die Cygwin Croos Compile Suite von NOT Dexter 's Lab genommen. Hattest du an den Projekt Einstellungen sonst etwas geändert? Ich hatte den Tool Chain Editor von Linux auf Cygwin GCC umgestellt. Danach waren Compiler/Linker Flags und Eisntellungen weg. Hatte dann versuch diese manuell zu übernehmen.
tobi hat geschrieben:Ich weiß nur noch nicht so recht, wie ich jetzt weitermachen muss, will ja nicht simulierte Bots auf dem RPi starten :roll:
Dasselbe Problem hier. Ich denke da muß man selber ran und das Main Programm für die Pi Seite umschreiben. Ich werde es erst mal mit Python probieren.

Grüße Peter

tobi
Friends of Gort
Friends of Gort
Beiträge: 50
Registriert: 28 Apr 2011, 16:45
Wohnort: Pforzheim

Re: Raspberry Pi an J4

Beitrag von tobi » 04 Jan 2013, 22:15

Hi Peter,

dieselbe Toolchain hab ich auch benutzt, scheint auch die einzig brauchbare für RPi unter Windows zu sein.
Ich hatte an den Projekteinstellungen nichts wegen der Toolchain geändert, sondern nur für Compiler, Assembler und Linker jweiles den Namen vom cross-gcc eingetragen, weil der bei der o.g. Toolchain anders heißt.
Alle anderen Einstellungen inkl. der Flags, include-Pfade, Libs usw. habe ich nicht angerührt.

Habe jetzt außerdem erfahren, dass man die Kommunikation mit dem ATmega leicht ohne eigene Anpassungen des main-Programms hinbekommt, indem man den Datenverkehr einfach mit socat von der TCP-Verbindung auf die serielle Schnittstelle des RPi weiterleitet. Dann braucht man erstmal keine seriell-Kommunikation zu implementieren, sondern kann einfach den vorhandenen Code für TCP nutzen.

Grüße, Tobi

marvin
Wiki Master
Wiki Master
Beiträge: 440
Registriert: 18 Jan 2006, 16:21
Wohnort: Berlin
Kontaktdaten:

Re: Raspberry Pi an J4

Beitrag von marvin » 07 Jan 2013, 19:52

Hi Tobi,
ich komme einfach nicht weiter. Könntest du deine .cproject Datei hochladen. damit ich vergleichen kann, woran es bei mir liegt?
Vielen Dank und Grüße
Peter

tobi
Friends of Gort
Friends of Gort
Beiträge: 50
Registriert: 28 Apr 2011, 16:45
Wohnort: Pforzheim

Re: Raspberry Pi an J4

Beitrag von tobi » 07 Jan 2013, 23:34

Hi Peter,

hier meine .cproject Datei.

VG Tobi
Dateianhänge
cproject.zip
.cproject Datei für RPi
(11.15 KiB) 407-mal heruntergeladen

Antworten