logo

mercoledì 29 dicembre 2010

Ubuntu: telecomando bluetooth

Che pensereste se vi dicessi che potrete stare belli comodi sul vostro divano a guardare un film sul vostro portatile con la vostra distro Linux preferita, il tutto senza dovervi mai scomodare per mettere in pausa o per alzare il volume? Con AnyRemote si può!
AnyRemote Bluetooth Logo 2
Prima di tutto, a cosa serve AnyRemote? È una applicazione client-server che, tramite un collegamento via bluetooth vi consente di utilizzare il vostro cellulare come un sorta di “telecomando” per applicazioni multimediali, quali ad esempio Totem o Xmms, ma anche per applicazioni più d’ufficio come oo-impress. Nel caso che vedremo appunto il nostro computer sarà il server e il nostro telefonino il client..
Innanzitutto vi serviranno un cellulare che disponga di tecnologia bluetooth e java, mentre per il vostro pinguino africano (o genericamente Debian-based) avrete bisogno di una chiavetta bluetooth e di alcuni pacchetti installabili dando un:
sudo apt-get install bluetooth bluez-gnome bluez-utils gnome-bluetooth libbluetooth-dev
Inoltre dando un:
sudo apt-get install alsa-utils gnome-alsamixer automake xautomation
Avrete già a disposizione i pacchetti, e le relative dipendenze, che vi serviranno nei casi di utilizzo che presenterò. Ora, per avere anyRemote, e la sua GUI, potete installarlo tramite apt, oppure andare sul sito ufficiale http://anyremote.sourceforge.net/ e scaricare i pacchetti targizzati AnyRemote e gAnyRemote, nel caso in cui utilizziate Gnome, o kAnyRemote, nel caso in cui preferiate KDE.
Io ho scaricato i pacchetti dal sito quindi vi descriverò le diverse fasi di installazione e configurazione. Per prima cosa, una volta scaricato il tar.gz di anyremote, lo spacchettiamo con un semplice:
tar xzf <nome_pacchetto>.tar.gz
Entriamo in seguito nella cartella appena creata. Per creare il file che servirà al make durante la fase di installazione diamo un:
./configure
Mentre per installare diamo:
make
sudo make install
Adesso abbiamo installato l’ applicazione principale e quindi sareste già in grado di utilizzarla tramite riga di comando. Ma perché non sfruttare una comoda interfaccia grafica per terminare di configurare e poi utilizzare il nostro programma?
Scarichiamo sempre dal sito ufficiale il pacchetto .deb per il nostro desktop-manager preferito e installiamolo così:
sudo dpkg -i <nome_pacchetto>.deb
E lanciamo la nostra stupenda GUI da shell, oppure create una icona di avvio direttamente sul Pannello principale o sul Desktop, decidete voi insomma cosa vi risulta più comodo ( :-) ).
L’ interfaccia che ci troveremo davanti è la seguente:
AnyRemote GUI
La schermata iniziale di gAnyRemote
La schermata bianca, che, a mio avviso, ad un primo utilizzo potrebbe intimorire l’utente, andrà riempita con i file di configurazione delle applicazioni che vorremo utilizzare da remoto e l’applicazione stessa la renderemo a tutti gli effetti attiva tramite il pulsante “Run” ben visibile in basso.
Di default vi sono già parecchi file di configurazione a disposizione ed inoltre, grazie ad una veloce googlata, ne troveremo tantissimi altri su internet, per le più disparate applicazioni (di default è compreso anche il .cfg per Kopete, nel caso in cui lo utilizziate come programma di chat, qui non ne tratterò visto che io non lo utilizzo :-P ).
Riprendendo con la nostra configurazione, diciamo che abbiamo voglia di vederci un film e la nostra applicazione preferita per riprodurli sia Totem: perfetto. Andiamo in “Setup –> Proprietà” e, nella finestra che comparirà, il nostro interesse si dovrà rivolgere particolarmente a quel tasto appena sotto lo spazio bianco con la scritta “Add”.
AnyRemote GUI 2
Usiamo Gnome? Selezioniamo l’autostartup apposito e dedichiamoci ad aggiungere i nostri .cfg
Ci comparirà una finestra di apertura file in cui dovremo indicare il percorso dei file di configurazione. Quello di Totem è uno di quelli già a disposizione di default, quindi selezioniamo la cartella origine di AnyRemote, andiamo in:
cfg-data/Server-mode/
e selezioniamo:
totem.cfg
AnyRemote GUI 3
Selezioniamo il file .cfg di totem tra quelli di default
Clicchiamo su OK e torniamo alla finestra precedente ma questa volta vedremo comparire il file appena selezionato nello spazio bianco. Ora possiamo pure premere sul famoso tasto “Run” e abbiamo terminato le cose da fare sul nostro pinguinozzo.
Tocca al nostro futuro “telecomando” ora ( ;-) ).
Passiamo via bluetooth ( per rimanere in tema ) sul nostro cellulare l’archivio anyRemote.jar che troviamo sempre nella cartella di origine del nostro programma.
AnyRemote GUI 4
Inviamo l’archivio al nostro cellulare tramite la comoda funzione di Gnome “Invia a”
Installiamo l’applicazione e avviamola. Ci troveremo davanti ad una schermata semplicemente vuota ( :-) ). Entriamo nel menu “Opzioni” e tramite l’opzione “Search” dovremmo trovare un indirizzo simile a questo :
AnyRemote Nokia 1
Abbiamo trovato il nostro anyRemote-server attivo sul pc
Selezioniamo l’indirizzo trovato e rispondiamo di Si alla successiva domanda. A questo punto vedrete magicamente Totem aprirsi automaticamente sullo schermo del vostro pc, mentre sullo schermo del vostro cellulare comparirà una mappa della tastiera con i tasti assegnati a ciascuno per le diverse funzioni.
Totem
Magia… :-)
Selezionate dal pc il film preferito, mettetevi comodi sul divano e godetevi lo spettacolo. Adesso, a meno che qualcuno di vostra conoscenza non abbia l’incredibile capacità di sapere che siete alla scena clue del film e vi chiami in quel preciso istante, non vi dovrete più alzare per abbassare il volume o mettere il film in pausa.
NB – Potreste avere difficoltà per alzare o abbassare il volume. Questo perchè di default lo script di configurazione di totem indica come “Master” il vostro speaker principale. In questo caso date da shell questo comando:
amixer scontrols
e controllate. Nel mio caso ho dovuto cambiare Master in PCM, come segue:
Amixer 2
Modificate all’altezza del puntatore
Totem 3
Ecco il nostro “telecomando” attivo
Come ho già detto esistono tanti altri file .cfg disponibili di default per le più disparate applicazioni. Uno molto carino è il “Mouse Test” tramite il quale potrete guidare il vostro mouse, comprensivo dei tre tasti e delle relative funzioni, sul vostro desktop direttamente dal vostro cellulare.
Uno che ho trovato molto particolare è lo script di configurazione per ooimpress : una volta aperto potrete selezionare direttamente dal cellulare il file che volete aprire scorrendo le cartelle esistenti sul vostro pc ed in seguito mettere a schermo intero la vostra presentazione e scorrere le slide, il tutto ovviamente senza neanche avvicinarvi al vostro pc.
Vi ricordo che, una volta che avrete inserito i diversi file .cfg seguendo la procedura sopra descritta, prima rendere attivo il programma server sul vostro pinguino dovrete selezionare l’applicazione che dovrà essere lanciata una volta stabilito il collegamento via bluetooth.
ooimpress
Server attivo e pronto per aprire la nostra presentazione
Esiste anche un file-viewer che vi permetterà di scorrere i file e le cartelle di tutto il vostro pc e, nel caso, anche modificare, rinominare, creare nuove cartelle, ecc..
Totem 2
Il nostro mouse remoto
Per concludere, ritengo che questa applicazione sia stata veramente una grande idea e realizzata anche in maniera molto efficace. Inoltre gli script possono essere modificati a piacimento ed in maniera molto semplice nel caso in cui vogliamo che un determinato tasto del cellulare sia collegato ad una funzione diversa da quelle prestabilite.
ooimpress 2
Selezioniamo la nostra presentazione con Impress
Ho testato personalmente questa applicazione su Nokia n70, Nokia 6111 e non ho riscontrato problemi di alcun tipo. Inoltre una lista completa dei telefoni compatibili con questa applicazione la potete trovare sempre al sito ufficiale del progetto.
Alla prossima!

sabato 25 dicembre 2010

Ubuntu non parte più

problemone dopo aver installato Dolphin (interfaccia grafica kde), ho installato dolphin per sbaglio, notando un notevole cambiamento dell'ambiente grafico provo a riavviare dopo un casino che ho fatto provando ad installare dal gestore dei pacchetti robe che a me sembravano pacchetti per python. all'avvio gia la schermata d'accesso è cambiata, non mi ero accorto di aver installato dolphin, digitando username e password appariva una schermata completamente nera con il puntatore del mouse visibile ma non avevo accesso a nessun comando, dopo un po' che ci sbatto senza alcun risultato provo a cercare una soluzione da internet collegandomi da windows e trovo come ripristinare l'interfaccia grafica gnome, fortuna che da modalita recovery sono riuscito ad accedere al terminale con internet(recovery mode/shell con rete).
e digitando,

codice: sudo apt-get install gnome-core gdm

dopo che ha finito di lavorare digitare,

codice: sudo apt-get install ubuntu-desktop gdm

all'apparenza era tornato tutto come prima, in effetti la grafica era gnome e potevo usare il pc, eccetto internet però, cioè mi spiego meglio provo a collegarmi con skype ed ero on-line, avvio firefox e dopo un po' di caricamento mi dava errore, non capendo cosa fosse comincio a sbattere un po' senza risultati. Fino a quando mi ricordo che avevo salvato un file che spiegava come configurare internet da terminale.
Per configurare il modem:
1. Scegliere Applications->Accessories->Terminal
2. Nel terminale, digitare:

codice:sudo pppoeconf

3. Un programma testuale guiderà nei successivi passi:         

lunedì 13 dicembre 2010

Arduino Domotica

Dopo un po di tempo sono riuscito a creare (pur se ancora incompleto) un programmino per la gestione domotica con la scheda Arduino e Python.
Il software dovrebbe comunicare con la scheda che a sua volta controlla degli input output.
qui sotto alcune immagini che ho stampato con il comando (alt+stamp{che si trova dopo F12}),con Ubuntu

Questa finestra appare all'avvio del programma, in cui bisogna inserire username e password, gia impostati nel codice, e si possono cambiare solo dal codice che ovviamente si può proteggere.


Se si digita user e password errati, appare il messaggio di errore fino a quando non lo si digita correttamente, non esiste un numero di volte limitato per la digitazione, e quindi non si blocca niente continua a dare i messaggi precedenti fino a quando non si chiude il programma.
Digitando user e password correttamente e cliccando su "conferma" si avvia il programma vero e proprio, il tasto "invio" non è stato abilitato, solamente il tasto "tab" funziona di Default, si può premere il tasto "conferma" selezionandolo con "tab" e premendo la "barra spaziatrice".
Qusto è il programma da sinistra a destra c'è il pulsante per avviare un editor di testo creato sempre da me, poi delle checkbutton per aprire o chiudere le porte, alla fine il pulsante per testare le porte disponibili.
cliccando il tasto "Arduino", si apre la finestra dell'editor: con menu,pulsanti,e un riquadro dove scrivere del codice per la programmazione della scheda "Arduino".

le due finestre sopra appaiono quando viene premuta la checkbutton e in base alla porta che si vuol gestire vengono visualizzati questi messaggi.

giovedì 2 dicembre 2010

Creare pacchetti di installazione .deb

Il pacchetto debian-package-maker si trova nei repository di Ubuntu e richiede la presenza di mono installato, si trovano entrambi su Synaptic. Una volta installato lo ritroveremo nel menu ApplicazioniProgrammazione.
Debian Package Maker - Install Structures
Il programma appena avviato si presenta con 3 schede: la scheda Install Structures conterrà i files da installare con i relativi percorsi dove copiarli.
Debian Package Maker - Package Info
La seconda scheda Package Info conterrà le informazioni sul pacchetto quali l’autore, la descrizione, la compatibilità e altro.
L’ultima scheda Logs mostrerà infine l’esito delle operazioni nella creazione del pacchetto.
Menu Optional Fields
Tramite il menu Optional Fields è possibile aggiungere le schede per definire i pacchetti aggiuntivi collegati:
  • Package Dependencies per pacchetti necessari all’uso
  • Package Pre-Dependencies per pacchetti necessari all’installazione
  • Recommended Packages per pacchetti raccomandati che verrebbero utilizzati dal programma
  • Suggested Packages per pacchetti suggeriti
  • Packages that May Break per pacchetti che se installati potrebbero dare errori col programma
  • Packages that May Conflict per pacchetti che se installati generano conflitti
  • Packages that Will Be Replaced per pacchetti che verrebbero sostituiti installando il presente
  • Virtual Packages per pacchetti virtuali aggiuntivi
  • Scripts per aggiungere script di installazione (preinst, postinst, postrm) che verrebbero eseguiti al momento dell’installazione o disinstallazione del pacchetto per compiere determinate azioni
Per aggiungere un pacchetto correlato, attivare l’opzione dal menu Optional Fields e apparirà la scheda corrispondente nella finestra del programma.
Debian Package Maker - Dependencies
Sarà possibile specificare il nome del pacchetto e il tipo di requisito sulla versione, generalmente GREATER THAN OR EQUAL TO per indicare la versione minima necessaria. Confermare il pacchetto indicato premendo il pulsante Add.
Il pulsante in basso Create Package lancerà infine la generazione del pacchetto deb con le opzioni indicate.
Oltre la compilazione manuale il programma presenta anche una procedura guidata dal menu File che con alcuni click in sequenza compilerà i campi, ma data la semplicità dell’applicativo non si rivela strettamente necessaria.
Prima di concludere segnalo alcune anomalie che potrebbero disorientare: ad oggi il programma genera errori se si usano nomi di files con spazi e che tuttavia non vengono mostrati nella scheda Logs.
Inoltre nell’inserimento della descrizione, se su più righe, lasciare almeno uno spazio all’inizio di ogni riga e creare righe vuote utilizzando un punto o un trattino.
Inoltre quando si riapre un progetto salvato le schede aggiuntive verranno nascoste e andranno riaperte utilizzando il menu Optional Fields.
Per queste ragioni si raccomanda di eseguire il programma tramite riga di comando, anziché da interfaccia grafica, eseguendo il programma debianpackagemaker. In questo modo tutti gli eventuali errori non mostrati nella finestra Logs saranno visibili nella finestra del terminale. Per il resto si tratta di un’applicazione comoda e semplice.

Python 2.6

Inizialmente non volevo iniziare a studiare il linguaggio di programmazione Python, perchè credevo che fosse chissa che, e che avrei impiegato mesi prima di realizzare qualcosa.quindi ho iniziato con gambas che è simile a  Visual basic cioè programmazzione grafica ad oggetti. Poi stimolato da diverse persone, non ultimo un professore di elettronica, ho iniziato ha cercare documentazioni su internet fino a quando trovo una video guida, fatta bene ed ho cominciato a seguire questi tutorial. Poi tra i tutorial e qualche altra ricerca ho realizzato ma non ancora terminato un programmino che vorrei dedicare alla gestione di Arduino. Eseguendo il programma appare una richiesta di username e password, se sono corrette avvia il programma altrimenti appare un messaggio di errore:Username Password errati.



CODICE:
from Tkinter import *
from tkMessageBox import *

def consenti():
   e=user.get()
   d=pas.get()
   if e == "arduino" and d == "arduino":# impostazione user e password da digitare per l'accesso.
       accesso.destroy()#se user e pas sono esatti si chiude accesso e si apre arduino
       arduino=Tk()#crea la finestra
       arduino.geometry("1700x1000")#dimensiona la finestra
       arduino.title("Arduino Domotica")#titolo della finestra(cioè testo che compare nella barra del titolo)
       arduino1=Button(arduino,text="Arduino").pack()#crea un pulsate
       arduino2=Button(arduino,text="Esci",command=domanda).pack()
   else:
       showerror("Errore","Username o password errati")

   
def domanda():
    print "ok"

accesso=Tk()
accesso.geometry("200x200")
accesso.title("Accesso")
c=Label(accesso,text="Digita Username e Password").pack()
user=StringVar()
pas=StringVar()
a=Label(accesso,text="Username:").pack()
x=Entry(accesso,textvariable=user).pack()
b=Label(accesso,text="Password:").pack()
y=Entry(accesso,textvariable=pas).pack()
conferma=Button(accesso,text="Conferma",command=consenti).pack()


questo è il codice per fare cio che ho scritto sopra.
forse metterò le immagini se riesco a fare un capture Desktop.