Kirjoittaja Aihe: [ ratkaistu ] Yhteys usb-serial -laitteeseen  (Luettu 1743 kertaa)

teele

  • Käyttäjä
  • Viestejä: 852
    • Profiili
[ ratkaistu ] Yhteys usb-serial -laitteeseen
« : 20.02.20 - klo:11.36 »
Ubuntu-koneen usb-paikassa on kiinni arduino, joka lähettää vakoisen merkkijonon sopivin väliajoin nopeudella 9600. Miten tämän sarjamuotoisen tiedon saa näkymään helpoimmin päätteessä.

Näyttää siltä, että Ubuntu tunnistaa laitteen, koska dmesgin tulosteet ovat erilaisia riippuen siitä, onko laite usb-paikassa kiinn vai ei.

Koodia: [Valitse]
dmesg | egrep tty
[    0.226840] printk: console [tty0] enabled
[    6.737821] cdc_acm 2-4:1.1: ttyACM0: USB ACM device
[    6.808334] cdc_acm 2-4:1.3: ttyACM1: USB ACM device
[    6.867432] cdc_acm 2-4:1.9: ttyACM2: USB ACM device
[ 2890.006358] usb 2-2.3: FTDI USB Serial Device converter now attached to ttyUSB0
dmesg | egrep tty
[    0.226840] printk: console [tty0] enabled
[    6.737821] cdc_acm 2-4:1.1: ttyACM0: USB ACM device
[    6.808334] cdc_acm 2-4:1.3: ttyACM1: USB ACM device
[    6.867432] cdc_acm 2-4:1.9: ttyACM2: USB ACM device
[ 2890.006358] usb 2-2.3: FTDI USB Serial Device converter now attached to ttyUSB0
[ 3124.906059] ftdi_sio ttyUSB0: FTDI USB Serial Device converter now disconnected from ttyUSB0

Ongelmana voi olla päätenopeus, mutta jollain tavalla pitäisi saada kerrottua usbille, mitä nopeutta halutaan lukea.


« Viimeksi muokattu: 20.02.20 - klo:21.22 kirjoittanut teele »

nm

  • Käyttäjä
  • Viestejä: 16428
    • Profiili
Vs: Yhteys usb-serial -laitteeseen
« Vastaus #1 : 20.02.20 - klo:12.27 »

Ubuntu-koneen usb-paikassa on kiinni arduino, joka lähettää vakoisen merkkijonon sopivin väliajoin nopeudella 9600. Miten tämän sarjamuotoisen tiedon saa näkymään helpoimmin päätteessä.

Lisää käyttäjätunnuksesi dialout-ryhmään:

Koodia: [Valitse]
sudo adduser $USER dialout
ja kirjaudu ulos työpöydältä ja takaisin sisään.


Sitten pitäisi toimia esimerkiksi screen-komennolla:

Koodia: [Valitse]
screen /dev/ttyUSB0 9600
screen sulkeutuu Ctrl+D:llä.


Lisää vaihtoehtoja: https://askubuntu.com/questions/40959/how-do-i-connect-to-tty-com-dev-ttyusb0

teele

  • Käyttäjä
  • Viestejä: 852
    • Profiili
Vs: [ ratkaistu ] Yhteys usb-serial -laitteeseen
« Vastaus #2 : 20.02.20 - klo:21.25 »
Ratkaisu oli

Koodia: [Valitse]
sudo adduser $USER dialout


kuten nm edellä kertoi. Mitään muuta ei tarvittu, usbiin tuleva teksti näkyy hienosti.

Kiitoksia taas kerran  :)

jarmala

  • Käyttäjä
  • Viestejä: 790
    • Profiili
Vs: [ ratkaistu ] Yhteys usb-serial -laitteeseen
« Vastaus #3 : 20.02.20 - klo:21.43 »
Ubuntu-koneen usb-paikassa on kiinni arduino, joka lähettää vakoisen merkkijonon sopivin väliajoin nopeudella 9600. Miten tämän sarjamuotoisen tiedon saa näkymään helpoimmin päätteessä.

Päätteseen sen saa toki jo annetuilla ohjeilla, mutta jos sen haluaa tiedostoon talteen, niin kannattaa kokeilla vaikka jotain seuraavanlaista:

Koodia: [Valitse]
#! /usr/bin/python
import serial
from time import strftime, sleep
ser = serial.Serial('/dev/ttyACM0', 9600, timeout = 0.1)
sleep (0.5)
while 1:
sleep(1)
if ser.inWaiting() >= 1:
        from datetime import datetime
        aika = datetime.now().strftime('%H:%M:%S-%d/%m/%Y ')
lin = ser.readline()
line = aika + '\t' + lin.decode('utf8')
f = open( 'foo', 'a')
f.write (line)
f.close()
print(line)

Tämän tuotoksen eli tiedoston foo voi helposti imeä vaikka gnuplotiin ja jalostaa sen ihanaksi grafiikaksi... Tuon päivämäärän ja aikamuotoilun saa sitten jokainen muokata haluamansa laiseksi... minusta juuri tämä muoto on hyvä, kun se on suoraan lukukelpoinen.
Ubuntu 18.04 LTS, Gnome Flashback Metacity, Xeon E3-1245 V2, 8 GB
Ubuntu 22.04 LTS, KDE Plasma, Celeron N5105, 8 GB