Archivio

Archivio per la categoria ‘tech’

Hack Reality – Raccolta di risorse per l’Hackathon di Whymca

In queste settimane ho lavorato presso il FrankensteinGarage per preparare il materiale per sabato 18 febbraio (Hackathon di Whymca). Ho tenuto traccia dei link e degli argomenti che abbiamo utilizzato e a cui ci siamo ispirati. Li condivido con voi sperando che vi siano utili!

Programmare gli Attiny

RFID

bluetooth

SMS

DATA FLASH

POWER

Processing + Arduino/Attiny

Categories: fablab, tech Etichette: , , , ,

Riparare per pattern e giocare a scacchi

03.02.2012 1 commento

Riparatori e giocatori di scacchi ragionano, se esperti, per pattern.
Il giocatore esperto di scacchi individua configurazioni di mosse e pezzi e si prefigura l’evoluzione della partita in modo rapido, escludendo a priori molti rami dell’albero delle possibilità. Lo sfoltimento delle scelte avviene anche grazie all’esperienza accumulata e alla letteratura presente: esistono pagine e pagine sulle possibili aperture di partita (e non solo sulle aperture)!
Il giocatore alle prime armi cerca di elaborare l’albero completo di mosse e contro-mosse. Sulla carta l’operazione è infallibile, ma la mente umana non ha tali capacità di calcolo.

Il riparatore esperto si comporta un po’ come lo scacchista. Quando mi sottopongono un oggetto da riparare, lo vedo nel suo insieme e colgo possibili spunti ed indizi che rivelino il tipo di guasto e la sua risoluzione. Questo primo approccio tende a sfoltire le infinite possibilità e mi viene ‘facile’ per l’esperienza (e la mia non è molta) accumulata.
Nel caso peggiore in cui non è possibile individuare nessuno schema preciso, si scende in dettaglio, mettendo mano a schemi, diagrammi ed effettuando calcoli e misure precise, cercando di individuare l’anomalia e il problema (e procedendo un po’ a tentativi).

Riparare per pattern è rapido ed è facile se l’oggetto che sto analizzando è stato ben progettato. Un’oggetto ben progettato segue pratiche consolidate, schemi sicuri… pattern!
In elettronica i pattern sono diffusi e numerosi come in molte altre attività umane di progettazione e costruzione. Esistono configurazioni di componenti per filtri, soluzioni per gli stadi di amplificazione e di alimentazione, combinazioni di transistor per risolvere le più disparate esigenze.

Filtro passa basso

Questi ‘pattern’ si ricavano da un qualsiasi libro di elettronica. Uno particolarmente bello ed utilissimo è Pratical Electronic for Inventors.

Specchio di corrente

Spesso si prende lo schema suggerito nei datasheet e lo si adatta alla propria esigenza, modificando solo i valori di alcuni componenti. Anche per altri ambiti in cui è possibile riparare gli oggetti, l’operazione è facilitata se l’oggetto nasce da dei pattern, cioè se nella ‘materia’ originale sono stati rispettati dei pattern nella fase di progettazione.

Ho iniziato a riparare oggetti elettronici per caso, all’eta di 12/13 anni. Amici e parenti vedendo il mio impegno nel trafficare con fili e transistor ogni tanto mi affidavano elettrodomestici e dispositivi irrecuperabili e, a volte, riuscivo a rimetterli in sesto. Mi è capitato di farlo anche per lavoro, menre studiavo all’università.
Ritengo di aver una modesta esperienza nella riparazione di circuiti elettronici, da cui i ragionamenti di questo post.

Riporto qui di seguito il libro che ho citato nel post. E’ veramente meraviglioso!

Categories: business, fablab, tech Etichette: , ,

Una sorpresa da Softpedia – Multicronftp

23.01.2012 2 commenti

Una sorpresa inaspettata! Qualche anno fa ho sviluppato un tool per aggiornamenti multipli e temporizzati via FTP. Ho messo il tutto su sourceforge e quasi non mi ricordavo più neppure della sua esistenza. L’altro giorno mi arriva questa mail di SoftPedia:

As you may already know, Multi Cron Ftp, one of your products, is part of Softpedia’s database of software programs for the Windows operating system.
It is featured with a description text, screenshots, download links and technical details on this page:
http://www.softpedia.com/get/Internet/Servers/Server-Tools/Multi-Cron-Ftp.shtml

The description text was created by our editors, using sources such as text from your product’s homepage, information from its help system, the PAD file (if available) and the editor’s own opinions on the program itself.

“Multi Cron Ftp” has been tested in the Softpedia labs using several industry-leading security solutions and found to be completely clean of adware/spyware components. We are impressed with the quality of your product and encourage you to keep these high standards in the future.
To assure our visitors that Multi Cron Ftp is clean, we have granted it with the “100% FREE” Softpedia award. To let your users know about this certification, you may display this award on your website, on software boxes or inside your product.
More information about your product’s certification and the award is available on this page:
http://www.softpedia.com/progClean/Multi-Cron-Ftp-Clean-124102.html

Categories: java, zmaker Etichette: , ,

Corso di cucina fusion per Arduino – testo del workshop (parte 4)

SEZIONE 4 – Le cucine

Negli scorsi post abbiamo visto che l’hardware può essere reso flessibile ed adattabile unendolo al software. Questa operazione sta divenendo sempre più semplice e alla portata di tutti, grazie alla diffuzione di schede a microcontrollore come arduino.
Il codice utilizzato in arduino sembra molto semplice e si sarebbe portati a dire che sia un dialetto di java o javascript. In effetti è C. I listati (sketches) sono molto semplici, ma poi Arduino (l’IDE) compie un’opera di riassemblaggio completando il codice e compilandolo con il compilatore avr-gcc.
Il semplice listato del led lampeggiante:

 void setup() {
 pinMode(13, OUTPUT);
 }
void loop() {
 digitalWrite(13, HIGH);
 delay(1000);
 digitalWrite(13, LOW);
 delay(1000);
 }

Scritto in C diverrebbe:

#include <avr/io.h>
 #include <util/delay.h>
int main(void)
 {
 DDRB = _BV(PB0);
 for(;;){
 PORTB = _BV(PB0);
 _delay_ms(500);
 PORTB = 0;
 _delay_ms(1500);
 }
 return 0;
 }

Arduino non fa la traduzione del codice ma aggiunge gli include e fornisce un set di funzioni e macro ‘user-friendly’.
I programmatori noteranno subito la mancanza di un debugger. Se varchiamo la soglia della cucina (o alziamo l’angolo del tappeto), ci accorgiamo che possiamo lavorare direttamente in C. Potrebbe risultare più ostico, ma in questo modo potete utilizzare il vostro IDE preferito (eclipse o netbeans), poter contare su di un simulatore, fare debug e perfino TDD (io ho fatto degli esperimenti con seatest).
Varcata la soglia scopriamo un mondo meraviglioso, in cui possiamo abbandonare arduino per sviluppare su tutta la famiglia di microcontrollori della Atmel. Se volete realizzare piccoli prototipi, potete utilizzare i piccoli attiny (il 44, l’85 o il microscopico 10).
La programmazione avviene utilizzando arduino stesso come programmatore o costruendo un apposito cavo da collegare ad una porta seriale (cavo DASA).
Al FrankensteinGarage / FabLab Milano abbiamo fatto qualche esperimento con attiny e il cavo DASA: una piccola schedina che abbiamo chiamato ABNormal.

La schedina ABNormal con Attiny85

Categories: tech Etichette: , , , ,

Corso di cucina fusion per Arduino – testo del workshop (parte 3)

Arduino è un po’ come il pongo: è possibile plasmarlo e modificare il comportamento dei suoi ‘piedini’. Osservando la schedina vederete tanti pin contrassegnati da dei numeri. Ogni pin può comportarsi come un tubo da cui l’acqua può uscire o entrare. L’istruzione da utilizzare per definire il comportamento di un pin è: pinMode. Richiede il numero del pin e il tipo di comportamento INPUT o OUTPUT. Nel caso di acqua che esce (OUTPUT), è come se avessi un rubinetto. Questi rubinetti possono avere diversi comportamenti. Abbiamo rubinetti ‘digitali’ che possono essere solo aperti o chiusi, rubinetti analogici (che possono assumere un valore da 0 a 255) o rubinetti PWM.
Un rubinetto PWM è un rubinetto molto particolare. PWM sta per Pulse Width Modulation. Quando ne illustro il comportamento lo chiamo anche il rubinetto fotografico. Immaginiamo di collegarlo ad un led. Al cinema l’illusione dell’immagine in movimento è data dalla sovrapposizione di 24 foto in rapida successione (1 secondo). Il rubinetto fotografico può essere solo aperto o chiuso. Se lo imposto a 0 è come se avessi una successione di 24 foto di un led spento. L’osservatore vedra un led spento. Man mano che apro il rubinetto è come se pian piano sostituisca delle foto di led accesi a quelle di led spenti. Man mano che aumentano le foto di led accesi, sembrerà che l’intensità del led sarà maggiore. Quando il rubinetto è tutto aperto avrò una successione di sole foto di led accesi.
Un pin PWM fa uscire ‘acqua’ ad intervalli regolari; in un secondo avrò un periodo di tempo in cui sarà del tutto aperto e il restante tempo in cui sarà chiuso. Il comando da usare è analogWrite. Il funzionamneto PWM si ha solo sui pin PWM che sono indicati con la sigla PWM o con una tilde ~.

Durante il workshop ho svolto una serie di piccoli esercizi per creare un timer e man mano migliorarlo. Trovate gli sketches e i circuiti sulle slide. Al termine degli esercizi abbiamo ottenuto un timer musicale programmabile. Avrei voluto inserirlo in un pomodoro di lego, ma risultava troppo grande. Vedremo inseguito come risolvere il problema.

Un piccolo inciso.
E’ possibile eseguire test sull’hardware e fare TDD sull’elettronica? direi di sì. Ho indicato possibilità:
- posizionare dei ‘flag’: led o altri checkpoint o punti di misura semplici da verificare
- predisporre dei punti in cui effettuare delle misure più precise (magari intervenendo con un oscilloscopio per verificare l’evoluzione temporale dei segnali)
- creare un circuito che avvolga come un polipo il circuito primario e vada a verificarne il funzionamento mediante dei test programmati nel firmware.

Quest’ultima strada mi pare molto interessante e mi riprometto di approfondirla ulteriormente su queste pagine.

SEZIONE 3 – Il pranzo

Ora possiamo sederci a tavola e goderci quanto abbiamo cucinato. Abbiamo compiuto 4 iterazioni; ogni iterazione era composta da 5 passi:

  • ideazione
  • preparazione
  • verifica
  • deploy
  • evoluzione

Esitono altri modi di procedere? Ai primordi delle mie esperienze elettroniche (inizio anni ’80) per fare dei prototipi era necessario saper saldare e utilizzare delle piastre chiamate 1000fori. Si utilizzano ancora: sono delle basette in vetronite o bachelite forate su di cui si infilano i componenti; sul lato opposto si fanno saldature e collegamenti. Anche se si è bravi ed ordinati, sul lato dei collegamenti si crea spesso un groviglio di cavi e saldature. Ogni modifica al circuito è dispendiosa: richiede destrezza nel saldare e dissaldare i componenti e c’è sempre il rischio di danneggiare quanto si è già fatto (vi pare qualcosa di nuovo?).
Si usano ancora le basette 1000fori, per crare prototipi più stabili di quelli realizzati sulle breadboard.
Per avere prototipi ancora più definitivi si possono realizzare circuiti stampati (PCB) anche a livello amatoriale. Un circuito stampato è una basetta con incise le connessioni tra i componenti. E’ ben poco modificabile.

[fonte immagine Alberto Sordi:  http://www.06blog.it]

Categories: business, tech Etichette: , , ,

Corso di cucina fusion per Arduino – testo del workshop (parte 2)

2. Cucinare
La capacità pratica necessaria per iniziare a realizzare qualche prototipo è minima. E’ sufficiente saper spellare qualche filo elettrico. I fili che si utilizzano sono quelli con l’anima rigida, tipo i fili del telefono (qyelli bianchi e rossi) o i fili del citofono. I fili con l’anima composta da una treccia di piccoli fili in rame (a trecciola) non sono adatti.

A casa cucinando, capita spesso di modellare la ricetta con quello che si trova nel frigorifero o nella dispensa.
Nel nostro frigorifero gli ingredienti sono i componenti elettronici. Ne esistono migliaia di tipi con forme e funzioni differenti. Per non farsi intimorire e comprenderli senza fatica, li si deve immaginare come tubi dal comportamento molto particolare.

Il LED – è un tubo in cui l’acqua può scorrere in un solo senso. Ha un mulinello che quando gira, produce della luce. Esistono molti tipi di LED: rotondi, quadrati, triangolari, piccoli o molto grandi, più o meno luminosi, gialli, verdi, rossi, blu, bianchi e anche infrarossi o laser.

Pulsanti ed interruttori – sono tubi che possono interrompere il flusso dell’acqua. Pensiamo ad un pulsante: è un tubo normalmente chiuso, in cui l’acqua non scorre. Si potrebbe pensare come ad un rubinetto con la molla. Può essere o tutto aperto o tutto chiuso. Se premo il tasto con un dito, apro il rubinetto e l’acqua scorre finchè tengo premuto.

Resistori – sono dei tubi con una strettoia in cui l’acqua fa fatica a passare. Si pensi a quando si innaffia il prato con un tubo di gomma e qualcuno ci fa un dispetto calpestando il tubo con il piede. Il restringimento (resistenza) del tubo è indicato da un numero: più è grande il valore e più il tubo è stretto. Il valore si misura in Ohm ed è indicato con un sistema di quattro strisce colorate. Le prime 2 indicano la prima parte del valore, la terza striscia indica il moltiplicatore (quanti zero devo mettere dopo i primi 2 numeri). L’ultima banda colorata solitamente è di colore dorato ed indica quanto è preciso il valore del componente.

Breaboard – é la nostra padella. E’ una tavoletta di plastica forata. I fori sono organizzati in file. I fori su ogni fila sono collegati tra loro. Possiamo pensare ogni fila di fori come ad un tubo di raccordo, dotato di tanti bocchettoni.

Il componente principale per le nostre ricette è arduino, che rappresenta un oggetto fisico (una scheda a microcontrollore), una comunità virtuale e non e un ambiente di sviluppo.

In fondo al frigorifero troviamo anche un pomodoro… vedremo poi a cosa ci servirà.

L’utimo ingrediente è il software che andremo a scrivere in uno sketch. Ogni sketch è composto da due parti:
il setup – che viene eseguito una sola volta all’accensione del dispositivo o inseguito ad un reset,
il loop – che viene ripetuto continuamente.

Categories: tech Etichette: , ,

Corso di cucina fusion con Arduino – testo del workshop (parte 1)

Abstract

Prendete una Arduino board, alcune linee di codice, una cucchiaiata di breadboard. Spolverate con dei componenti passivi. Saldate a 200° con buono stagno. Versate in una pentola e mescolate il tutto con metodo Agile. Lasciate raffreddare per pochi secondi. Servite il vostro prototipo elettronico e lasciate di stucco i vostri clienti! Ecco la ricetta per creare rapidamente prototipi elettronici su cui sviluppare i vostri prodotti di successo. Lo sviluppo Agile si puo’ applicare anche all’elettronica senza essere grandi esperti di circuiti. Durante il workshop spiegheremo come costruire un prototipo per dimostrare il nostro approccio in un contesto diverso dal software.

1. Intro

Alla IAD2011 ho voluto proporre un corso di cucina dove l’ingrediente principale è Arduino. Ho utilizzato la metafora della cucina e del cuoco per rendere più digeribile l’argomento.

L’hardware è notoriamente statico e poco agile, ma può essere reso adattabile e flessibile alle mutevoli esigenze di clienti e progetti “avvolgendolo” con il software.

Il workshop è stato pensato non per gli esperti del settore della progettazione elettronica (abituati ad approcci molto più rigorosi e scientifici), ma per una nuova ed inaspettata utenza: artisti, designer, architetti, inventori, innovatori.

Sono persone interessate alle potenzialità dell’elettronica, ma abbastanza refrattarie agli approcci troppo ‘ingegneristici’. Alcune di queste persone si definiscono tinkers. La parola, in britannico, è quasi offensiva (alla stregua del nostro ‘zingaro’) ed indica quei personaggi che giravano per le case raccogliendo rottami metallici per fonderli o ripararli. I tinkers moderni sono degli artisti che cercano di riparare, rinnovare o creare nuovi oggetti procurandosi la materia prima principalmente da materiale di riciclo.

Se vogliamo i tinkers sono attori del movimento più ampio del physical computing. Tale disciplina vuole realizzare oggetti interattivi in cui l’elettronica e il software sono invisibili dall’esterno. Si cerca di produrre qualcosa di diversamente interattivo. Si esplorano nuove interfacce tra uomo ed oggetti. Il risultato di tale attività sono inizialmente oggetti artigianali o artistici in grado di stupire chi ne faccia uso.
Gli attori di questo movimento si muovono su una linea in bilico tra arte e scienza. Inizialmente non si curano troppo dei dettagli implementativi e cercano solo in seguito di risolvere i problemi tecnologici che si presentano.
Per lavorare in questo modo è necessario sviluppare una certa inventiva: è possibile farlo, sfuggendo ai propri modelli mentali. I modelli mentali sono il flusso abitudinale dei nostri pensieri: come un blocco di gelatina corroso da un rivoletto d’acqua. I pensieri scorrono nel canyon ed è difficile uscirne. Le persone più fantasiose o artistiche hanno sviluppato delle strategie di fuga (per esperienza o per studio – chiedetemi come!).

Per un’opera di Physical Computing, l’elettronica è come il soffio vitale. Nonostante sembri una materia complessa, può essere spiegata (nei suoi concetti fondamentali) con le analogie corrente – acqua e componente – tubo.
La realizzazione di prototipi elettronici è facilitata, attualmente, dalla possibilità di impiegare dei microcontrollori in modo molto semplice. Un microcontrollore è un piccolo elaboratore che può essere programmato e quindi sostituire circuiti molto più complessi e difficili da realizzare.
Ci sono infinite possibilità, in fondo l’elettronica è dappertutto (robot, automatismi, elaborazione audio, circuiti musicali, timer, termostati, sostituzione di dispositivi non più funzionanti…).

Cucina fusion per Arduino – IAD2011 – slides e materiale

Italian Agile Day 2011 – Corso di cucina fusion elettro-agile con Arduino

Ecco i sorgenti (sketches) degli esempi utilizzati durante il workshop.
Lasciate un feedback su Joind.in! Grazie
Categories: business, design, tech Etichette: , ,

Il computer nella scarpa – Workshop FabLab Milano

Ho tenuto ieri sera, al Frankenstein Garage, la terza serata dedicata al physical computing. Questa volta abbiamo osato di più e abbiamo utilizzato arduino pre programmare dei chip della ATMEL (l’attiny85). Ora manca solo l’utima tappa: la IAD! Ho abbastanza materiale per parlare per 3 ore. Il problema sarà ridurre tutto a 45 minuti.

IAD2011 – Corso di cucina fusion Elettro-Agile con Arduino

Tra pochi giorni presenterò all’Italian Agile Day. Per preparami ho organizzato 3 workshop sull’argomento. Sono a metà di questa lunga corsa e mi pare di dover sostenere una tesi di laurea alla settimana. I workshop mi servono per preparare lo speech finale del 19 novembre. Sto investigando il mondo del tinkering e del physical computing dove lo sviluppo agile la fa da padrone (consciamente ed inconsciamente). L’agilità di questo tipo di approcci mi ha aiutato a risolvere un caso urgente: abbiamo realizzato un progetto elettronico basato su arduino e alcuni giorni dopo ci è stata chiesta una modifica. Senza dover mettere mano al saldatore, siamo riusciti a riconfigurare il circuito per adattarlo alle nuove esigenze (maggiori dettagli nei prossimi giorni – appena ricevo il materiale video).

Ecco l’abstract del mio intervento:

Prendete una Arduino board, alcune linee di codice, una cucchiaiata di breadboard. Spolverate con dei componenti passivi. Saldate a 200° con buono stagno. Versate in una pentola e mescolate il tutto con metodo Agile. Lasciate raffreddare per pochi secondi. Servite il vostro prototipo elettronico e lasciate di stucco i vostri clienti! Ecco la ricetta per creare rapidamente prototipi elettronici su cui sviluppare i vostri prodotti di successo. Lo sviluppo Agile si puo’ applicare anche all’elettronica senza essere grandi esperti di circuiti. Durante il workshop spiegheremo come costruire un prototipo per dimostrare il nostro approccio in un contesto diverso dal software.

Categories: tech Etichette: , , ,
Iscriviti

Get every new post delivered to your Inbox.