mercoledì 22 agosto 2012

Cattura video su Raspberry

Primo tentativo di cattura video su Raspberry. E' stata utilizzata una Logitech QuickCam 2500 con l'installazione di default di ffmpeg di Rapbian (che e' conosciuta per essere buggata)

La stringa di configurazione di ffmpeg e' la seguente
ffmpeg -f video4linux2 -s 640x472 -r 5  -sameq -i /dev/video0 -f m4v  /home/pi/5.m4v

320x240

640x472

Esempio di GUI con Gambas

Tempo di sviluppo : 3 minuti (e non avevo mai usato prima Gambas)



-----------------------------------------------------------------
PUBLIC SUB Form_Open()
Label1.Alignment = 3
END

PUBLIC SUB Slider1_Change()

  Label1.Text = Slider1.Value
  ProgressBar1.Value = Slider1.Value / 100

END
-----------------------------------------------------------------

martedì 21 agosto 2012

Configurazione DHCP Server su Debian

Per usare Raspberry senza impazzire continuamente con le configurazioni di rete puo' essere comodo montare sulla macchina di sviluppo un server dhcp

su Debian si procedere installando
apt-get install isc-dhcp-server

dopo di cio' si puo' editare il file /etc/dhcp.conf modificando brevemente le righe

subnet 192.168.0.1 netmask 255.255.255.0 {
  range 192.168.1.10 192.168.1.20;
}

impostando la macchina di sviluppo per esempio su 192.168.1.1 ed avviando il server con

/etc/init.d/isc-dhcp-server start

e collegando la Raspberry con il cavo cross questa assumera' il primo indirizzo disponibile ovvero 192.168.1.10

USB Serial Converter PL2303

Ho ritirato fuori da un cassetto un convertitore seriale-USB che usavo per scaricare i dati da un GPS sotto Windows. Mi e' venuta voglia di vedere come funziona sotto Linux attacandolo ad un modem seriale US Robotics FaxModem 56 Kb. Peraltro il convertitore mi e' stato venduto praticamente senza nessuna indicazione del chip interno ed io ovviamente non ho piu' il miniCD di installazione


Una volta inserito il convertitore in /var/log/messages compaiono le seguenti righe

Aug 21 16:21:06 kranz kernel: [  107.649459] pl2303 2-1:1.0: pl2303 converter detected
Aug 21 16:21:06 kranz kernel: [  107.661505] usb 2-1: pl2303 converter now attached to ttyUSB0
Aug 21 16:21:06 kranz kernel: [  107.661557] usbcore: registered new interface driver pl2303
Aug 21 16:21:06 kranz kernel: [  107.661565] pl2303: Prolific PL2303 USB to serial adaptor driver
Aug 21 16:23:24 kranz kernel: [  245.756599] Marking TSC unstable due to TSC halts in idle

come si puo' vedere in Debian il convertitore e' riconosciuto come un pl2303 e si collega in automatico come porta virtuale alla /dev/ttyUSB0

per la cronaca non ho mai avuto l'alimentatore del modem (perche' mi e' stato regalato) e tirando a caso ho visto che servono 12 V con la seguente pedinatura


Esempio GUI con TKinter

Un esempio di uso della GUI Tkinter su Python 3.2 (da confrontare con questo post)



------------------------------------------
import tkinter as tk
from tkinter import ttk

class App:


    def __init__(self):
        self.root = tk.Tk()

        self._job = None
        self.root.title("Progress Bar")

        self.frame = tk.Frame(self.root, width=200, height=10)
        self.frame.pack()
       
        self.slider = tk.Scale(self.root, from_=0, to=100,
                               orient="horizontal",
                               command=self.updateValue, length=200)
        self.slider.pack()

        self.lab = tk.Label(self.root, text="         ")
        self.lab.pack()
   
       
        self.pbar = ttk.Progressbar(self.root, length=200,mode="determinate", maximum=100)
        self.pbar.pack(padx=5, pady=5)
        self.pbar.start
       
        self.root.mainloop()

    def updateValue(self, event):
        if self._job:
            self.root.after_cancel(self._job)
        self.pbar["value"] = int(self.slider.get())
        self.lab.config(text=str(self.slider.get()))
       

app=App()

------------------------------------------

Confronto Webcam

prima di tutto mi scuso per il soggetto

Un confronto tra differenti Webcam impiegate nelle stesse condizioni ambientali e con il medesimo software. La differenza in qualita' si vede..... e si paga
Webcam interna al portatile Samsung N150 Plus


Logitech V-UCV29 QuickConnect 2500 series

Logitech C310

Esempio GUI con PyQt

Un esempio di GUI mediante PyQT





import sys
from PyQt4 import QtGui, QtCore

app = QtGui.QApplication(sys.argv)
widget = QtGui.QWidget()

widget.setGeometry(200, 100, 220, 120)
widget.setWindowTitle('Slider Example')

label1 = QtGui.QLabel("Valore:      ", widget)
label1.move(80, 50)

slider = QtGui.QSlider(QtCore.Qt.Horizontal, widget)
slider.setGeometry(10, 10, 200, 30)
slider.setFocusPolicy(QtCore.Qt.NoFocus)

pb = QtGui.QProgressBar(widget)
pb.setGeometry(10, 70, 215, 20)

def getValue(value):
    label1.setText("Valore: "+str(value))
    pb.setValue(value)


   
widget.connect(slider, QtCore.SIGNAL('valueChanged(int)'), getValue)



widget.show()
sys.exit(app.exec_())

FigSpec FS-60CL

A lavoro mi hanno rifilato questo sensore iperspettrale cinese (pushbroom 400-1000 nm con larghezza di banda di 0.5 nm compatibile con DJI M...