Robot Street Challenge 2018: simulazioni con Scratch

Per mio divertimento, e in vista della Robot Street Challenge 2018, ho creato due progetti con Scratch che simulano un robot “line follower” e un robot che risolve un labirinto. Il divertimento consiste nel variare i diversi parametri (percorso, velocità numero di sensori, eccetera) per capire come influiscono sui tempi di percorrenza. Enjoy!

Se hai suggerimenti per migliorare il codice, te ne sarò grato.

In azienda le ciofeche costano carissime

Giro per le aziende insubriche e vedo gente capace, preparata e volenterosa, a cui vengono affidati compiti gravosi e importanti, che lavora ancora con PC di modernariato e software anziano.

“Lavora” è un eufemismo: in realtà dovrei dire “lotta, fatica, si dispera e si abbronza alla luce della clessidra”.

Faccio i conti della serva: metti che quel collaboratore costi almeno 50.000 €/anno, e che con meno di 2.000 € di hw/sw nuovo la sua produttività aumenti del 10% (e il suo stress diminuisca del 75%).

Penso quindi che queste aziende non sappiano far di conto, e che non dureranno a lungo.

(Più è grande l’azienda, più è grave è il problema)

(E non tocchiamo l’argomento “amministrazione pubblica”)

Competenze digitali

Competenze digitali:

Livello 1: cittadinanza digitale

La capacità di utilizzare la tecnologia e i media digitali in modo sicuro, responsabile ed efficace

Livello 2: creatività digitale

La capacità di diventare membri attivi dell’ecosistema digitale usando gli strumenti digitali per co-creare nuovi contenuti e realizzare le proprie idee

Livello 3: imprenditoria digitale

La capacità di utilizzare gli strumenti e i media digitali per affrontare sfide globali e per creare nuove opportunità

 

Strumenti necessari:

Capacità di gestire consapevolmente la propria identità digitale

Capacità di gestire equilibratamente il proprio tempo online

Capacità di gestire gli atteggiamenti negativi, propri e altrui

Capacità di implementare e gestire la sicurezza digitale

Capacità di implementare e gestire la riservatezza dei dati sensibili

Capacità di gestire e valutare le fonti di informazione online

 

 

 

Fonte:
World Economic Forum – 8 digital life skills all children need – and a plan for teaching them

Il protocollo MQTT per la internet delle cose

Questa piovosa e fredda domenica mattina si presta perfettamente allo struso esplorativo, propiziato dall’arrivo dei nuovi Raspberry Pi 3.

Raspberry Pi 3

Leggevo del protocollo standard MQTT per la interconnessione degli apparecchi IoT, e ho deciso di dedicare un raspi a fare l’ MQTT broker.

MQTT-FAQ

  • Il broker consigliato per Linux è Mosquitto (di cui esiste anche il client).
  • Il client consigliato per Windows è Paho.
  • Il client consigliato per Android è MyMQTT.

L’installazione dei diversi componenti è andata al primo colpo senza problemi, e ho testato con successo sulla LAN casalinga lo scambio di messaggi da Arduino a Windows e viceversa. Per una connessione remota le cose diventano un poco più complicate, dato che occorre aprire una porta del router, usare un DNS dinamico e dotarsi diuna autenticazione robusta.

Esistono le librerie per Arduino  e anche per Particle, che spero di testare presto e che aprono scenari eccitanti.

Prima impressione: questo protocollo è molto promettente ma anche molto giovane, e si vede. Se otterrà la necessaria massa critica, come io spero, diventerà molto più usabile.

 

 

Da Arduino a MySQL: ho aggiunto la temperatura esterna

Arduberry_finale

Dato che Yahoo Weather offre il feed della situazione meteo della mia città, ho deciso di aggiungere questi dati al mio database, in modo da avere sia la temperatura interna che quella esterna. Ho quindi modificato il codice in Python aggiungendo queste righe:

from xml.dom.minidom import *
import urllib
import csv
LocationID = '714505'
# Fetch weather XML for Como, Italy
Trier = urllib.urlopen('http://weather.yahooapis.com/forecastrss?w=' + LocationID + '&u=c').read()
# Parse the XML
Trier = parseString(Trier)
# Get date
Date = Trier.getElementsByTagName('lastBuildDate')[0].firstChild.data
# Get today's weather
Today = Trier.getElementsByTagName('yweather:condition')[0]
T = Today.attributes["temp"].value
W = Today.attributes["text"].value
#print(W,T)

Se vuoi divertirti anche tu, ho messo online il nuovo arduinotomysql.py con le relative modifiche.

Tra parentesi, questa sera canto nel coro alla prima della Cavalleria Rusticana che dovrebbe tenersi all’aperto nell’Arena del teatro Sociale. In questo momento splende il sole, ma si prevede nuvolo con occasionali piogge. Incrocio le dita.