[risolto]Lettura su porta seriale tramite shell

di centurione_agrippa il
11 risposte
Salve tramite la shell bash vorrei riuscire a leggere dalla porta usb i dati inviati da arduino al pc. Ho provato vari comandi (cat, read, stty ) andando a specificare il tipo di porta, ma non riesco a vedere nulla. I dati arrivano ad arduino perchè sono visibili nel monitor seriale. Avete qualche idea ?

11 Risposte

  • La domanda è perché da bash? Esistono mille linguaggi con cui è molto più semplice ...
  • oregon ha scritto:


    La domanda è perché da bash? Esistono mille linguaggi con cui è molto più semplice ...
    sto utilizzando linux. Mi è sorto un dubbio, mica devo implementare un qualcosa che mi permetta di inviare i dati dall'arduino alla porta usb ? dal serial monitor riesco a vedere cosa arriva
  • Ho capito che utilizzi Linux ma perché non usi un linguaggio con cui scrivi del codice?
  • Così come usi il serial monitor di Arduino, puoi usare hyperterminal, putty o qualsiasi altro programma, oppure un qualsiasi linguaggio che acceda alle porte seriali, ad esempio C# con la classe SerialPort. Naturalmente devi usare la stessa COM virtuale che viene assegnata quando connetti il dispositivo al PC e la stessa baud rate. Lato processore devi ovviamente implementare sia RX che TX della UART, se vuoi un'interfaccia completa
  • Weierstrass ha scritto:


    Così come usi il serial monitor di Arduino, puoi usare hyperterminal, putty o qualsiasi altro programma, oppure un qualsiasi linguaggio che acceda alle porte seriali, ad esempio C# con la classe SerialPort. Naturalmente devi usare la stessa COM virtuale che viene assegnata quando connetti il dispositivo al PC e la stessa baud rate. Lato processore devi ovviamente implementare sia RX che TX della UART, se vuoi un'interfaccia completa
    se mi dai qualche info in più sono disposto a cambiare linguaggio
  • Weierstrass ha scritto:


    Su come si usa SerialPort su C# di esempi ne trovi tanti, ad esempio
    https://web.archive.org/web/20130709121945/http://msmvps.com/blogs/coad/archive/2005/03/23/SerialPort-_2800_RS_2D00_232-Serial-COM-Port_2900_-in-C_2300_-.NET.aspx

    Controlla prima che sia tutto a posto sia RX che TX con un programma già pronto, però
    la comunicazione è tra due arduino ma entrambi non comunicano direttamente ma tramite due can bus shield
  • Ma ha senso, visto che sei alle prime armi, scegliere il CAN che è un'interfaccia mediamente complessa? Perché non usare direttamente le due UART in modalità TTL, cioè GND1 <-> GND2, RX1 <-> TX2 e RX2 <-> TX1? O non lo puoi fare perché vuoi tenere le due schede a livelli di tensione differenti? E soprattutto il topic non era sulla comunicazione di un Arduino con un PC?
  • Avevi detto che comunicavi tra Arduino e Pc. Non cambiare altrimenti è inutile rispondere.

    Poi questo è un forum tecnico di programmazione... se non hai alcuna idea di come si usi un linguaggio allora la vedo dura. Non è possibile imparare da un thread, il forum non è il sostituto di un corso.
  • Weierstrass ha scritto:


    Ma ha senso, visto che sei alle prime armi, scegliere il CAN che è un'interfaccia mediamente complessa? Perché non usare direttamente le due UART in modalità TTL, cioè GND1 <-> GND2, RX1 <-> TX2 e RX2 <-> TX1? O non lo puoi fare perché vuoi tenere le due schede a livelli di tensione differenti? E soprattutto il topic non era sulla comunicazione di un Arduino con un PC?
    io ho descritto solo la parte finale perchè tutto il resto funziona. Il mio problema è leggere da linea di comando cio che arriva al secondo arduino
  • E allora, se funziona tutto, prendi i PDO che ti arrivano in CAN sul primo Arduino e buttali fuori nel formato che ti piace sulla seriale che va al PC...
Devi accedere o registrarti per scrivere nel forum
11 risposte