How to save 300 Euro with Bare Conductive Electric Paint

Finally I got some Bare Conductive Electric Paint! I ordered it 2 days ago and it’s already here! I love fast shipments :)

This is my wonderful kit, and the Bare Conductive guys were so kind to put some extra stuff: STICKEEEEERS!!!

image

I was starting to make some experiments with Arduino&co, when a friend of mine came up with a problem… His rear window defogger was broken, and they asked him 300 euro to replace all the rear windws, because the defogger couldn’t be replaced.

So, what was the problem? As you can see, a line was damaged

image

So I scraped the line with a key to reveal the copper

image

And then I fixed the line with a bit of Electric Paint

image

Ok… I could have used some tape to mask the glass, but I was too excited and I wanted to use it immediately! :)

image

…i can always scrape the exceeding ink with a cutter :)

Thanks Bare Conductive!! :)

Stefano

Intel Galileo: Getting Started with Mac OS X

A step-by-step tutorial by jeko

IMPORTANT: Connect your intel Galileo to the 5V power supply before any other connection or you will damage the board.

During the Rome Maker Faire, I was lucky to get an Intel Galileo. But when I had to use it, it was suddenly clear that it’s not as straightforward as Arduino. I had to resort to desperate measures and do something that really only a very restricted class of noble people do, I had to read the manual.

image

The getting started guide by Intel really helped, but the problem is that it’s clearly written by engineers, while the Galileo board wants to attract makers, designers, artists and many people that are used to the “tutorial” or “step by step” approach and are not really into manual reading.

I used to be an RTFM fanatic, but I’m getting old, and I have learned to appreciate when people help me, so I’m very happy to contribute and give some help to those in need.

So. You have an Intel Galileo board, a Mac (I assume you have Mac OS X Mavericks installed), and you want to run the very first basic example: the “Blink” sketch from the Arduino examples. Right?

image

This is what you have to do, straight and easy.

So, let’s start:

  1. Download the Galileo software from the Intel website. If you already have the Arduino IDE, don’t overwrite it. Even if the Intel software is based on the Arduino IDE, it is not 100% identical, and it will only manage the Galileo board, so if you want to use them both, simply unzip the Intel software, rename it into “Galileo”, and move it into your Application folder. Don’t rename it into something with spaces, and do not put it into folders with a space in their name, because it won’t work.
  2. Plug the 5V adapter, wait 10 seconds and then connect the USB client (the little usb port next to the ethernet plug) to your Mac’s USB port
  3. You have to wait a minute: it takes a little while for the USB stack to start on the Galileo board, then you can start the Galileo IDE
  4. Go to Tools > Port menu and select the /dev/cuXXX serial port. If you don’t see the port, close the IDE, wait a minute, and open it again.
  5. Now, you have to update the Galileo’s firmware, so, go on Help > Firmware Upgrade. If everything is ok, you should see a message asking for confirmation if the 5V power cable is plugged in. Since you have followed these instructions, it should be, so click yes, do the same on the next dialog and the process should begin. It will take 5-6 minutes. During the process, avoid touching the cables or the board or the IDE. Just sit down and relax.
  6. When the process is complete, the “Target Firmware upgraded successfully.” message is displayed. Click OK to close the message.
  7. Now choose the blink example from File > Examples > 01.Basics > Blink

Upload the blink sketch and you’re done! It’s time to celebrate! :)

Jeko

P.S. The Quark processor can become very hot, don’t worry it’s normal.

The “Facebook’s Like” Alarm

Hi there! Ever wanted to know in real time if someone likes your facebook page?

image

We’ve got the solution for you! Here, in Mikamai, as most companies do, we have a Facebook page, and we are very proud of it. We wanted to have some kind of physical feedback in our office, to let us know in real time when we get a new fan.

So, that’s how we did it.

First of all, the device. We needed to have it on 24/7, it should be very cheap, low powered, and we wanted to have the possibility to add new features (audio, video, lights, physical devices ecc…) so the perfect choice was the RaspberryPI

Second, the programming language. The obvious choice for us is Ruby :)

Third… what will happen? We wanted something simple, effective and not too annoying, so we choose a simple sound, the Super Mario coin sample was perfect for us.

The set up is very very simple.

We started froma a brand new RaspberryPI, and we installed Ruby with RVM, following these easy steps

https://rvm.io/rvm/install

everything worked like a charm.

Then, we put this simple script in /home/pi/like_it/

    
require 'rubygems'
require 'net/http'
require 'json'

LIKES_FILE = "likes"
PLAYER = (RUBY_PLATFORM == "armv6l-linux-eabihf") ? "omxplayer" : "mpg123"

while true do
  begin
    response = Net::HTTP.get_response("graph.facebook.com","/mikamai")
    json = JSON.parse(response.body)

    old_likes =  File.open(LIKES_FILE, 'r').gets.to_i
    likes = json["likes"].to_i

    if (likes > old_likes)
      #fixme: with mpg123 the -o local option (obviously) returns an error, it's non blocking but could be fixed
      system(PLAYER + " coin.mp3 -o local")
      p "like"
    end

    File.open(LIKES_FILE, 'w') { |file| file.write(likes) }

    sleep (10)
  rescue
    p "ERROR!!! YOU SHOULD INVESTIGATE"
  end
end


If you are using GIT (You have to install GIT on your RaspberryPI as well) simply go in the home directory via ssh and checkout the project from

https://github.com/amicojeko/Like-It

In the Github project we also added a simple start script

#! /bin/sh

DIR=/home/pi/like_it
cd $DIR

# stdout goes in trash, stderr gets logged 
rvm-auto-ruby like_it.rb 1> /dev/null 2> $DIR/logs/like_it_error &

the coin sample file, the (empty) log files for errors and stdout, and the counter file (using a database for this project is a bit overkill)

and… that’s it!

The script is supersimple, it runs an infinite loop and checks for new likes every 10 seconds (since the real time API for likes is not available yet). It just calls the Facebook Open Graph Public API, it searches for the “likes” counter in the JSON file, and confronts it with the likes previously stored in the “likes” file. If the likes are increasing, it plays the audio file.

Simple, stupid and sooo effective :)

To make it start automatically everytime the RaspberryPI reboots, jus add this in the /etc/rc.local file

# starts like-it daemon as pi user
su pi -c '/home/pi/like_it/start'

How to install an SFTP Server on Arduino Yùn

By default, Arduino Yùn’s Linino has Dropbear, an SSH server that procides basic SCP but has no SFTP capabilities, so you cannot connect to the Yún with client software such as Cyberduck.

You can solve this basic issue by installing OpenSSH’s SFTP Server running this command in the Arduino’s SSH console.

    opkg update
    opkg install openssh-sftp-server

The server will be installed in /usr/libexec/sftp-server, exactly where Dropbear will look for it.

MIKAMAYHEM: Arduino Yún Gmail Lamp - Part one

mikamayhem:

Finally!!! Finally I put my hands on a brand new Arduino Yún. I’ve been waiting for this a long, loooong time. I’ve been playing with Arduino since the “diecimila” model came out and I, as a lot of people, always suffered the lack of connectivity and of real computing power. I tried to solve some…

You can run…

Londra, pioggia, notte, vicoli. Si sente il tipico fischietto delle guardie inglesi, rumore di suole di cuoio che corrono sul selciato, urla affannate. Un’ombra corre sul muro di mattoni, poi sagome di guardie che passano. Urlano “Doctor Jekyll! Surrender! It’s over now!”

Il dottor jekyll si nasconde dietro un angolo, apre la falda del cappotto rovistando alla furiosa ricerca dell’ultima fiala. L’ultima occasione per trasformarsi in Mr Hyde. La trova e la prende con le mani troppo nevose e tremanti e gli sfugge, cade e va in mille pezzi. Cani che abbaiano, le guardie sono sempre più vicine. Sguardo disperato, Dr Jekyll non può fare altro che riprendere a correre, svanisce in un vicolo con tutte le guardie al seguito, la telecamera si alza lentamente a inquadrare i tetti di Londra…

Scritta sullo schermo

"You can run"

[pausa]

"But you can’t Hyde"

(•_•)

( •_•)>⌐■-■

(⌐■_■)

Electric Imp e MCP23008

Ciao a tutti. Scrivo questo breve articolo perché mi sono trovato recentemente a fronteggiare un problema penso abbastanza comune, ovvero …ho finito le porte I/O! Ovviamente il problema vale sia per l’Imp, che per Arduino o il RaspberryPI. 

Ho trovato un grande amico nell’MCP23008, un port expander I2C con 8 porte I/O a 8 bit, e soprattutto un sacco di documentazione e un sacco di esempi pratici in giro! Dal momento che l’MCP23008 ha 3 bit (tre piedini da portare a massa, niente di complicato) per gestire l’indirizzo, ne possiamo mettere fino a 8 in cascata, questo ci da ben 64 canali I/O usando solo 2 pin del nostro Electric Imp (figata!)

Il setup è molto molto semplice. Qui sotto riporto lo schema di collegamento. Il codice è basato su una libreria trovata sui forum dell’Electric Imp, ed è una libreria generica per MCP23008 e MCP23017 (il fratello maggiore a 16 bit)

Il bello di questa libreria è che si possono usare le porte aggiuntive come se fossero delle porte native, perché il codice è stato fatto in modo da rispondere alla stessa sintassi della configurazione standard delle porte dell’Imp. Unico neo, non si può fare (o, per lo meno, non ci sono riuscito) il PWM sulle porte, rendendo quindi impossibile il dimming dei LED, ma ci sto lavorando su :)

Allego anche il codice rivisto da me, fatto per funzionare con solo un MCP collegato, come da schema.

Ciao e alla prossima!

Jeko

How to make the Electric Imp work with IFTTT in a simple and free way.

I always wanted to use IFTTT with the Electric Imp, but, sadly, there is not an Electric Imp or a generic webservice channel on IFTTT. So I decided to use the GTalk channel, since I thought that it was the fastest and more secure way to get near real time messages from IFTTT. 

The process is simple: I’ve made a simple Node.js application, that gets the GTalk message from IFTTT and converts it into an HTTP call to the Electric Imp webservices.

The Node.js application - called IFWTW (If Whatever Than Whatever) - is on my github and can be forked freely. It’s designed to be deployed on the Heroku platform, so you can have it hosted for free. Since Heroku puts the free webapps in a sleep state after a while they’ve not been called, I provided a very simple web page for the application, and I used the Electric Imp’s planner Variable Tick Tock and HTTP Call features to call it every 10 minutes.

You can freely fork the source code, configure it, make it run locally and eventually deploy it on heroku in less than 10 minutes.

Sadly, I discovered that the IFTTT GTalk support is very poor, and it’s very far from being real time. So the application can be reconfigured to check your email and use the email channel instead. I hope that IFTTT will have a better support for GTalk in the future.

Last thing. Since my application listens for an XMPP message, and it works pretty well, you can use it to communicate with your Electric Imp via Jabber/GTalk, even if you don’t use IFTTT

I hope you will have fun with this little project, and that it will help to expand the already near infinite possibilities of use that the Electric Imp provides.

I’m sorry for the short message and zero examples provided, but I think that things like using the Imp with webservice are already deeply discussed. Feel free to make any question, I will be happy to answer if I can!

If IFTTT will never support the Electric Imp, maybe this code can be the base for a service for everyone, I can just add a database and a Google OAuth process to make it multiuser.

Cheers!

Stefano

Electric Imp

Mesi fa, un mio amico designer mi chiese se fosse possibile fare una lampada che si accendesse alla ricezione di una email, di un messaggio twitter o facebook. Ovviamente, dopo anni di esperienza con Arduino, ho risposto con un entusiastico “Si, certamente!” e mi sono subito messo a lavorare. Ne ho realizzate svariate versioni. La prima, con Arduino, collegato via USB al computer, e mi sono subito reso conto che non era pratico dover tenere connesso un computer ad una lampada. Allora ne ho realizzata un’altra, con Arduino ed uno shield ethernet, ma ormai nessuno ha una casa cablata con l’ethernet, e costringere il mio amico a comprare un access point mi sembrava esagerato. Ho provato con uno shield WiFi, ma era comunque costoso, e soprattutto avrei dovuto configurare Arduino con i dati della sua rete in modo permanente, visto che era privo di un’interfaccia (vedi monitor e tastiera) per permettergli di configurare la rete. 

Allora, non ancora scoraggiato, sono passato al Raspberry Pi: ne avevo comprato uno e non vedevo l’ora di usarlo. Il RaspberryPi con un dongle WiFi USB (comunque non semplice da configurare) sembrava una buona soluzione, anche se decisamente overkill, visto che di tutte le strepitose features del Raspberry avevo usato solo il GPIO. Come se non bastasse, ho dovuto anche creare dei web services per leggere la casella di posta del mio amico, e creare una connessione basata su socket per inoltrare gli eventi al RaspberryPi (avevo usato pusher.com, figata). Ho spedito tutto in un pacco al mio amico, che non è per niente uno scemo, e abbiamo passato quasi una giornata al telefono per configurarlo e farlo funzionare correttamente. Da tecnico quale sono, mi rendo conto di dare per scontate molte, troppe cose, e che questo genere di dispositivi è ancora veramente lontano dall’utente finale. Ad ogni modo, una bella proof of concept ma decisamente scomoda come soluzione, e poco replicabile. Non mi piacciono le cose non facilmente replicabili. 

Insomma, nell’era dell’Internet delle cose, ho capito che era troppo difficile collegare le cose ad internet. Fin quando non mi sono imbattuto, quasi per caso, nella chiave di (s)volta di questo mondo. Electric Imp.

Del resto, ogni problema ha la sua soluzione. 

Electric Imp è un piccolo dispositivo specificamente progettato per connettere ad Internet dei dispositivi elettronici, analogici o digitali, altrimenti non connessi.

image

Nato dalle menti geniali di Hugo Fiennes, ex iPhone engineering manager, Kevin Fox, ex Gmail Designer e Peter Hartley, mago del firmware, (insomma, non proprio dei pivelli), Electric Imp ha la forma di una SDCard (attenzione, è solo una scelta di design, anche se è identico, non è una SDCard!) che si inserisce in una piccola breakout board che presenta 6 porte di I/O completamente configurabili, una porta mini usb per l’alimentazione, e dei pin per connetterlo ad un alimentatore o ad una batteria.

Ma l’hardware è solo la metà di Electric Imp. L’altra metà è una interfaccia web che consente di programmarlo (si, si programma dal web, non va connesso fisicamente al computer) e un robusto strato di webservices che risolve ogni problema di comunicazione tra l’Electric Imp ed Internet. 

Il modo in cui si configurano i parametri di rete dell’Electric Imp è tanto semplice quanto geniale, una di quelle cose che ti fa sentire scemo perché non ci hai mai pensato prima. I brillanti ingengeri alle spalle di questa soluzione hanno sviluppato un’applicazione per iPhone/Android che comunica i parametri di configurazione della rete WiFi all’Imp tramite segnali luminosi: si inseriscono nell’app i parametri della propria rete, e il telefono inizia a lampeggiare furiosamente. Se lo accostiamo ai nostri occhi, forse diventiamo epilettici, invece se lo accostiamo all’Electric Imp, che è dotato di un sensore ottico, gli trasmettiamo (sparaflesciamo?) la configurazione di rete. L’imp inizia a lampeggiare con un rassicurante color verde, e ci comunica che è configurato e visibile su internet. Figata.

Questo vuol dire che appena si riceve l’Electric Imp (per ora acquistabile solo da SparkFun e Adafruit) si accende, si configura, ed è subito visibile online.

Questo vuole anche dire che se noi sviluppiamo una soluzione basata su Electric Imp e la diamo ad un amico, o, meglio ancora la vendiamo, chiunque sia in grado di usare uno smartphone è in grado di configurarlo. Yuppi.

Ora scendiamo un po’ più sul tecnico.

Ho già scritto che l’Electric Imp si presenta come una SD Card. Questa scelta è stata fatta per riusare, anche se in modo diverso, tutti i socket SD già presenti sul mercato, del resto, se esiste una cosa fatta, perché reinventarla? Inoltre sotto forma di SD card, l’Imp ha un aspetto più familiare ed amichevole per tutti i non tecnici. Il microprocessore su cui è basato l’Electric Imp è un Cortex M3, un sacco di potenza di calcolo in così poco spazio! L’Imp ha 128 kB di RAM, di cui 40Kb sono disponibili per il codice. Supporta reti WiFi 802.11 B/G/N, e consuma veramente poco: sebbene raggiunga picchi di 450mA il cosnumo medio è di 100mA e in standby consuma ~6uA. Viene alimentato a 3.3V, anche se funziona bene tra ~2.5V e 3.6V, che tradotto vuol dire che si possono realizzare progetti che possono andare avanti per anni con un paio di pile AA ricaricabili (evitare le alcaline, la loro resistenza interna non va d’accordo con i picchi di consumo) e con tutti i trasformatori USB. Il dispositivo ha un chip di crittografia Atmel e ha un ID univoco a 72bit.

Sono disponibili due diverse breakout board: Hannah e April. Hannah ha un port expander I2C per aumentare il numero di pin a disposizione, un LED RGB, un accelerometro su tre assi, un potenziometro, due pulsanti, un sensore di temperatura, un sensore di campo e due output per servomotori, oltre che a 5 GPIO e bus I2C. Insomma è una board creata per giocherellare un po’con il codice, prendere dimestichezza e avere un feedback immediato. April è invece la scelta che ho fatto io: una board minuscola, minimale, con i pin per l’alimentazione e 6 pin di I/O completamente configurabili. Infatti i pin possono essere configurati come ingressi o uscite analogici o digitali, seriale, I2C. Quando configurati come output digitali possono essere configurati come open drain, con o senza resistenza pullup, tutto via software… un sogno! 

Veniamo invece al software. Electric Imp si programma tramite una GUI Web based. Il linguaggio scelto è lo Squirrel, che è un linguaggio di alto livello imperativo e ad oggetti basato sul C. Questo vuol dire che non abbiamo bisogno di un editor (anche se io passo sempre per Sublime configurato come editor C), o di un repository esterno del codice, perché i nostri firmware vengono salvati sul nostro account su www.electricimp.com

Un altro strumento messo a disposizione su www.electricimp.com è il planner, uno strumento interamente visuale per configurare il nostro imp, e connetterlo a webservices, a COSM, ad altri imp ed altro ancora.

image

In conclusione: l’Electric Imp è la base perfetta per tutte quelle realizzazioni dove la connessione ad Internet è centrale. Se dovessi fare una soluzione stand alone ed offline, userei Arduino, stessa cosa se dovessi fare periferiche USB (in quel caso userei Arduino Leonardo), se dovessi fare cose multimediali invece userei il RaspberryPi.

Insomma, Electric Imp ha risolto il mio problema, ovvero quello di fare una lampada, e mi ha fatto venire in mente un sacco di altre idee, alcune delle quali realizzate mentre le atre sono ancora in cantiere, ma soprattutto mi ha messo una gran voglia di fare! Quindi restate sintonizzati sul nostro blog perché a breve vi illustrerò le mie realizzazioni!

A presto!

Jeko

So long, LucasArts, and thanks for all the games

Grazie per avermi fatto passare tanti meravigliosi momenti, io e mia sorella chiusi in casa, pomeriggi interi a ridere e a sognare mondi meravigliosi. Grazie davvero.

Tutte le intro della LucasArts dal 1986 al 2009.

Labyrinth (1986)

Maniac mansion (1987)

Zak McKracken and the Alien Mindbenders (1988)

Indiana Jones and the last crusade (1989)

Loom (1990)

The secret of Monkey Island (1990)

Monkey Island 2: Le Chuck’s Revenge (1991)

Indiana Jones and the Fate of Atlantis (1992)

Day of the Tentacle (1993)

Sam & Max Hit the Road (1993)

Full Throttle (1995)

The Dig (1995)

The Curse of Monkey Island
Grim Fandango (1998)

Escape from Monkey Island (2000)

Tales of Monkey Island (2009)