di

Alfonso D’Ambrosio

Quest’opera è distribuita con Licenza Creative Commons Attribuzione – Non commerciale – Condividi allo stesso modo 4.0 Internazionale.

 

Immaginate di stare seduti sulla poltrona di casa vostra e di collegarvi in tempo reale ad un telescopio sulle Ande Cilene mentre osserva lo scontro tra due galassie che si fondono, oppure di entrare in un laboratorio di ricerca mentre si sta osservando al microscopio un tessuto cerebrale.

Immaginate di potervi collegare alla vostra meta turistica preferita e vedere se quel giorno la neve l’ha resa più bella.

immaginate di poter osservare lo sviluppo di un quadro di un famoso pittore, mentre lo sta facendo o di monitorare la crescita delle piante di una vostra serra.

Immaginate di essere in una classe e di condividere con i vostri studenti, in tempo reale, foto e video di fenomeni osservati al telescopio o microscopio.

Immaginate di fare tutto questo semplicemente “chattando” con un Bot Telegram!!!

Bello vero?

Le idee sono più potenti di qualsiasi cose, ma se realizzate possono cambiare le cose che ci circondano e noi stessi.

Abbiamo visto come poter realizzare un semplice microscopio utilizzando la Pi Camera di Rasberry, in questa seconda parte vediamo come poter condividere le immagini ed i video ripresi dalla Camera, in tempo reale, su qualsiasi dispositivo mobile, distante anche migliaia di km!

La visione (sul proprio dispositivo individuale) tramite foto e video di cosa sta accadendo in un laboratorio di microscopia attrezzato, offre spunti didattici molto stimolanti: non occorre più andare in centri con macchine ad alta risoluzione. In tempo reale possiamo osservare cosa sta vedendo un microscopio o un telescopio e discutere con i propri compagni sulle strutture macroscopiche di un insetto o ancora condurre analisi spettrali tramite software digitali.

L’accesso alla Camera del Raspberry è molto semplice , tramite VlC, se si è tutti sulla stessa rete, ma qualora gli studenti non possono avere accesso alla rete della Scuola (cosa che capita spesso se si utilizzano i propri dispositivi) allora occorre trovare altre soluzioni. Esistono soluzioni più o meno costose , dove Raspberry funge da server oppure invia foto e video ad un server esterno, ma spesso sono difficili da gestire anche per un docente, figuriamoci per uno studente delle scuole medie o superiori!

La soluzione che vi propongo oggi è semplice ed affascinante: creiamo un Bot Telegram che si interfaccia alla Camera di raspberry e risponde a nostre richieste di foto e video .

Passo 1 Installare Telegram e Creare un Bot

In questo articolo nella prima parte avevo già mostrato come creare il nostro Bot Telegram.

Registriamo da qualche parte il codice token , che non dovrà mai essere fornito.

In generale per i miei scopi , oltre all’App sullo smartphone, accedo anche da PC tramite https://web.telegram.org/

Passo 2  Programmiamo il nostro Bot su Raspberry con Python

Programmare un Bot Telegram con Python è davvero fantastico per me.

Python è un linguaggio semplice ma potente.

Occorre installare Telepot

Clicchiamo da terminale:

1
2
sudo aptget install pythonpip
sudo pip install telepot

 

Per i miei scopi ho usato python 2

L’idea di base è questa: se invio una richiesta al Bot tipo /foto o /video allora non solo il Bot risponderà con un messaggioi ma dice alla camera di Scattare una foto o registrare un video e di inviarmi il file salvato opportunamente.

 

Semplice vero?

Molto più semplice a farsi!

Ecco il codice da me creato (ho importato alcune librerie e non entro nei dettagli della programmazione)

 

#!/usr/bin/python
import time
import telepot
import commands
import picamera
def handle(msg):
   chat_id = msg[‘chat’][‘id’]
   command = msg[‘text’]
   print (‘Got command: %s’ % command)
   if command == ‘/uptime’:
       var1 = commands.getoutput(“uptime”)
       bot.sendMessage(chat_id,var1)
   elif command == ‘/start’:
       bot.sendMessage(chat_id,”Ciao, bentornato. Digita /connesso per sapere se la sessione è attiva. Digita /foto o /video per ricevere foto o video”)
   elif command == ‘/connesso’:
       bot.sendMessage(chat_id,”Camera connessa e sessione attiva”)
   elif command == ‘/foto’:
       bot.sendMessage(chat_id,”Ciao eccoti la foto di quello che vedo”)
       camera=picamera.PiCamera()
       camera.capture(‘./capture.jpg’)
       camera.close()
       # Invia foto alla chat
       bot.sendPhoto(chat_id=chat_id, photo=open(‘./capture.jpg’, ‘rb’))
   elif command == ‘/video’:
       bot.sendMessage(chat_id,”Ciao eccoti il video quello che vedo”)
       camera=picamera.PiCamera()
       camera.start_recording(‘video.h264’)
       time.sleep(5)
       camera.stop_recording()
       # invia video alla chat, attenzione al formato .h264 visualizzabile tramite VLC
       bot.sendVideo(chat_id=chat_id, video=open(‘video.h264’, ‘rb’))
bot = telepot.Bot(‘INSERIRE_CHIAVE_TOKEN’)
bot.message_loop(handle)
print (‘Sto ascoltando …’)
while 1:
    time.sleep(10)
Con un pò di dimestichezza è facile cambiare anche la risoluzione delle immagini e dei video.
Passo 3 Proviamolo

 

Non ci resta che parlare al nostr Bot.

Ho collegato la Camera al vetrino e sto osservando una mosca.

Con uno smartphone chiedo di farmi inviare una foto o un video (quando qualcuno chiede una foto si accende un led rosso)

 

Ecco cosa accade:

micro2

micro3

micro1

micro4

 

Il sistema funziona perfettamente.

Ci sono alcune note dolenti, ma migliorabili.

Se si fa uno streaming con la camera (esiste una soluzione per farlo) non è possibile scattare foto, allo stesso modo se si sta osservando un oggetto con la camera, in quel momento non è possibile ricevere foto. La soluzione migliore che ho trovato è quella di un doppio sistema di camere, di cui una wifi. Con una si osserva e l’altra coassiale scatta foto.

Le applicazioni migliori sono sicuramente quelle a fuoco fisso e si cambia ogni volta il vetrino, oppure osservazioni in musei, serre etc.

La prossima puntata vedremo come lavorare sull’ottica e migliorare l’ingrandimento!!

alfonsodambrosio@yahoo.it

 

Vai alla barra degli strumenti