Novedad: el cortafuegos de IA supervisa toda la plataforma y explica cada incidente con palabras sencillas. Vea cómo funciona

Cámara OpenMV que envía los conteos de tapones a un Intel Edison antiguo por UART: no llega nada

Cámara OpenMV que envía los conteos de tapones a un Intel Edison antiguo por UART: no llega nada

Resuelto 6 4

Traducido del English por IA ·

Soy el jefe de planta, y nuestro único técnico de control está de baja, así que me encargo yo de esto. En la línea de embotellado, una cámara OpenMV H7 revisa los tapones, cuenta los buenos y rechaza los demás. Junto a ella hay un Intel Edison antiguo sobre su placa de conexiones Arduino, que ya lee los contadores de la llenadora y envía los datos de la línea a Hermetry. Quiero que la OpenMV pase sus dos conteos al Edison por puerto serie para que suban junto con el resto.Lado de la OpenMV:

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

Lado del Edison, Python leyendo /dev/ttyMFD1 a 115200: el puerto se abre sin errores, pero read() no devuelve nada. Conecté el P4 (TX) de la OpenMV al pin 0 de la placa de conexiones y el P5 (RX) al pin 1.Las dos placas están a unos 40 cm dentro de la misma carcasa, unidas con cables de puente, y ambas se alimentan de la misma fuente de 5 V. Comprobé la OpenMV con un adaptador USB serie en mi portátil y las líneas salen bien a 115200.

♥ 1

Traducido del English por IA ·

¿A qué voltaje está configurado el level shifter de la placa breakout? La OpenMV funciona a 3,3 V, y la placa breakout del Edison se puede configurar con un jumper para 5 V.

♥ 1

Traducido del English por IA ·

¿Están conectadas las tierras (GND) entre las dos placas? A mí ya me ha pasado eso.

♥ 0

Traducido del English por IA ·

Las masas están conectadas. El jumper (J9) estaba en 5 V, lo pasé a 3.3 V. Sigue sin llegar nada.

♥ 0

Traducido del English por IA ·

Peleé con la placa de expansión del Edison para un laboratorio el año pasado. Abrir /dev/ttyMFD1 no basta en esa placa: los pines 0 y 1 pasan por un multiplexor de pines y los convertidores de nivel, y hasta que se configuran la UART no está conectada al conector, los pines son GPIO normales. Por eso se abre sin problemas pero no lee nada.La forma sencilla es la biblioteca mraa, que configura el multiplexor por usted al abrir la UART por su número de placa:

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"])

Compruebe también que el cableado está cruzado: TX de la OpenMV al RX del Edison (pin 0), RX de la OpenMV al TX del Edison (pin 1). El pin 0 es RX en la placa de expansión, así que si lo que escribió es exactamente como está cableado, intercámbielos.

Timestamps in UTC or it didn't happen.
Solución aceptada♥ 9

Traducido del English por IA ·

Las dos cosas, como resulta. mraa.Uart(0) configuró los pines, y yo tenía TX y RX cambiados. Los recuentos llegan ahora cada segundo y suben con los datos de relleno. caps_rej está en la placa de línea, y el jefe de turno ya preguntó por qué subió a las 14:00.

♥ 2

Traducido del English por IA ·

Bien. Aun así, conviene planificar un reemplazo para ese Edison; lleva años fuera de producción y los repuestos son cada vez más difíciles de conseguir.

♥ 1
Viendo 7 entradas – de la 1 a la 7 (de un total de 7)
  • Debes estar registrado para responder a este debate.

Únete a la conversación

Inicia sesión para preguntar y responder, dar me gusta a las publicaciones útiles y marcar la respuesta que resolvió tu problema. Cada aportación suma puntos y niveles.

Compartir