16 marzo: Startup

16 marzo: Startup

Parole allo Share” è la rassegna di incontri scientifico divulgativi dello Share Makerspace di Cusano Milanino. Ogni venerdì sera ci incontriamo per discutere degli argomenti tecnologici più caldi, soddisfare la nostra voglia di conoscenza e fare networking nell’area del Nord Milano.

Gli incontri si terranno alla sede dell’associazione Share Makerspace a Cusano Milanino in via Zucchi 39/G (area ex-Gerli). L’appuntamento è aperto a tutti, ogni venerdì dalle 19.30 per due mesi. Ogni incontro sarà preceduto da un breve aperitivo e poi dalle 20.30 alle 21.30 parleremo dell’argomento scelto. L’incontro è gratuito per gli associati e la tessera costa 10 euro.

L’argomento del 9 marzo: Startup

Parleremo di Startup, le aziende ad alto contenuto tecnologico e innovativo che partono da un’idea, piccole aziende che crescono rapidamente. Cercheremo di capire i meccanismi della scalabilità, parleremo delle risorse e dei loro obiettivi guardando esempi di idee che hanno funzionato raccontate da un esperto, Matteo Bogana di PoliHub.

 

Il relatore: Matteo Bogana

Matteo Bogana ha oltre 15 anni di esperienza nel mercato digitale e nel settore high-tech presso grandi multinazionali americane e gruppi italiani. E’ coordinatore di Polihub, l’incubatore di aziende del Politecnico di Milano che sostiene le startup altamente innovative ed è ovviamente impreditore, essendo CEO di Cleafy la sua startup che si occupa di sicurezza in ambito informatico.

 

Rivitalizzare un vecchio tester Lael 450 del 1955

Rivitalizzare un vecchio tester Lael 450 del 1955

Chiedendo agli amici se qualcuno aveva un tester da prestarmi, mi sono ritrovato in casa un vecchio Analizzatore Lael 450 fabbricato a Milano negli anni ’50, non funzionante, ma molto bello. Un bell’oggetto morto.
Quando ho provato a restituirlo il proprietario mi ha detto “tienilo, era di mio padre, ma non mi serve e poi non va”.
L’ho tenuto lì un annetto, poi mi é venuta voglia di farlo diventare qualcosa di utile.
Ora é la mia sveglia, orologio e luce notturna connessa ad Internet, basato su Arduino Nano e ESP8266-01.

Questa é la raccolta degli appunti del progetto.

Reverse engineering delle manopole

Il fronte della scatola che racchiude il tester era costituito da delle manopole che volevo assolutamente riutilizzare, così come l’ago che si muove per indicare il valore della tensione.
Le manopole erano collegate a degli interruttori rotanti (tipo questo): su una manopola, a seconda dello scatto, venivano collegate diverse resistenze permettendo la misura dei valori di tensione e corrente su scale diverse. Sull’altra manopola lo scatto comportava l’attivazione di circuiti diversi in modo da far funzionare il tester in AC o CC ed altro ancora. Non ho approfondito il funzionamento dell’analizzatore, ma mi interessava riciclare i comandi.
A seconda della rotazione volevo leggere un 1 o uno 0 su dei pin di Arduino. Dissalda. Guarda. Prova. La rotazione della manopola, in pratica, chiude ad ogni passaggio un interruttore diverso.
Questo lo schema di uno dei rotary switch, una lamella blu (più lunga delle altre) porta la corrente sulla ruota centrale arancione che ruotando la manopola gira e chiude o apre i circuiti collegati alle altre lamelle blu:

 

Reverse engineering del needle gauge

La lancetta che si muoveva per segnalare i valori delle misurazioni é comandata applicando una tensione a due capi, segnati con + e -. Ho fatto alcune prove e ho trovato come pilotarla con valori di un uscita pwm di Arduino riducendo la corrente con una resistenza da 10kohm.
Facendo alcuni test ho stabilito i valori da applicare per far muovere la lancetta sui numeri da 1 a 10 della scala centrale.
Successivamente ho però notato che le interazioni con gli altri componenti, con il wifi, le luci e i suoni alterano probabilmente la corrente che circola verso il gauge precludendo qualunque utilizzo preciso della lancetta. Probabilmente é necessario costruire un filtro che rimuove queste variazioni e stabilizza tensione e corrente, ma la lancetta é per me più che altro estetica.

Potenziometro

Sotto alle due manopole, in mezzo, c’era una classica resistenza variabile, che però non funzionava più, fortunatamente quelle attuali hanno le misure identiche a quelle di sessanta anni fa e quindi ho potuto tenere il suo tappino e sostituire il vecchio potenziometro con uno nuovo.

Luci e sensori

Ho inserito due led SMD, quelli piatti, negli spinotti dei cavi esterni + e – del tester.
Ho inserito un terzo led SMD dentro lo scatolotto del needle gauge, non é stato semplice, perché volevo inserirlo in modo che illuminasse un po’ la lancetta senza però urtarla.
Per alimentare i tre led ho dovuto utilizzare un transistor BCE, perché la corrente in uscita da un pin di Arduino non era sufficiente. Ho messo in serie anche il potenziometro così la luce può essere smorzata o alzata a piacere.
Con un trapano fisso ho bucato la scatola, che é durissima (é ghisa?) per inserire i sensori di luce e di movimento sul lato superiore.

Suoni

Da un vecchio giocattolo ho recuperato un speaker e ho scoperto che con alcune librerie é possibile emettere dei suoni senza ulteriori componenti, modulando in ampiezza l’onda quadra che di solito ci permette di fare solo dei brutti beep. Il risultato, seppure lontano da qualunque suono campionato, é migliore e in certi casi molto d’effetto, il suono di R2D2 di Star Wars (preso qui) e quello dei grilli (preso qui) su tutti. La libreria per gestire i suoni senza ulteriori componenti la trovate qui.

Orologio, Real Time Clock vs ESP8266

Volendo usare il tester come orologio e sveglia mi sono procurato dei circuiti dedicati Real Time Clock, prima ho provato ad utilizzare un DS1307, ma non vi sono riuscito, diversi utenti online dicono che sono moduli sbagliati e che per farli funzionare bisogna modificarli rimuovendo alcune resistenze e cortocircuitando alcuni pin, ho provato anche questo ma il DS1307 resta per me un mistero.
Sono poi passato ad un RTC DS3231 e con questo modulo sono riuscito a fare tutto, orologio e sveglia, ma restava il problema di come modificare l’ora a cui deve suonare la sveglia, oppure come aggiustate l’ora senza ricollegare. I controlli presenti, cioè le due manopole da sole, senza neanche un display se non una lancetta, non permettono la costruzione di un’interfaccia semplice per inserire i parametri.
Ho quindi sostituito il RTC con una ESP8266-01, programmata separatamente.

Dal punto di vista del software realizzato per il RTC è sufficiente inizializzare la classe con millis(), la funzione di clock interna ad ogni microprocessore e, tramite la ESP recuperare l’ora da internet e aggiustare di conseguenza l’ora. Seppure l’Arduino nano a cui tutti i componenti sono collegati diventa impreciso, c’è sempre l’ESP che recupera l’ora giusta da Internet e aggiorna l’orologio.

Comunicazione ESP-Arduino Nano

Comunicare con l’ESP via seriale e comandi AT è difficile. Nell’anno passato ho imparato a programmare direttamente la scheda ESP8266 e sostiture il firmware originale con del codice mio, studiato per collegarsi ad Internet e gestire un mini server web da usare come Access Point e poter ricevere delle configurazioni. L’ho quindi modificato per questo progetto, creando così un’interfaccia che permetta di inserire i dati per connettere al wifi di casa il tester, indicargli il sito da cui prendere l’ora, settare l’ora e i giorni in cui far funzionare la sveglia.
La scheda ESP, poi, è collegata tramite seriale all’Arduino Nano e viene interrogata con un set di comandi ristretto che permette di prelevare i dati e attivare l’access point per configurare il tester da telefono.

Componenti

Elenco componenti utilizzati (per prezzi migliori in realtà conviene spulciare Amazon o, se avete tempo, cercarli su Aliexpress o Banggood):

Schema del progetto

Essendo un progetto “vintage” ho fatto lo schem a matita su un vecchio quaderno!

Avete anche voi un vecchio tester? Provateci!

 

Sensore ultrasuoni Arduino: Riciclare una pistola giocattolo e fare una pistola ad ultrasuoni

Sensore ultrasuoni Arduino: Riciclare una pistola giocattolo e fare una pistola ad ultrasuoni

Le pistole sono sempre brutte, così diciamo subito che le armi non ci piacciono.

Questo non è un tutorial vero e proprio, ma un riassunto di un progetto nato per gioco.

Una vecchia pistola giocattolo, per altro con un suono molto fastidioso, può essere modificata in un misuratore di distanze. Diventa cioè una pistola ad ultrasuoni che fa come i pipistrelli, spara impulsi non udibili ad orecchio umano e legge il tempo che impiega l’ultrasuono per il ritorno dell’onda rimbalzata sull’ostacolo.

Dalla misura del tempo intercorso si puà calcolare la distanza dell’oggetto.

Occorrente:

  • Arduino Nano
  • sensore di ultrasuoni HC-SR04
  • display backpack 14 segmenti
  • due led e due resistenze
  • buzzer
  • pila 9V

Schema:

pistola-ultrasuoni

La parte di prototipazione fatela con la classica breadboard e l’Arduino Nano collegato al PC, seguendo lo schema qua sopra e utilizzando il programma che trovate più sotto. Una volta trovato l’equilibrio cominciate a cablare tutto con del filo elettrico. Noi abbiamo deciso di saldare il filo direttamente ai pin dei componenti, ma è stato un massacro. Molto più intelligente e conveniente è saldare solo dove è necessario e utilizzare dei comuni connettori femmina-femmina per collegare i componenti tramite i loro pin.

Man mano che collegate tutto con i fili vi troverete ad avere una matassa di fili e di componenti elettronici appoggiata sul tavolo, un bel casino. Già. Ma non perdetevi d’animo.

Aprite il giocattolo da riciclare (cosa che avrete già fatto, vero?), estraete tutta l’elettronica che non vi serve, mettete da parte qualche pezzo che magari utilizzerete altrove e tenete, in particolare, la parte di circuito costituita dal grilletto della pistola giocattolo a cui dovete collegare il vostro Arduino nano (ai pin Vin e GND).

Cercate di figurarvi dove piazzare i vari pezzi e provando un po’ cercate di incastrate il tutto, noi abbiamo dovuto rimuovere delle parti di plastica della pistola per permettere l’alloggiamento di una pila da 9V perché le 3 pile AAA da 1.5V con cui funzionava la pistola non fornivano abbastanza corrente per accendere il display, per cui abbiamo dovuto fare un po’ di spazio.

Ogni tanto mentre montate, provate a vedere se tutto funziona ancora. Per questo conviene montare/saldare tutti i fili a partire dall’alimentazione e quindi dal grilletto della pistola.

Man mano piazzate dei punti di colla a caldo per tenere un po’ fermi i fili, specie se avete dei contatti non isolati che potrebbero muoversi nel muovere il giocattolo, toccarsi e causare cortocircuiti fatali.

Ecco le varie parti inserite nella pistola giocattolo:

pistola-ultrasuoni-1-parti

Ricordatevi di non bloccare l’accesso alla porta micro usb del microcontroller (l’Arduino Nano nel nostro caso) perché potrebbe essere necessario ricollegarlo al computer per modificarne il programma.

Il programma che abbiamo fatto spara bip col buzzer, insieme al bip facciamo lampeggiare un led (led impulsi nell’immgine) e mandare impulsi con l’ultrasuono. Se riesce a fare 3 misure con un errore di più o meno un cm di fila allora mostra il risultato sul display.

Mentre fa le misure sul display fa un’animazione a caratteri, giusto per non farci mancare nulla.

Programma:

#include <Wire.h>
#include "Adafruit_LEDBackpack.h"
#include "Adafruit_GFX.h"

Adafruit_AlphaNum4 alpha4 = Adafruit_AlphaNum4();

int trigPin = 3;
int cic = 7;
int echoPin = A1;

void ledprint(char* str, Adafruit_AlphaNum4 *alphanum)
{
  int pos = 0;
  for (int index = 0; (index < strlen(str) && pos < 4); index++) //for each character in str
  {
    if ('.' == str[index+1]) //if the next character after this one is '.'
    {
      alphanum->writeDigitAscii(pos, str[index], true); //write the '.' along with the character
      index++; //skip over the '.'
    } else {
      alphanum->writeDigitAscii(pos, str[index]); //write the character
    }
    pos++;
  }
  alphanum->writeDisplay(); //write to the display.
}

void setup() {
  alpha4.begin(0x70); // pass in the address
  alpha4.clear();
  alpha4.writeDisplay();
  pinMode(echoPin, INPUT);
  pinMode(trigPin, OUTPUT);
  pinMode(cic, OUTPUT);
  digitalWrite(cic,LOW);
}

String s[8] = {">   "," >  ","  > ","   >","   <","  < "," <  ","<   "};

void loop() {

  long duration, cm, cm0;
  unsigned int ok = 0;
  unsigned int i = 0;

  cm0 = 0;

  // loop to get 3 good measures, ok=0 1 2
  while (ok<=2) {
    // The sensor is triggered by a HIGH pulse of 10 or more microseconds.
    // Give a short LOW pulse beforehand to ensure a clean HIGH pulse:
    digitalWrite(trigPin, LOW);
    delayMicroseconds(2);
    digitalWrite(trigPin, HIGH);
    delayMicroseconds(10);
    digitalWrite(trigPin, LOW);

    // Read the signal from the sensor: a HIGH pulse whose
    // duration is the time (in microseconds) from the sending
    // of the ping to the reception of its echo off of an object.
    duration = pulseIn(echoPin, HIGH);

    // convert the time into a distance
    cm = duration / 29.1 / 2;

    if(cm>=500||cm<=0) {
      // noise
    } else {
      if(cm0!=cm && cm0!=cm+1 cm0!=cm-1) {
        // first good measure or found a bad measure
        cm0=cm;
        ok = 0;
      } else {
        // another good measure
        ok++;
      }
    }

    // display animation
    alpha4.clear();alpha4.writeDisplay();
    ledprint(s[i%8].c_str(),&alpha4);

    // beep and light
    analogWrite(cic,200);
    delay(4);
    analogWrite(cic,0);
    delay(110);

    i++;
  }

  // enaugh good measures found
  // display result
  alpha4.clear();alpha4.writeDisplay();
  String s;
  if(cm<100) {
    s = "cm";
    if(cm<10) s+=" ";
    s += String(cm);
  } else {
    s = "m"+String(float(cm)/100);
  }
  ledprint(s.c_str(),&alpha4);
  delay(3000);

}

Infortuni / cose che ho imparato:

  • potresti bruciare un Arduino Nano accidentalmente tenendolo appoggiato su una superificie piena di roba, con scampoli di fili elettrici in giro
  • se alimenti il sensore ad ultrasuoni direttamente con la pila potresti ottenere risultati random, se vuoi risultati corretti utilizza i 5V stabilizzati forniti dall’Arduino Nano
  • nel passaggio dalla breadboard alla prototipo funzionante con i vari componenti collegati e sganciato dal computer usa i connettori femmina-femmina o maschio-maschio, o mix di questi, non scegliere di saldare tutto, se non hai un buon saldatore potresti arrabbiarti molto
  • per bloccare i componenti in una posizione usa la colla a caldo, stai attento a non bloccarti l’accesso ai vari componenti, rimuovere la colla a caldo non è sempre semplice
  • il sensore ad ultrasuoni arriva ad un massimo di 5m, ma l’errore aumenta, ci vorrebbe o un sensore ad infrarossi o al laser per misurare con più precisione e ad una maggiore distanza
Finalmente una stampante 3D che fa le cose lisce, senza le tipiche imperfezioni

Finalmente una stampante 3D che fa le cose lisce, senza le tipiche imperfezioni

E’ arrivata, o meglio, sta per arrivare visto che si tratta di una campagna di crowfunding, una stampante 3D che prova a risolvere il problema delle imperfezioni tipiche della stampa tridimensionale: le righe degli strati di materiale che inevitabilmente rendono i pezzi realizzati un po’ grezzi.

Quello che si fa, talvolta, per rendere lisci i prodotti stampti in 3D è utilizzare dei vapori di acetone per lisciare l’oggetto. La procedura è semplice ma richiede un po’ di attenzione, quindi ecco arrivare una raccolta fondi per produrre una stampante 3D che faccia da sola questa lavorazione.

In pratica alla stampante, che si chiama Polysher,  è stato aggiunto un involucro che la chiude ermeticamente ed un nebulizzatore che genera un aerosol di un particolare alcool capace di lisciare l’oggetto stampato. Il materiale che utilizza, però, non è il comune PLA o ABS, ma è un materiale che si chiama PolySmooth, molto simile al PLA e che viene lisciato dall’alcool isopropilene o da etanolo nebulizato.

Il risultato è molto interessante:

La campagna di crowdfunding ha giù superato la soglia per far partire il progetto, fissata a 100.000$ e, a 7 giorni dalla fine, è arrivata addirittura ad oltre 370.000$. Bravi!
[via kickstarter.com]

photo original 1

c5dcb73894b1d291fc407900cd935473 original

22ed847e700cfa534ec7d2d3add57055 original

18a98c70110aa7afd78c2c3213e129ce original

efe86390c31b81de89281c48202ad013 original

38a88285f4fdc5bf3f5c4a73b296d22c original

16eee8daf1e948ec76ec9b611844ec55 original

22534aca36ad95876732912512730c21 original

42ea2a5606beef9471e336ae0d741ae8 original

Un nuovo microcontroller che va ad onde radio, senza batterie

Un nuovo microcontroller che va ad onde radio, senza batterie

L’università di Washington ha messo a punto un nuovo microprocessore che funziona ad onde radio con l’energia disponibile nell’ambiente, senza il bisogno di batterie. La grossa novità sta nella possibilità di riprogrammare il microprocessore senza doverlo collegare ad un dispositivo, ma direttamente tramite onde radio.

Il progetto, il cui none è WISP (acronimo che sta per Wireless Identification and Sensing Platform), rispetto alle tecnologie simili che sono fiorite negli ultimi anni ha la capacità di scrivere su una memoria in maniera efficiente utilizzando l’energia ambientale, è quindi autonoma e attivo, non deve essere colpito da un lettore ad onde radio per essere attivato come RFID e NFC tag.

Inoltre, tramite un opportuno dispositivo ad onde radio, può ricevere un nuovo programma che viene memorizzato sul microchip. Cioè può essere riprogrammato, cosa che fino ad ora non si riusciva a fare.

E’ quindi un computer riprogrammabile wireless, senza batterie. Tipo un Arduino, ma che va senza pile.

WISP RFID1

Il microchip, tuttavia, è ancora poco potente (è a 16 bit e ha una frequenza di 16 MHz) e la memoria a disposizione è poca rispetto agli standard attuali dei computer (64k), ma può essere già utilizzato per leggere dati ambientali tipo umidità e temperatura e salvarli nella sua memoria, per restituirli successivamente passando il dispositivo vicino ad un lettore. Come dice il video, immaginate voi i risvolti per il futuro:

Questa nuova tecnologia potrebbe essere un’innovazione importante per lo sviluppo dell’Internet delle Cose (IoT), e potrebbe essere una di quelle innovazioni che fanno un po’ recuperare terreno all’industria tecnologica, rispetto alla Legge di Moore, che ormai è data per morta.

[via extremetech]