lunedì 20 agosto 2012

Nokia 6161 e comandi AT

Dovendo fare qualche prova con uno script seriale e non avendo a tiro nessun modem seriale vero ho tirato fuori il vecchio Nokia 6161 che ha una interfaccia con comandi AT


Il collegamento con il telefono puo' essere effettuato con accoppiamento Bluetooth mediante il menu del telefono oppure mediante il cavo USB (che non porta corrente ma solo segnale per cui e' bene inserire anche l'alimentatore per le prove)

Collegamento Bluetooth
per il collegamento bluetooth si accoppia con il classico comando


rfcomm bind 0 00:1B:EE:58:93:22
la porta su cui collegarsi e' /dev/rfcomm0

Collegamento USB con cavo Ca-53
per il collegamento via cavo devono essere caricati i moduli
usbcore,usbserial,cdc_acm,usbhid,ehci_hcd,ohci_hcd
la porta su cui collegarsi e' /dev/ttyACM0

il syslog riporta le seguenti linee
Aug 20 09:35:25 kranz kernel: [ 1858.174324] usb 5-1: New USB device found, idVendor=0421, idProduct=04d2
Aug 20 09:35:25 kranz kernel: [ 1858.174340] usb 5-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Aug 20 09:35:25 kranz kernel: [ 1858.174346] usb 5-1: Product: Nokia 6151
Aug 20 09:35:25 kranz kernel: [ 1858.174351] usb 5-1: Manufacturer: Nokia

usando il seguente script in Python si inviano due comandi
il primo corretto ed il secondo errato
-------------------------------------------------------------

import time
import serial

ser = serial.Serial()
ser.baudrate = 9600
ser.bytesize = 8
ser.stopbits = 1
ser.port = '/dev/rfcomm0'
ser.parity=serial.PARITY_NONE

ser.open()
ser.isOpen()

while True :
#controlla il livello della batteria
out = ''
ser.write("AT+CBC\r\n")
print "AT+CBC"
time.sleep(1)
while ser.inWaiting()>  0:
out += ser.read(1)
if out != '':
print out
#print "<<"+out[24]
#if out[24] == "O":
#print "Ok"


#forza un comando errato
out = ''
ser.write("AT+CGMM1\r\n")
print "AT+CGMM1"
time.sleep(1)
while ser.inWaiting()>  0:
out += ser.read(1)
if out != '':
print out
#print out[12]
#if out[12] == "E":
#print "Errore"
-------------------------------------------------------------
La risposta al comando corretto e' composta dalla ripetizione del comando
il valore di risposta (in questo caso lo stato di carica della batteria) ed infine
una riga con il codice OK
-------------------------------------------------------------
AT+CBC

+CBC: 1,93

OK
-------------------------------------------------------------

La risposta al comando scorretto e' composta dalla ripetizione del comando
e la stringa ERROR
-------------------------------------------------------------
AT+CGMM1

ERROR
-------------------------------------------------------------
come si puo' osservare la risposta e' data da una stringa unica con piu' ritorni a capo e senza un separatore univoco..per questo motivo per fare un check da programma del corretto funzionamento si puo' controllare nel primo caso se il carattere 24 della stringa di out contiene una "O" di "OK" mentre nel secondo caso se il carattere 12 contiene una "E" di Error

sabato 18 agosto 2012

Bluetooth su Debian



per installare il pacchetto di utility di Bluetooth si digita
apt-get install bluetooth

successivamente per ricercare il device Bluetooth a cui si vuole collegare


hcitool scan

si copia l'indirizzo esadecimale e si lancia il comando

rfcomm bind 0 00:0A:3A:1F:A4:2E 

che apre la seriale /dev/rfcomm0

venerdì 17 agosto 2012

Terminale per porta seriale

Alcuni esempi di terminale su porta seriale (reale o virtuale) su Linux. Le prove sono state effettuate con GPS Bluetooth impostato su /dev/rfcomm0
Gtkterm

Configurazione

Schermata del terminale
Minicom
(da lanciare come minicom -s)

Configurazione
Schermata del terminale

altrimenti usando la libreria pyserial (che si installa con il seguente comando)

apt-get install python-serial

 si puo' usare uno script in Python per fare la stessa cosa

--------------------------
import time
import serial

ser = serial.Serial()
ser.baudrate = 9600
ser.bytesize = 8
ser.stopbits = 1
#ser.xonxoff = 0
#ser.rtscts = 0
#ser.timeout = 0
ser.port = '/dev/rfcomm0'
ser.parity=serial.PARITY_NONE

ser.open()
ser.isOpen()

input=1
out = ''
while True :
time.sleep(1)
while ser.inWaiting()>  0:
out += ser.read(1)
if out != '':
print ">>" + out

giovedì 16 agosto 2012

Scheda Wireless Kraun Kr.8N

La scheda, visibile in foto, e' costituita da una antenna che integra anche l'elettronica di controllo, e di un supporto con cavo USB

Inserita nella Debian Box stable i messaggi del syslog indicano

Aug 16 09:51:04 kranz NetworkManager[1143]: <warn> wlan1: firmware may be missing.
Aug 16 09:51:04 kranz NetworkManager[1143]: <info> (wlan1): deactivating device (reason: 2).
Aug 16 09:51:04 kranz kernel: [  348.203942] phy1 -> rt2x00lib_request_firmware: Error - Failed to request Firmware.
Aug 16 09:51:04 kranz kernel: [  348.210663] rt2800usb 1-7:1.0: firmware: requesting rt2870.bin
Aug 16 09:51:04 kranz kernel: [  348.222574] phy1 -> rt2x00lib_request_firmware: Error - Failed to request Firmware.

e' quindi necessario inserire tra le sources i repository non-free e successivamente (dopo l'update)

apt-get install firmware-ralink

in Ubuntu invece la scheda viene riconosciuta al volo

Logitech QuickCam e2500

La webcam in questione (altrimenti nota come V-UCV9) funziona bene con Debian Stable


Il modulo di riferimento (nel caso non venisse montato in automatico) e' gspca_zc3xx che accende sia la webcam (in /dev/videox) sia il microfono integrato (vedi immagine sottostante)


QEMU

non ho i privilegi di amministratore sulla macchina di lavoro e cercando soluzioni per aggirare il problema (perche' comunque mi servono dei software open source per lavorare) ho provato a far girare QEmu per Windows. L'opzione di usare VirtualBox e' stata esclusa perche' sono richiesti permessi di amministratore anche per la versione portable

L'installazione inizia scaricando il pacchetto da qui e scompattandolo in una directory per esempio in Desktop\qemu

per creare la macchina virtuale (in questo caso una Debian testing) si lancia da linea di comando
qemu-img create debian.img 2000M (per creare un disco virtuale da 2 Giga denominato debian.img)

qemu -cdrom "debian-testing-i386-xfce-lxde-CD-1.iso" -hda debian.img -m 256 -boot d  -L "c:\Documents and Settings\l.innocenti\Desktop\qemu" (per installare il sistema partendo dalla Iso e facendo il boot da CD virtuale ovvero d)

Debian in fase di installazione in QEmu
dopo l'installazione si puo' lanciare Debian con il comando
qemu  -hda debian.img -m 512  -L "c:\Documents and Settings\l.innocenti\Desktop\qemu"


dato che non e' possibile usare kqemu (sempre per permessi di amministratore) l'esecuzione sotto Windows e' piuttosto lenta

martedì 14 agosto 2012

Mediacom 850i

Mi sono comprato il Mediacom 850i, un tablet Android (Ice Cream Sandwich) con schermo da 8 pollici

Difetti:
  1. Non riesce a prendere il segnale della rete Wi.Fi. In confronto il telefono Ideos prende 10 volte meglio
  2. L'audio dagli speaker integrati e' sostanzialmente assente ed e' difficile condividere la visione di un film
  3. La batteria ha una durata inferiore alle 2 ore di uso intenso
  4. Lo schermo non e' visibile in condizioni di illuminazione ambientale esterna
  5.  L'applet per la gestione del calendario non si sincronizza con Google (si deve reinstallare il pacchetto come indicato qui)
  6. Il pacchetto di ripristino disponibile sul sito della Mediacom e' conosciuto per briccare in modo definitivo il tablet 
  7. Sotto Linux non si riescono a montare le partizioni della memoria interna e della SD esterna. Si puo' superare salvando i dati sulla microSD con un lettore di schede oppure con AirDroid
  8. Non gira Google Plus
  9. Nonostante abbia una porta HDMI non sono riuscito a visualizzare niente (sullo stesso schermo e con lo stesso cavo la Raspberry funziona in modo egregio). Qualcuno segnala di essere riuscito a farlo funzionare con il problema e' che quando il segnala passa per il televisore il tablet diventa oscuro pur mantenendo la funzionalita' del touch screen
  10. La ricarica e' gestita mediante alimentatore con connettore particolare e non tramite il cavo USB
  11. Non e' presente Bluetooth
Pregi:
  1. 120 euro di spesa diciamo che ne valgono la pena
  2. Ottima risoluzione dello schermo
  3. E' abbastanza ben rifinito (il posteriore e' in alluminio)
  4. E' dannatamente veloce, al confronto con l'Ideos, quando si testano le applicazioni da Eclipse 
  5. Possibilita' di impiegare USB-OTG

Feature Matching OpenCv

Il problema e' il seguente: trovare le differenze tra le due foto. Le due immagini sono state riprese a distanza di oltre un anno ed il ...