Nouveau : le pare-feu IA surveille toute la plateforme et explique chaque incident en termes simples. Découvrez comment ça marche

Caméra OpenMV envoyant le nombre de capsules à un vieil Intel Edison via UART : rien n'arrive

Caméra OpenMV envoyant le nombre de capsules à un vieil Intel Edison via UART : rien n'arrive

Résolu 6 4

Traduit de English par IA ·

Je suis responsable de l’usine, et notre seul technicien en automatisme est en congé, donc je m’occupe moi-même de ce point. Sur la ligne d’embouteillage, une caméra OpenMV H7 contrôle les capsules, compte les bonnes et rejette les autres. À côté se trouve un vieil Intel Edison sur sa carte d’extension Arduino, qui lit déjà les compteurs de la remplisseuse et envoie les données de ligne à Hermetry. Je voudrais que l’OpenMV transmette ses deux compteurs à l’Edison via la liaison série, afin qu’ils remontent avec le reste.Côté OpenMV :

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

Côté Edison, Python lisant /dev/ttyMFD1 à 115200 : le port s’ouvre sans erreur, mais read() ne renvoie rien du tout. J’ai relié OpenMV P4 (TX) à la broche 0 de la carte d’extension et P5 (RX) à la broche 1.Les deux cartes sont à environ 40 cm l’une de l’autre dans le même boîtier, reliées par des fils de connexion, et toutes deux alimentées par la même alimentation 5 V. J’ai testé l’OpenMV avec un adaptateur USB série sur mon ordinateur portable, et les lignes sortent correctement à 115200.

♥ 1

Traduit de English par IA ·

Sur quelle tension est réglé le convertisseur de niveau de la carte breakout ? L’OpenMV fonctionne en 3,3 V, la carte breakout de l’Edison peut être configurée par cavalier pour 5 V.

♥ 1

Traduit de English par IA ·

Les masses sont-elles reliées entre les deux cartes ? Je me suis déjà fait piéger par ce problème.

♥ 0

Traduit de English par IA ·

La masse est connectée. Le cavalier (J9) était sur 5 V, je l’ai déplacé sur 3.3 V. Toujours rien.

♥ 0

Traduit de English par IA ·

Je me suis battu avec la carte d’extension de l’Edison pour un laboratoire l’an dernier. Ouvrir /dev/ttyMFD1 ne suffit pas sur cette carte : les broches 0 et 1 passent par un multiplexeur de broches et des adaptateurs de niveau, et tant qu’ils ne sont pas configurés, l’UART n’est pas relié au connecteur, les broches sont de simples GPIO. C’est pourquoi l’ouverture réussit mais rien n’est lu.La solution simple consiste à utiliser la bibliothèque mraa, qui configure le multiplexeur à votre place lorsque vous ouvrez l’UART par son numéro de carte :

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

Vérifiez aussi que le câblage est croisé : TX de l’OpenMV vers RX de l’Edison (broche 0), RX de l’OpenMV vers TX de l’Edison (broche 1). La broche 0 est RX sur la carte d’extension, donc si votre câblage correspond exactement à ce que vous avez écrit, inversez-les.

Timestamps in UTC or it didn't happen.
Solution acceptée♥ 9

Traduit de English par IA ·

Les deux, en fait. mraa.Uart(0) a configuré les broches, et j’avais inversé TX et RX. Les comptages arrivent maintenant chaque seconde et augmentent avec les données de remplissage. caps_rej est sur la carte de ligne, et le chef d’équipe a déjà demandé pourquoi il avait grimpé à 14 h.

♥ 2

Traduit de English par IA ·

Bien. Prévoyez tout de même un remplacement pour cet Edison : il n’est plus produit depuis des années et les pièces de rechange deviennent de plus en plus difficiles à trouver.

♥ 1
7 sujets de 1 à 7 (sur un total de 7)
  • Vous devez être connecté pour répondre à ce sujet.

Rejoignez la discussion

Connectez-vous pour poser et répondre à des questions, aimer les messages utiles et marquer la réponse qui a résolu votre problème. Chaque contribution rapporte des points et des niveaux.

Partager