Informatica

mini-R, robot-rover basato sull'ESP8266

Luca Sguanci

mini-R

mini-R è un robot-rover controllato via Wi-Fi costruito attorno al kit Adafruit Mini Robot Rover Chassis.
I codici completi per il controllo del robot e per l’interfaccia web sono disponibili nella repository del progetto su GitHub.

Il robot-rover mini-R.

Al centro del progetto si trova un Adafruit ESP8266 Feather Huzzah impostato in modalità soft-AP e controllato tramite una web-app. Il driver dei motori è la scheda Adafruit DC Motor + Stepper FeatherWing.

ESP8266

Luca Sguanci

Adafruit ESP8266 Feather Huzzah

L’ESP8266 è un microcontrollore economico con tecnologia Wi-Fi, prodotto dalla Espressif di Shangai.

L’Adafruit ESP8266 Feather Huzzah è una scheda basata sul chip ESP8266 con processore impostato a 80 MHz e tensione logica di 3.3V.

La repository con i codici è disponibile su GitHub

Connessione Wi-Fi

Per una panoramica sul funzionamento delle reti, indirizzi IP e risorse web si veda la pagina Internet e reti.

Informatica

Luca Sguanci

Partiamo dal computer

Che cosa è un computer? Un computer è una macchina programmabile capace di eseguire un insieme di operazioni aritmetiche e logiche in maniera automatica.

Pensiamo adesso a una calcolatrice e domandiamoci se questa è un computer: la risposta è negativa, infatti la calcolatrice esegue in automatico una serie di compiti ma non può essere istruita a svolgerne di nuovi; non è questo il caso di uno smartphone per cui si possono creare nuove app e neppure quello di uno smartwatch o di un frigorifero intelligente (AI-based) che con un po’ di abilità possono essere riprogrammati per svolgere nuovi compiti.

Programmazione

Luca Sguanci

Algoritmo

Un algoritmo è un procedimento che risolve un determinato problema attraverso un numero finito di passi elementari.
Un esempio di algoritmo è la ricetta per fare una torta.

Che cosa è un programma?

Un programma è un insieme di istruzioni che un computer è in grado di comprendere e eseguire.
Un programma traduce un algoritmo in un linguaggio comprensibile da un computer e deve essere scritto in un linguaggio di programmazione attraverso la scrittura del codice sorgente.
Come esistono diverse lingue attraverso cui le persone possono esprimersi, così esistono molti linguaggi di programmazione, per es.

Pi greco, π

Luca Sguanci

Pi greco, Wislawa Szymborska

È degno di ammirazione il Pi greco
tre virgola uno quattro uno.
Anche tutte le sue cifre successive sono iniziali,
cinque nove due, poiché non finisce mai.
[…]
Il serpente più lungo della terra
dopo vari metri si interrompe.
Lo stesso, anche se un po’ dopo,
fanno i serpenti delle fiabe.
Il corteo di cifre che compongono il Pi greco
non si ferma sul bordo della pagina,
È capace di srotolarsi sul tavolo, nell’aria,
attraverso il muro, la foglia, il nido, le nuvole,
diritto fino al cielo,
per quanto è gonfio e senza fondo il cielo.
[…]

Programmazione in C

Luca Sguanci

La maggior parte dei microcontrollori e dei dispositivi embedded sono programmati in C, un linguaggio di programmazione sviluppato nei Bell Labs da Dennis Ritchie tra il 1972 e il 1973.

Hello world

IL primo programma che possiamo scrivere è il classico Hello world

#include <stdio.h>

main(void) {
	printf("Hello world!")
}

Variabili e tipi di dato

In generale un programma elabora delle informazioni ed è utile poter memorizzare questi informazioni in alcuni cassetti della memoria. Ciascun cassetto è come se avesse un’etichetta per poterlo riconoscere dagli altri e il contenuto del cassetto può variare nel tempo, da cui il nome variabili per indicare i vari cassetti della memoria.
Nel linguaggio C il contenuto di un cassetto deve essere specificato all’inizio, per cui a ciascuna variabile deve essere associato il proprio tipo di dato: int, long int, float, double, char etc.

Segnali e segnali elettrici

Luca Sguanci

Segnali

In natura i segnali possono essere delle azioni compiute da un organismo per avvisare o mettere in allerta altri organismi, per esempio possiamo avere il rilascio di sostanze chimiche da parte di piante per segnalare la presenza di un predatore, oppure possiamo pensare ai suoni emessi dagli animali per richiamare altri animali per segnalare la presenza di cibo o di un pericolo.
Anche all’interno degli organismi è presente un sistema di segnalazione a livello delle cellule.

Internet e reti

Luca Sguanci

Internet

Che cosa è Internet?

Per capire che cosa è Internet facciamo un salto indietro nel tempo, negli anni sessanta – in piena Guerra Fredda – e pensiamo a due computer che svolgono ciascuno il compito che gli è stato assegnato.
Adesso immaginiamo di voler scambiare dei dati tra i due computer: possiamo avere un dispotivo per lo scambio dati, per esempio un grosso e poco capiente floppy disk, che deve essere trasportato da un computer all’altro: se i computer sono vicini nessun problema, ma se questi computer si trovano a un migliaio di chilometri l’uno dall’altro? L’idea a cui lavorava un dipartimento della difesa americana, l’agenzia militare degli Stati Uniti per i progetti di ricerca avanzati (DARPA), era quella di connettere direttamente i due computer in modo che questi potessero dialogare tra di loro. Che cosa era necessario? Un cavo che connettesse fisicamente tra di loro i due computer e un protocollo (un insieme di regole) per lo scambio dei dati (messaggi).

Microcontrollori (MCU)

Luca Sguanci

Microcontrollori – MCU MicroController Unit

Un micro-controllore (MCU MicroController Unit) è un piccolo computer che risiede in un singolo circuito integrato.


Un microcontrollore può essere inserito all’interno di un dispositivo oppure essere integrato in una scheda di prototipazione insieme a altri componenti e a delle periferiche di input/output programmabili: questo è il caso della piattaforma Arduino.

Analogie e differenze tra microcontrollori e computer

Che vuol dire che un microcontrollore è un piccolo computer?
E’ piccolo perché ha dimensioni ridotte e perché, rispetto a un computer, ha una minore capacità di calcolo.
Un computer è un dispositivo che permette di utilizzare contemporaneamente diverse applicazioni e può essere programmato per svolgere funzioni diverse; un microcontrollore di solito viene utilizzato per realizzare un dispositivo hardware programmato per svolgere un compito specifico, per esempio:

Algebra di Boole

Luca Sguanci

Insiemi

Un insieme è una collezione (non ordinata) di oggetti, chiamati elementi dell’insieme.

X = { cane, patata, 3, mario }
X = { 2, 9, 7, 5, 11, ... }

A volte un insieme è determinato da una proprietà, nel senso che gli elementi che appartengono all’insieme hanno (godono) della proprietà P.

X = { x t.c. x ha la proprietà P }