Neu: Die KI-Firewall überwacht die gesamte Plattform und erklärt jeden Vorfall in einfachen Worten. So funktioniert es

OpenMV-Kamera sendet Kappenzählungen per UART an einen alten Intel Edison: es kommt nichts an

OpenMV-Kamera sendet Kappenzählungen per UART an einen alten Intel Edison: es kommt nichts an

Gelöst 6 4

Von English mit KI übersetzt ·

Ich bin Werksleiter, und unser einziger Steuerungstechniker ist gerade in Urlaub, deshalb mache ich das selbst. An der Abfüllanlage prüft eine OpenMV-H7-Kamera die Kappen und zählt die guten sowie die aussortierten. Daneben steht ein alter Intel Edison auf seiner Arduino-Breakout-Platine, der bereits die Zähler der Füllmaschine liest und die Liniendaten an Hermetry sendet. Ich möchte, dass die OpenMV ihre beiden Zählwerte über die serielle Schnittstelle an den Edison übergibt, damit sie zusammen mit dem Rest nach oben übertragen werden.OpenMV-Seite:

from pyb import UART
uart = UART(3, 115200, timeout_char=1000)
...
uart.write("caps_ok=%d;caps_rej=%dn" % (ok, rej))

Edison-Seite, Python liest /dev/ttyMFD1 mit 115200: Der Port öffnet sich ohne Fehler, aber read() liefert gar nichts zurück. Ich habe OpenMV P4 (TX) mit Pin 0 der Breakout-Platine verbunden und P5 (RX) mit Pin 1.Die beiden Boards stehen etwa 40 cm auseinander im selben Gehäuse, verbunden über Jumperkabel, und beide werden von derselben 5-V-Versorgung gespeist. Ich habe die OpenMV mit einem USB-Seriell-Adapter an meinem Laptop geprüft, dort kommen die Leitungen bei 115200 sauber an.

♥ 1

Von English mit KI übersetzt ·

Auf welche Spannung ist der Pegelwandler des Breakouts eingestellt? Die OpenMV arbeitet mit 3,3 V, das Edison-Breakout kann per Jumper auf 5 V umgestellt werden.

♥ 1

Von English mit KI übersetzt ·

Sind die Masseleitungen zwischen den beiden Boards verbunden? Da bin ich auch schon reingefallen.

♥ 0

Von English mit KI übersetzt ·

Masse ist angeschlossen. Der Jumper (J9) stand auf 5 V, ich habe ihn auf 3.3 V umgesteckt. Immer noch nichts.

♥ 0

Von English mit KI übersetzt ·

Ich habe mich letztes Jahr für ein Labor mit dem Edison-Breakout herumgeschlagen. Das Öffnen von /dev/ttyMFD1 reicht auf dieser Platine nicht aus: Die Pins 0 und 1 laufen über einen Pin-Multiplexer und die Pegelwandler, und solange diese nicht eingerichtet sind, ist die UART gar nicht an die Header-Leiste angeschlossen, die Pins sind reines GPIO. Deshalb lässt sie sich problemlos öffnen, liest aber nichts.Der einfache Weg ist die mraa-Bibliothek, die beim Öffnen der UART über ihre Board-Nummer den Mux für Sie setzt:

import mraa
u = mraa.Uart(0)            # pins 0/1 on the Arduino breakout, sets the mux
u.setBaudRate(115200)
u.setMode(8, mraa.UART_PARITY_NONE, 1)
while True:
    if u.dataAvailable(1000):
        line = u.readStr(64).strip()     # "caps_ok=1823;caps_rej=12"
        vals = dict(kv.split("=") for kv in line.split(";"))
        # add to the payload the Edison already sends:
        payload["caps_ok"] = int(vals["caps_ok"])
        payload["caps_rej"] = int(vals["caps_rej"])

Prüfen Sie außerdem, ob die Verkabelung gekreuzt ist: OpenMV TX an RX des Edison (Pin 0), OpenMV RX an TX des Edison (Pin 1). Pin 0 ist auf dem Breakout RX, also tauschen Sie die Leitungen, falls Ihre Verkabelung genau so ausgeführt ist, wie Sie sie beschrieben haben.

Timestamps in UTC or it didn't happen.
Akzeptierte Lösung♥ 9

Von English mit KI übersetzt ·

Beides, wie sich herausstellte. mraa.Uart(0) hat die Pins eingerichtet, und ich hatte TX und RX vertauscht. Die Zählungen kommen jetzt jede Sekunde an und steigen mit den Fülldaten. caps_rej steht auf der Linienplatine, und der Schichtleiter hat schon gefragt, warum es um 14 Uhr gesprungen ist.

♥ 2

Von English mit KI übersetzt ·

Gut. Plane aber einen Ersatz für diesen Edison ein, er wird seit Jahren nicht mehr produziert und Ersatzteile werden immer schwerer zu finden.

♥ 1
Ansicht von 7 Beiträgen – 1 bis 7 (von insgesamt 7)
  • Du musst angemeldet sein, um auf dieses Thema antworten zu können.

Mitdiskutieren

Melde dich an, um Fragen zu stellen und zu beantworten, hilfreiche Beiträge mit „Gefällt mir“ zu markieren und die Antwort zu kennzeichnen, die dein Problem gelöst hat. Jeder Beitrag bringt Punkte und Stufen.

Teilen