serielle Kommunikation Arduino Pro Mini -> RPi Uart

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Hallo zusammen,

    ich habe mich nur seit 10h durch das Internet gewühlt und unzählige Beiträge durchforstet. Leider klappt es bis jetzt immer noch nicht. Also suche ich mir bei euch Hilfe

    und hoffe auf eine schnelle Lösung, da ich es zeitnah brauche.

    Ich habe einen RPi 3b+ mit Raspbian und versuche die serielle Schnittstelle zu aktivieren.

    Ich habe am Pro Mini (3,3v) ein Accelerometer/Beschleunigungsmesser (Sketch mittels IDE lebt und läuft). Über IDE und seriellen Monitor bekomme ich die Daten per USB.

    Nun habe ich den USB zu TTL Konverter entfernt und wollt den Arduino an den RPi anschließen.

    Ich habe alle möglichen Befehle probiert. Konsole ausgeschaltet. Zu finden sollte es unter ttyS0 sein, da AMA0 Bluetooth ist.

    Minicom habe ich bereits installiert. Bekomme aber keine Daten raus.

    Verkabelung wie folgt:

    RPi TXD0 -> Pro Mini RXT

    RXD0 -> TX0

    3,3v -> VCC

    GND -> GND

    Soweit ich gelesen habe völlig ausreichend.


    Nun weiß ich leider nicht weiter. Ich habe Raspbian vs9 drauf.

    Ich hoffe das reicht an Infos für eine mögliche Lösung.

    Mit besten Grüßen,

    ossihmz

  • serielle Kommunikation Arduino Pro Mini -> RPi Uart? Schau mal ob du hier fündig wirst!

  • Ich hoffe das reicht an Infos für eine mögliche Lösung.

    Nein, bitte zeichne DEINE Verkabelung genau ab oder fotografiere sie erkennbar. Dann stellst Du das Bild bitte hier rein.

    Wird der Arduino vom RPi mit Strom versorgt? Was hängt noch am Pi?

    PS: und hoffe auf eine schnelle Lösung, da ich es zeitnah brauche. ist absolut keine gute Idee. Oder müssen die Hausaufgaben fertig werden?;)

  • Das ist mein jetziger Aufbau. Ich habe wieder abgespeckt, um das Problemfeld minimieren zu können und diesen Fehler möglicherweise leichter finden zu können.


    Anschlüsse am Arduino

    Tx orange

    Rx geld

    GND braun

    VCC rot

    Den USB TTL Konverter habe ich entfernt. Der weitere Sensor ( Accelerometer ) soll die Daten an den Arduino senden und anschließend seriell an den Raspby.

    Die 3 Kabel oberhalb des Breadboardadapters des RPis führen zum Arduino und das einzelne rote vom 3,3v Pin.

    Die weiteren 3 unten sind VCC, GND und Data für 2 Temperatursensoren, die ich ebenfalls aus dem Bild genommen habe.

    Letztendlich sind es Hausaufgaben. Besser eine Bachelorarbeit. Die gesamte Programmierumgebung mit Python habe ich bereits fertig, scheitere nun aber daran, Uart einzurichten.

    Deshalb ist meine Zeit realtiv knapp bemessen.

    Ich arbeite das erste Mal sehr intensiv mit der Technik bzw dem Raspberry. Ich ticker mich durchs Netz und sehe Kommandos über Kommandos, habe aber nicht wirklich die Zeit überall im Hintergrund zu forschen und da innerhalb von 2 Monaten komplett einzusteigen.

    Deshalb suche ich mir dafür jetzt Unterstützung. :)


    EDIT:

    Ich habe mit diesem Beitrag angefangen:

    RS232 Kommunikation Arduino Pro Mini < - > Raspberry Pi

    Allerdings scheint bei mir schon die /etc/inittab durch /etc/systemd ersetzt worden zu sein. Allerdings bringt auch das mich nicht großartig weiter mit dem was ich zum Thema finde.

  • Hast du mal einen Loopback-Test mit dem Pi gemacht? Rx und Tx verbinden und schauen, ob du was Senden und somit zugleich wieder empfangen kannst. Das schließt Kabelprobleme und falsche Einstellungen der Parameter erstmal aus.

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • falsche Einstellungen der Parameter erstmal aus.

    Na das eher bedingt, aber ein guter Test ists allemal.

    ossihmz : mach das Verbinden am Ende der Kabel, um Kontaktprobleme mit Breadbord/Kabeln auszuschließen.

    Du bist sicher, dass der Ardunio auch tatsächlich läuft und Daten seriell überträgt?

    Die serielle Konsole des Pi hast Du wie ausgeschaltet?

    Die Portgeschwindigkeit / Daten-Stopbits usw. stimmen überein?

  • Hast du mal einen Loopback-Test mit dem Pi gemacht? Rx und Tx verbinden und schauen, ob du was Senden und somit zugleich wieder empfangen kannst. Das schließt Kabelprobleme und falsche Einstellungen der Parameter erstmal aus.

    Ich habe es versucht. Den Befehl weiß ich nicht mehr genau. minicom -b usw .. dort stand man könne dies derart anwenden, dass die Daten, die ich die Konsole eingebe auch direkt wieder zurückgegeben werden. Wie ein Echo praktisch. Hat leider nicht funktioniert.


    mach das Verbinden am Ende der Kabel, um Kontaktprobleme mit Breadbord/Kabeln auszuschließen.

    Du bist sicher, dass der Ardunio auch tatsächlich läuft und Daten seriell überträgt?

    Die serielle Konsole des Pi hast Du wie ausgeschaltet?

    Die Portgeschwindigkeit / Daten-Stopbits usw. stimmen überein?

    Ich habe als ich die Einstellungen über cmd vorgenommen habe, nur den Raspbi und die schon funktionierenden Temperatursensoren angeschlossen. Nur wenn ich das dann testen wollte, habe ich die nötigen 4 Kabel verbunden.

    Ich habe beim Arduino und Raspbi 9600 eingestellt.

    Der Arduino läuft. Wenn ich ihn nun mit meinem Laptop verbinde, werden direkt Daten im Seriellen Monitor widergegeben.

    Ausgeschaltet habe ich die Konsole via sudo nano /boot/cmdline.txt und dort console=serial0, 115200 gelöscht.

    Ich kann gerne ein paar Befehle eingeben und das Ergebnis screenen, wenn das hilft. Ich schließe gleich nochmal den Arduino an den Laptop an und schaue, ob ich die Daten über ein Putty bekomme.

  • Sorry Chef. Hatte den Link eingefügt und die Vorschau erstellt. Wurde aber nicht angezeigt.

    Zum Thema. Ich habe ein weiteres Thema woanders gefunden.

    Demnach folgendes:

    sudo stty 9600 -F /dev/ttyS0 (vorsichtshalber)

    echo Test >> /dev/ttyS0

    ***/dev/ttyS0: keine Berechtigung***

    sudo chmod a+rw /dev/ttyS0

    echo Test >> /dev/ttyS0

    echo Hallo

    ***Hallo***

    Wenn ich nur Hallo eingebe gibt er mir eine 0 aus. Sonst gab er ja dann immer einen Fehler, bliblablub nicht gefunden..

    Scheint also zu funktioniert?

    Nun wollte ich es versuchen mit

    minicom -D /dev/ttyS0

    Hier gibt er mir raus, dass es einen Fehler gibt beim Öffnen aufgrund fehlender Berechtigung.

    Nun habe ich Pi zu den Gruppen tty, dialout und netdev hinzugefügt. Keine Besserung. Immernoch kein Zugriff.

    Wie komme ich da ran? Finde nichts, was mir auf die Sprünge hilft.

  • Sorry Chef. Hatte den Link eingefügt und die Vorschau erstellt. Wurde aber nicht angezeigt.

    ist normal, du sollst die Bilder hier hochladen

    Links irgendwohin sind ungern gesehen, wenn das Bild weg ist ist der ganze Thread unbrauchbar.

    Du kannst es auch noch nachreichen die Beiträge kann man editieren

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Ich habe alle möglichen Befehle probiert. Konsole ausgeschaltet. Zu finden sollte es unter ttyS0 sein, da AMA0 Bluetooth ist.

    Beim alten Pi 3B war die Serielle kaputt, so dass man Bluetooth abschalten und AMA0 wieder auf die GPIOs umbiegen musste, um sie zu nutzen.

    Wurde das beim Pi 3B+ gefixed? Sonst könnte das der Grund sein. Die ttyS0 läuft dann in Software mit dem (schwankenden) CPU Takt und damit springt die Baudrate. Was bei einem Loopback nicht unbedingt auffällt, denn der Raspi empfängt mit der gleichen falschen Baudrate, mit der er sendet. Aber mit dem Arduino kann er dann nicht verbinden.

  • Es scheint jetzt zu laufen. Sage ich vorsichtig.

    Ich habe minicom -s gestartet. Den Pfad von tty8 auf ttyS0 geändert und die Baudrate stand hier auch noch bei 115200. Gewechselt auf 9600.

    Hatte jetzt erstmal nur ein Probesketch drauf. Der kommt aber an. Mit kleinen Schönheitsfehlern. Aber ich denke, das ist nur ein kleines Problem.


    Ich editiere den Beitrag gleich nochmal und hänge Bilder mit an. Vielleicht weiß einer sofort wonach ich schauen muss . :angel:

    Happy :saint:

    Ich danke euch auf jeden fall schonmal für eure Mühe :danke_ATDE:

    @Scharlih Bluetooth liegt auf AMA0. Das haben sie umgemünzt und nutzen musste ich nun ttyS0


    EDIT:

    Im Anhang steht nun die Ausgabe. Auf dem Arduino befindet sich nun mein Programm.

    Ausgabe sollten sein:

    Beschleunigung in X, Y und Z nacheinander mit einem Leerzeichen.

    Allerdings wandern die Werte aus dem Bild.

    Die Werte, die es haben sollte liegen um die 300. Wahrscheinlich vergesse ich gerade etwas, aber woran könnte das liegen?

  • Beim alten Pi 3B war die Serielle kaputt, so dass man Bluetooth abschalten und AMA0 wieder auf die GPIOs umbiegen musste, um sie zu nutzen.

    Sorry, aber woher hast Du denn den Unsinn?

    Die Hardware, die vorher /dev/ttyAMA0 bediente, wurde für BT verwendet, deshalb musste man BT deaktivieren, wenn man unbedingt /dev/ttyAMA0 verwenden wollte.

    War das nicht unbedingt nötig oder brauchte man BT, dann konnte man einfach /dev/ttyS0 stattdessen nehmen (siehe z.B. auch hier -> Warum sendet die serielle Schnittstelle meines Raspi wirre Zeichen? ).

    cu,

    -ds-

  • dann konnte man einfach /dev/ttyS0 stattdessen nehmen

    Beim Pi 3B ist ttyS0 per Software realisiert und hängt von der Frequenz ab. Damit war sie nicht benutzbar. Hätte sich wohl kaum jemand die Mühe gemacht, Bluetooth abzuschalten und den AMA0 wieder auf die GPIOs zu biegen, wenn ttyS0 funktioniert hätte. (https://frillip.com/raspberry-pi-3…ate-workaround/)

    Später gabs dann den Vorschlag, die core Frequenz fest auf 250MHz zu setzen, damit die Baudrate stabil bleibt.

    Da der 3B+ aber einige Hardwareänderungen hat wäre halt mal interessant, ob sie die ttyS0 gefixed haben oder ob die nur zufällig jetzt funktioniert und bei Laständerung der CPU und damit Änderung der Frequenz wieder Fehler bringt.

  • Ähm, kurz mal für mich, der ich noch nie mit dem seriellen Anschluss vom Pi gearbeitet habe... (Habs aber demnächst mal vor.)

    Wollt ihr damit sagen, die haben einen Pi auf den Markt gebracht, bei dem generell die serielle Schnittstelle nicht funktioniert?

    Wie ist es mit einem USB-TTL-Adapter - das geht doch sicher ohne Probleme, oder?

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • Wie ist es mit einem USB-TTL-Adapter - das geht doch sicher ohne Probleme, oder?

    geht super, ich habe selber einige in Verwendung, spart alle Pegelanpassungen zu 3,3V (von 5V)

    Der PI kann sogar die IDE vom Arduino verwenden zum Programmieren und per Serial mit dem PI Interagieren.

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • bei dem generell die serielle Schnittstelle nicht funktioniert?

    Doch geht schon, man muss sie halt entweder umbiegen und hat dann kein Bluetooth - oder die Core-Frequenz festsetzen. War halt am Anfang blöd, weil ssh auch über die ttyS0 lief und das funktionierte dann nur sporadisch, wenn die CPU Frequenz gerade mal passte. Und die Leute haben sich reihenweise gewundert, warum sie nicht mit ssh über den uart auf den Pi kommen. Inzwischen ist ssh aber standardmäßig eh abgestellt.

    Ich hab meine Heizung seit 2 Jahren per Pegelwandler am Pi hängen und das läuft.

    Wie ist es mit einem USB-TTL-Adapter - das geht doch sicher ohne Probleme, oder?

    Der erzeugt seinen eigenen Takt. Braucht halt zusätzlich Strom. Und ich hatte auch schon Wandler die meinten, sie müssten sich nach ein paar Stunden mal schlafenlegen. Auch blöd.

  • Beim Pi 3B ist ttyS0 per Software realisiert und hängt von der Frequenz ab.

    Sorry, aber das ist UART1 ... ganz normaler Hardware UART ( -> https://www.raspberrypi.org/documentation/…uration/uart.md )

    Das Problem mit der Frequenzabhängigkeit ist mir bekannt, allerdings ist mir persönlich bisher noch kein Fall untergekommen, bei dem die Genauigkeit nicht ausreichte.

    Im Netz steht eine Menge ... u.a. auch eine Menge Unsinn und eine Menge an durch "Flüsterpost" weitergegebene Informationen.

    Wie gesagt ... ich habe noch keinen konkreten Fall real gesehen ... Du?

    //EDIT:

    weil ssh auch über die ttyS0 lief und das funktionierte dann nur sporadisch

    ähm ... Du nutzt ssh via UART?

    cu,

    -ds-

  • Also, jetzt bin ich ncht viel schaluer als vorher... ich kann mir echt nicht vorstellen, dass die einen Pi konstruieren, bei dem die serielle Schnittstelle erst dreimal durch die Brust ins Auge umkonfiguriert werden muss, bevor man sie verwenden kann.
    Na, ich würd dann mal eher einen USB-TTL nehmen. Die paar mA werden mich nicht verarmen lassen - und je nach Modell wird es dann sicher auch zuverlässig laufen.

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • Na, ich würd dann mal eher einen USB-TTL nehmen

    Da bist Du auf alle Fälle auf der sicheren Seite.

    Und wenn Du einen 3V3 Arduino, einen ESP oder ein anderes 3V3 Teil verbinden willst, dann halt z.B. ein PL2303 Kabel.

    //EDIT: ich würde ja fast wetten, dass die meisten Probleme mit dem mini-UART durch den komischen Kauz vor dem Bildschirm selbst verursacht sind. Ist immer klasse, wenn man es auf andere schieben kann ;)

    cu,

    -ds-

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!