Pages: 1 [2]   Go Down
Author Topic: Arduino + Seriale (rxtx)  (Read 4432 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Sr. Member
****
Karma: 2
Posts: 340
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

non so più dove sbattere la testa smiley-sad
Adesso neanche arduino IDE mi vede più /dev/ACM0
l'output di lsusb è questo:
Code:
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 003: ID 046d:c316 Logitech, Inc. HID-Compliant Keyboard
Bus 006 Device 002: ID 046d:c018 Logitech, Inc. Optical Wheel Mouse
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 003: ID 093a:2468 Pixart Imaging, Inc. SoC PC-Camera
Bus 004 Device 002: ID 2341:0001 
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

e quello di dmesg è questo:
Code:
[   29.998434] vboxdrv: Successfully done.
[   29.998435] vboxdrv: Found 4 processor cores.
[   29.998514] VBoxDrv: dbg - g_abExecMemory=ffffffffa0decd60
[   29.998556] vboxdrv: fAsync=0 offMin=0x53a offMax=0x20b8
[   29.998605] vboxdrv: TSC mode is 'synchronous', kernel timer mode is 'normal'.
[   29.998606] vboxdrv: Successfully loaded version 3.2.8_OSE (interface 0x00140001).
[  121.993023] lo: Disabled Privacy Extensions
[  322.625042] usb 4-1: USB disconnect, address 2
[  325.960076] usb 4-1: new full speed USB device using ohci_hcd and address 4
[  326.155040] cdc_acm 4-1:1.0: ttyACM0: USB ACM device

Probabilmente tra i mille tentativi avrò toccato qualcosa che non dovevo... il problema è ricordarsi cosa! smiley-sad
Logged

Offline Offline
Sr. Member
****
Karma: 2
Posts: 340
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Almeno il problema dell'IDE l'ho risolto (installando i pacchetti deb di Ubuntu Natty) smiley

Adesso vorrei fare quello che mi hai suggerito tu, però lsusb non mi da quelle informazioni
(Arduino è quello senza nome)
« Last Edit: March 09, 2011, 03:03:56 pm by supergiox » Logged

0
Offline Offline
Shannon Member
****
Karma: 132
Posts: 10494
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

uhmm starno, dmesg dice che è collegato... dovrebbe comparire sia nell'ide che in lsusb, e da lì prendi le info.
magari prova con sudo lsusb ma non credo caverai molto..
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Offline Offline
Sr. Member
****
Karma: 2
Posts: 340
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Si avevo pensato la stessa cosa, ma non è cambiato niente..
So che è Arduino perchè se lo scollego non compare più quella voce senza nome

La cosa che mi insospettisce è che prima utilizzavo l'IDE scaricato dal sito Arduino e funzionava, adesso non funziona e riesco ad usare solo quella dei repository di Natty (stessa versione 2.2)

Ho appena provato ad avviare Ubuntu in modalità live, ed lsusb mi da lo stesso risultato di prima...
Ho provato anche su un altro pc con Ubuntu, però Lucid 32bit, e su lsusb c'è sempre quella riga vuota!
è colpa di arduino?
« Last Edit: March 09, 2011, 03:27:10 pm by supergiox » Logged

0
Offline Offline
Shannon Member
****
Karma: 132
Posts: 10494
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

allora è lui, semplicemente a quanto pare non si identifica con in nome!
semplicemente non metti ATTRS{product}=="nome trovato" nel file che crei, lasci solo i due ID:
vendor:2341
product: 0001
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 333
Posts: 22924
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ma /dev/ttyACMx viene assegnato dal kernel perché l'Uno funziona così.
Non è che forzandogli questa cosa poi sballa tutto?
Logged


Offline Offline
Sr. Member
****
Karma: 2
Posts: 340
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Qualche novità! smiley
Adesso dentro /dev ho ttyUSB0 e ttyUSB2

Con processing e con java riesco a vedere la periferica ttyUSB0, ma:
-processing continua ad andare in crash
-con eclipse ho questo output
Code:
Stable Library
=========================================
Native lib Version = RXTX-2.1-7
Java lib Version   = RXTX-2.1-7
Started
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007f73bf94e462, pid=9411, tid=140135112144640
#
# JRE version: 6.0_24-b07
# Java VM: Java HotSpot(TM) 64-Bit Server VM (19.1-b02 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# C  [librxtxSerial.so+0x6462]  read_byte_array+0x52
#
# An error report file with more information is saved as:
# /home/giorgio/workspace/SerialTest/hs_err_pid9411.log
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
Experimental:  JNI_OnLoad called.
Logged

0
Offline Offline
Shannon Member
****
Karma: 132
Posts: 10494
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
Ma /dev/ttyACMx viene assegnato dal kernel perché l'Uno funziona così.
Non è che forzandogli questa cosa poi sballa tutto?

nono, stai creando un link, quindi un collegamento... ttyACMx rimane! quindi niente sballi

@supergiox: hai creto le regola udev? come mai 2 USB? dovrebbe essere solo una! l'errore avviene su tutte due ed è lo stesso?

l'errore proviene da "C  [librxtxSerial.so+0x6462]  read_byte_array+0x52" i file .so sono le librerie native, sicuro di aver linkato quella giusta? e che processing e eclipse siano per 64 bit? la JVM è già a posto (64bit)
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Offline Offline
Sr. Member
****
Karma: 2
Posts: 340
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Eclipse  l'ho installato dai repository di Ubuntu, ma non ho mai letto da nessuna parte 64bit (neanche in about..)
processing l'ho scaricato dal sito ufficiale, e posso solo scegliere il sistema operativo
http://www.processing.org/download/

Le librerie su processing le installo come ho scritto in un post precedente:
copiando "rxtx-2.1-7-bins-r2/RXTXcomm.jar" e "rxtx-2.1-7-bins-r2/Linux/x86_64-unknown-linux-gnu/librxtxSerial.so" nella cartella "processing1.2.1/libraries/serial/library/"

Su eclipse invece faccio così:
tasto destro su proprietà del progetto -> java build path -> libraries -> add external JARs -> seleziono RXTXcomm.jar
apro il menù a tendina del JAR appena caricato -> Native library location -> seleziono dal mio hard disk la directory "rxtx-2.1-7-bins-r2/Linux/x86_64-unknown-linux-gnu/"

sbaglio qualcosa?
Logged

Offline Offline
Sr. Member
****
Karma: 2
Posts: 340
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

(Quasi) Ottime notizie!! smiley-grin
Visto che l'errore riguarda il file .so ho scaricato l'ultima versione (unstable) delle librerie e ho importato questa nel progetto (jar e .so) al posto della precedente!
Ho solo un warning:
Code:
RXTX Warning: Removing stale lock file. /var/lock/LCK..ttyUSB0

ma per il resto vengono visualizzato uno dopo l'altro i caratteri letti dalla seriale smiley

Con processing, ho provato a fare lo stesso...
Anche lì mi da il warning, riesce ad elaborare per una frazione di secondo l'immagine (che dipende dall'input della seriale) e poi si blocca come prima!

EDIT:
Dimenticavo! Ho scoperto che il sistema non è totalmente bloccato, riesco ad entrare via SSH e il processo che consuma il 100% di cpu è Xorg!
« Last Edit: March 09, 2011, 05:11:05 pm by supergiox » Logged

0
Offline Offline
Shannon Member
****
Karma: 132
Posts: 10494
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

processing possiede già al suo interno rxtx! cancella processing e riparti da una installazione pulita, e usa questi comandi:
http://www.processing.org/reference/libraries/serial/index.html

Code:
RXTX Warning: Removing stale lock file. /var/lock/LCK..ttyUSB0
questo è normale, compare anche a me

ma il codice che usi in processing qual'è?
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Offline Offline
Sr. Member
****
Karma: 2
Posts: 340
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Intanto non so come ringraziarti per Eclipse smiley Dopo due giorni finalmente funziona!! smiley

Su processing, lo sketch che fa bloccare il pc l'ho scritto nel primo post... ma credo che sia un problema legato a librerie grafiche a questo punto..
In questo momento sto provando questo codice:
Code:
import processing.serial.*;
Serial port;

float val;
void setup() {
println(Serial.list());
String arduinoPort = Serial.list()[0];
port = new Serial(this, arduinoPort, 9600);
println("Sono collegato a " +arduinoPort);
}

void serialEvent(Serial port) {
   val = port.read();
    println( "Raw Input:" + val);
}

Una sola volta è riuscito a visualizzarmi il primo valore di val, tutte le altre volte si ferma quì:
Code:
WARNING:  RXTX Version mismatch
Jar version = RXTX-2.2pre1
native lib Version = RXTX-2.2pre2
[0] "/dev/ttyUSB0"
[1] "/dev/ttyS0"
Sono collegato a /dev/ttyUSB0

Mentre con l'installazione pulita non parte proprio:
Code:
[i]Error inside Serial.ports()[/i]
java.lang.UnsatisfiedLinkError: /home/giorgio/Scaricati/processing-1.2.1-new/libraries/serial/library/librxtxSerial.so: /home/giorgio/Scaricati/processing-1.2.1-new/libraries/serial/library/librxtxSerial.so: classe ELF errata: ELFCLASS32 (Possible cause: architecture word width mismatch) thrown while loading gnu.io.RXTXCommDriver
java.lang.UnsatisfiedLinkError: /home/giorgio/Scaricati/processing-1.2.1-new/libraries/serial/library/librxtxSerial.so: /home/giorgio/Scaricati/processing-1.2.1-new/libraries/serial/library/librxtxSerial.so: classe ELF errata: ELFCLASS32 (Possible cause: architecture word width mismatch)
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1803)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1728)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1028)
at gnu.io.CommPortIdentifier.<clinit>(CommPortIdentifier.java:83)
at processing.serial.Serial.list(Unknown Source)
at sketch_mar10a.setup(sketch_mar10a.java:27)
at processing.core.PApplet.handleDraw(Unknown Source)
at processing.core.PApplet.run(Unknown Source)
at java.lang.Thread.run(Thread.java:619)
processing.app.debug.RunnerException: RuntimeException: Error inside Serial.ports()
at processing.app.Sketch.placeException(Sketch.java:1543)
at processing.app.debug.Runner.findException(Runner.java:582)
at processing.app.debug.Runner.reportException(Runner.java:558)
at processing.app.debug.Runner.exception(Runner.java:498)
at processing.app.debug.EventThread.exceptionEvent(EventThread.java:367)
at processing.app.debug.EventThread.handleEvent(EventThread.java:255)
at processing.app.debug.EventThread.run(EventThread.java:89)
Exception in thread "Animation Thread" java.lang.RuntimeException: Error inside Serial.ports()
at processing.serial.Serial.errorMessage(Unknown Source)
at processing.serial.Serial.list(Unknown Source)
at sketch_mar10a.setup(sketch_mar10a.java:27)
at processing.core.PApplet.handleDraw(Unknown Source)
at processing.core.PApplet.run(Unknown Source)
at java.lang.Thread.run(Thread.java:619)

E poi, è normale che sia tutto così lento?
Con eclipse ci vogliono circa 10 secondi, con processing praticamente 10 secondi per ogni riga..
e il processore durante l'esecuzione è in media al 70%
Logged

0
Offline Offline
Shannon Member
****
Karma: 132
Posts: 10494
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ok, processing (non chiedermi perchè) a quanto pare usa rxtx a 32bit... ovvio che quì casca l'asino:
Code:
(Possible cause: architecture word width mismatch)

quindi è giusto che segui la tua procedura di sostituire rxtx, a quanto pare il fatto che hai il jar della versione pre2 e il .so della versione pre1 non è un problema (dal sito: http://rxtx.qbang.org/wiki/index.php/Download)
io scaricherei la 2.1 giusto per sicurezza. ma la nativa hai messo la ia64bit o x86_64bit? perchè la ia è solo per alcune cpu intel...
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Offline Offline
Sr. Member
****
Karma: 2
Posts: 340
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Finora ho sempre usato x86_64 (ho un AMD)
Le librerie RXTX che non mi funzionavano erano 2.1.7 (che se non sbaglio sono quelle che usa processing di default).
Le 2.2 funzionano su Eclipse, e su processing fanno qualcosa in più rispetto alle 2.1.7...

Secondo me si potrebbe provare a compilarle dai sorgenti.. In teoria così non ci dovrebbero essere problemi di architettura diversa
Ieri ho provato, ma al "make install" mi dava un errore e ho cercato altre strade più semplici

EDIT:
Ho impostato java e le variabili d'ambiente per funzionare da terminale ed è tutto ok!
Però se possibile vorrei che gli eseguibili java e javac fossero quelli che ho scaricato io (in una cartella che ho impostato in PATH), non quelli presenti in /usr/bin.
Li sostituisco brutalmente?
Perche se disinstallo sun-java6-bin dal gestore pacchetti, automaticamente mi installa open-jdk
« Last Edit: March 09, 2011, 08:23:25 pm by supergiox » Logged

Pages: 1 [2]   Go Up
Jump to: