EDNPN Lezione 1 – Arduino, l’ide blink di un led e altri strumenti utili

Iniziamo questa nuova serie di articoli partendo dalle basi. In questa lezione installeremo l’ambiente di sviluppo di arduino e scriveremo alcuni sketch per far blinkare un led, introducendo così il linguaggio di programmazione utilizzato da arduino, e illustreremo alcuni strumenti utili.

Cosa ci serve per questa lezione:

  • Una board arduino UNO (o compatibile)
  • Un Led
  • Una resistenza da 220 ohm (o un valore vicino).
  • Arduino Ide
  • Una BreadBoard (se non volete intrecciare resistenza e led! 🙂 )

Per l’installazione dell’ide (se gia non lo avete installato) vi suggerisco di scaricare quello disponibile direttamenet dal sito, invece di usare quello disponibile per la vostra distribuzione, questo perchè in più di un occasione mi sono trovato con versioni non aggiornate che avevano dei problemi a far funzionare alcuni tipi di skteches. La versione sul sito non ha bisogno di alcuna dipendenza, in quanto sono tutte contenute all’interno del pacchetto.

Quindi andate su http://arduino.cc/en/Main/Software#toc2 e scaricate la versione specifica per il vostro OS.

Se avete scelto la versione linux, il file scaricato avrà un estenesione .tgz, aprite una finestra del terminale (anche se probabilmente potrete farlo comodamente da gui, vi illustro comunque i comandi per installarlo e lanciarlo da command line), portatevi nella cartella dove avete scaricato l’ide e date il seguente comando:

tar xzf arduino-1.0.6-linux64.tgz -C /destination

Ovviamente sostituite il nome del file tgz con quello che avete scaricato voi. A queto punto se vi portate nella cartella dove lo avete installato, e date:

./arduino

Vi si dovrebbe aprire la finestra dell’ide arduino:

Arduino Ide Continue reading EDNPN Lezione 1 – Arduino, l’ide blink di un led e altri strumenti utili

Elettronica da niubbi per niubbi! – Presentazione

In questi ultimi tempi mi sto appassionando sempre più all’elettronica, e in particolar modo al mondo dei microcontrollori, sono partito come tutti da arduino, ho iniziato a fare esperimenti con accellerometri, motori di hard disk e sensori vari. Poi recentemente mi sono divertito a fare esperimenti programmando direttamente l’atmega invece di passare per l’arduino.

ednpn

Tutto questo partendo da 0, le mie competenze di elettronica erano pressochè nulle, e ora sono ancora basse, ma in queste settimane sto imparando molto, e ho deciso di condividere quello che imparo, quindi nelle prossime settimane inizierò una nuova serie di lezioni legate a questo mondo
Spiegando tutto dal punto di vista di un niubbo (per chi non conoscesse il significato, è l’italianizzazione di newbie, ovvero principiante) cercando di non dare nulla per scontato.

Come al solito le lezioni non avranno una scaletta ben definita, e spesso si tratterá di tutorial su cose che imparo man mano che faccio esperimenti. Gli argomenti trattati principalmente saranno su cose semplici e riguarderanno:

  • Arduino
  • Microcontrollori (Atmega e forse pic)
  • Schede di prototipazione della famiglia Launchpad TI

Ovviamente rimanendo nello spirito di questo sito le istruzioni di compilazione e installazione dei vari tool saranno linux-oriented. Nei prossimi giorni partiremo con la prima lezione che sará una lezione introduttiva su cosa serve per iniziare a sviluppare firmware per microcontrollori atmega (software, controller, etc.)

UPDATE:  Nell’iniziare le lezioni mi sono reso conto che probabilmente è più utile iniziare con qualcosa di più facile, e quindi partirò con una lezione introduttiva su arduino, cosa serve per lo sviluppo e qualche sketch di esempio.

 

 

Android Lezione 16 – Aggiungiamo le mappe alla nostra app Parte I

Iniziamo ora una serie di lezioni (il numero ancora non è definito) relativa ai servizi di google maps.

In questa prima parte vedremo principalmente i passi per configurare e installare i servizi di google maps. Google maps ora è diventato parte dei servizi di Play services.

Quindi prima di tutto occorre se non è stato gia fatto in precedenza installare i Play services. Come per altri componenti, questi si installano mediante l’sdk manager. Li potete trovare nella sezione “Extras”.

Una volta installati, per rendere disponibili questi servizi alla nostra app (e non incorrere in errori di compilazione del nostro progetto) dobbiamo importare il progetto google-play-services_lib dentro eclipse , questo progetto si trova nel seguente path:

~/sdkpath/extras/google/google_play_services/libproject/google-play-services_lib/

Dopo di chè dobbiamo aggiungerlo come libreria al progetto che utilizzerà google maps. Per farlo, aprite le properties del vostro progetto, aprite il tab Android e aggiungete il progetto google-play-services_lib nella sezione library:

Aggiungere play services lib a progetto Continue reading Android Lezione 16 – Aggiungiamo le mappe alla nostra app Parte I

Chrome Parameters editor, un estensione chrome

Ogni tanto sfrutto il mio blog anche per pubblicizzare i progettini a cui lavoro nel sempre più risicato tempo libero. In questo caso si tratta di una estensione per il browser chrome, che permette di visualizzare in maniera organizzata tutti i parametri presenti in una query string, permette inoltre di modificarli, aggiungerne di nuovi ed eliminarli, Potete inoltre  esportare la lista dei parametri in un file .csv (nel futuro si prevede anche l’aggiunta di altri formati, quali per esempio json, xml, etc)

 

Chrome parameters icon

L’estensione é open-source e i sorgenti sono disponibili al seguente indirizzo: https://github.com/c103/chrome_parameters

Mentre se volete installarla nel vostro browser, la trovate nel chrome store al seguente indirizzo: http://goo.gl/Z99pbQ

Ovviamente ogni feedback/critica è ben accetta. Mentre se avete dei bug e volete segnalarli, alla pagina github del progetto.

 

Android lezione 15 – Aggiungiamo un database con SQLite

In questa lezione vedremo come salvare dei dati della nostra applicazione in un database relazionale con SQLite. Per chi non lo sapesse, SQLIte è un database relazionale, che non necessita dell’installazione di nessun server, e tutto avviene all’interno di un file (dove ogni database è contenuto in un file differente).

Ora immaginiamo di voler sviluppare una applicazione che salvi delle note composte da un titolo all’interno di un database, in questa lezione vedremo come svilupparla (mi concentreró sulla parte relativa alla gestione del database, lasciando a voi tutto ciò che riguarda l’interfaccia grafica). Per utilizzare i database avremo bisogno di una classe che estende SQLiteOpenHelper, e faccia l’override dei metodi:

  • onCreate
  • onUpdate

E che abbia un costruttore che mediante super chiami il costruttore della classe padre. Iniziamo con il vedere la struttura base della classe:

public class DatabaseHelper extends SQLiteOpenHelper {
 
	public DatabaseHelper(Context context, String name, CursorFactory factory,
			int version) {
		super(context, name, factory, version);
	}
 
	@Override
	public void onCreate(SQLiteDatabase db) {
		// TODO Auto-generated method stub
 
	}
 
	@Override
	public void onUpgrade(SQLiteDatabase db, int oldversion, int newversion) {
		// TODO Auto-generated method stub
 
	}
}

Continue reading Android lezione 15 – Aggiungiamo un database con SQLite

Android Lezione 14 – I fragment

In questa lezione vedremo una delle feature introdotte con le versioni più recenti di android, per essere precisi con la versione 3. Si tratta dei Fragment, un altro modo per gestire la parte grafica della nostra applicazione, utile sopratutto se abbiamo layout specifici per tablet (ma non solo come vedremo).

Si tratta in pratica (secondo la definizione ufficiale) di una porzione dell’interfaccia grafica di un activity. Possiamo combinare più Fragment all’interno della stessa activity se vogliamo, come possiamo riusare lo stesso fragment all’interno di diverse Activity. In pratica si tratta di un “modulo” dell’activity, di una sotto sezione.

Questa caratteristica lo rende appuntio molto utile per gestire diversi tipi di schermi, rendendo l’interfaccia grafica della nostra applicazione più modulare.

É importante notare, che anche se è stata introdotta a partire dalla versione te, le caratteristiche dei fragment sono sfruttabili anche in versioni precedenti di android, utilizzando le support-library, che sono dei pacchetti jar, che contengono alcune features delle nuove versioni di android, utilizzabili su dispositivi meno recenti (da android 1.6 in su, prossimamente farò una lezione su come includere le support library nel vostro progetto).

In questo capitolo vedremo come sviluppare una applicazione con due layout distinti, uno specifico per smartphone, e uno specifico per tablet. I due layout saranno strutturati nella seguente maniera:

  • La versione smartphone avrà una prima schermata di menù, e poi in base alla selezione dell’utente si apriranno schermate distinte
  • La versione tablet avrá un menù sulla sinistra fisso con tre elementi, e nella parte destra verranno caricate le varie schermate in base alla selezione dell’utente (che avranno al loro interno delle semplici textView).

Quello che avremo sará che il layout per smartphone avrà i due fragment in due schermate distinte, mentre la seconda li conterrá entrambi all’interno della stessa chermata. Graficamente:

Fig 1. Fragments

Continue reading Android Lezione 14 – I fragment

Bloccare le richieste proxy verso apache (provenienti da botnet)

Questo articolo nasce da un esperienza personale, che ha causato diversi problemi al server su cui ospito i miei siti (e anche di altre persone). 

Quindi partiamo dall’inizio, e veniamo alle origini del problema, tutto nasce da una svista, nell’abilitare il mod_ajp sul server apache, abilitiamo per errore il parametro:

ProxyRequest On
DDOS

Continue reading Bloccare le richieste proxy verso apache (provenienti da botnet)

mplayer – Ridirigere l’audio su uscita hdmi

Oramai quasi tutti i nuovi portatili hanno una uscita hdmi, per collegare il nostro dispositivo a televisioni/monitor dotati di questa interfaccia. Ora la maggior parte delle distribuzioni con gnome/kde permetttfono di configurare facilmente il nostro server grafico per estendere/repilicare lo schermo su due monitor.

Ma se invece vogliamo riprodurre un film con mplayer sulla telivisione collegata via hdmi, e ridirezionare anche l’audio verso l’hdmi, facendo in modo che l’audio del film venga riprodotto direttamente dalla nostra televisione invece che dal computer.

LogoMplayer Image

Continue reading mplayer – Ridirigere l’audio su uscita hdmi

La macchina manocomandata

Approfittando delle feste natalize e un pò di relax,

un piccolo progetto che avevo in mente dai tempi del mouseglove ha preso vita! Ovvero la macchinina manocomandata.

Si tratta di un semplice prototipo basato su arduino e su un accelerometro, che si interfaccia con il telecomando della macchina radiocomandata, e permette di controllarne i movimenti invece che con i classici pulsanti, direttamente con il movimento della mano.

Aggiungendo un nuovo livello di interazione e divertimento 🙂

In questo video vedete in assoluto la prima prova di controllo della macchina con il “ManoComando”.

tutorial e non solo su linux e programmazione!