Ubuntu Suomen keskustelualueet
Ubuntun käyttö => Laitealue => Aiheen aloitti: teele - 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.
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.
-
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:
sudo adduser $USER dialout
ja kirjaudu ulos työpöydältä ja takaisin sisään.
Sitten pitäisi toimia esimerkiksi screen-komennolla:
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
-
Ratkaisu oli
sudo adduser $USER dialout
kuten nm edellä kertoi. Mitään muuta ei tarvittu, usbiin tuleva teksti näkyy hienosti.
Kiitoksia taas kerran :)
-
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:
#! /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.