Archivi categoria: elettronica

Attivare Node-Red su IOT 2040

In questi giorni sto seguendo una serie di Webinar di Siemens dedicati ai docenti, una di questi ha per titolo: “IoT , il Gateway Open Source di Siemens”, dalla configurazione alla programmazione di un IoT 2040. Nelle prossime lezioni si parlerà di Node-RED. Utilizzerò queste lezioni per ripassare l’argomento e predisporre brevi guide utili per me per non dimenticare le procedure di configurazione. Le guide saranno da me utilizzate anche come base di partenza per le future lezioni sull’uso dell’IoT 2040.

Tra i possibili modi con cui si può programmare il Gateway di Siemens, Node-Red è senza alcun dubbio uno dei più intuitivi.

Di seguito la procedura per avviare Node-RED al boot dell’IoT.

Si suppone che abbiate già effettuato la configurazione di rete per il vostro dispositivo, per maggior informazioni si consulti la mia precedente guida: Siemens SIMATIC IOT2040 – configurazione ed utilizzo con l’IDE Arduino

Per connettermi ho utilizzato una connessione SSH utilizzando su Windows PuTTY:

Se è la prima volta che vi connettete via SSH apparirà una finestra di avviso che vi chiederà di aggiornare la chiave SSH, fate click su Yes.

Per avviare al boot dell’IoT Node-RED bisogna entrare all’interno della configurazione della macchina Linux come utente root:

Per default non è inserita nessuna password di root, è buona regola inserirne una. Nell’immagine che segue la password era stata già da me impostata. Inserire le password e premete invio:

Per avviare il setup dell’IoT digitate: iot2000setup

Selezionate: Software

Selezionate: Manage Autostart Options

Selezionate, premendo lo spazio della testiera Auto Start mode-red e muovetevi con il tasto tab per giungere sul pulsante Done, confermate con il tasto invio

Con il tasto tab selezionate Back e premete invio

Con il tasto tab selezionate Quit e premete invio

Procedere al riavvio dell’IoT che può avvenire in due modi:

  • mediante il comando da terminale reboot
  • disattivando e riattivando l’alimentazione del dispositivo

Aprite una finestra browser sul computer e digitate l’indirizzo IP: 192.168.200.1:1880 e premete invio. L’indirizzo potrebbe essere diverso, dipende dalle impostazioni che avrete fatto in precedenza, l’importante è che sia specificata la porta 1880 che è quella su cui risponde Node-RED.

Buona sperimentazione a tutti 🙂

 

Problemi nella condivisione di un progetto con Tinkercad Circuits

Mi è stato recentemente segnalato che vi sono alcuni problemi nella condivisione di un progetto con Tinkercad Circuit. In realtà non si tratta di un problema tecnico, ma di una impostazione da abilitare per consentire l’editing del circuito anche da parte di altre persone.

La modalità di condivisone di un progetto avviene facendo click su “Condividi”:

successivamente bisognerà copiare il link e condividerlo con chi si desidera.

L’utente che riceve il link potrebbe trovarsi in questa situazione:

Ciò potrebbe accadere perché non è stata modificata la privacy del progetto. E’ indispensabile impostare la modalità di condivisione dalle impostazioni del progetto nella home page dei progetti Circuits. Posizionandosi sul singolo progetto apparirà in alto a destra l’icona di un ingranaggio, un click sull’icona apre un menù:

Selezionare “Proprietà”

Individuare la sezione “Privacy”

Nella sezione Privacy modificare l’impostazione da “Privato” a “Pubblico” e successivamente fate click su “Salva modifiche”:

Utilizzando il link di condivisione, così come indicato ad inizio tutorial, l’utente sarà automaticamente reindirizzato sulla pagina di login di Tinkercad e accedendo verrà aperto immediatamente il progetto:

Buon Making a tutti 🙂

Problemi nell’apertura di progetti creati in Tinkercad

In questo periodo di emergenza didattica in cui mi trovo mio malgrado a dover far svolgere ai miei studenti diverse sperimentazioni in modalità simulata, mi trovo anche nella situazione di supportare i ragazzi nella soluzione di problemi tecnici sui loro PC.
In alcune classi, soprattutto nelle 3’ dell’ITIS utilizzo tra i vari software di simulazione anche Tinkercad Circuits che permette di far svolgere una discreta quantità di sperimentazioni in modalità simulata.

In questi giorni ricevo segnalazioni da alcuni studenti, che operando con computer con sistema operativo Windows, non riescono ad aprire progetti precedentemente creati a scuola oppure ad aprirne di nuovi sul proprio computer di casa, nel momento in cui si richiede l’apertura del progetto si entra in un loop di attesa apertura che non termina mai.

Il problema nella maggior parte dei casi risiede in una eccessiva protezione del sistema antivirus installato. Il problema si evidenzia maggiormente per chi dispone dell’antivirus Kaspersky Internet Security.

La soluzione al problema è documentata sul sito Tinkercad è di seguito elenco con immagini la modalità di risoluzione del problema così come feci diversi mesi fa.

Spero che questa guida possa essere di aiuto anche ad altri.

  1. Aprire Kaspersky Internet Security

  2. Selezionare “Avanzate”

  1. Selezionare “Rete”

  1. muovete la pagina verso il basso

  1. Selezionate “Gestisci esclusioni”

  1. Selezionate “Aggiungi”

  1. Inserite l’URL del sito, nel nostro caso: www.tinkercad.com

  1. Click su “Aggiungi”

  1. Chiudere la finestra

Buona sperimentazione a tutti 🙂

Controllo di un motore passo-passo bipolare NEMA17 con Driver L298N

I motori “passo-passo” o “stepper” sono motori elettrici sincroni il cui avanzamento avviene a passo singolo corrispondente ad uno specifico angolo di rotazione, pertanto è possibile farli ruotare a piacimento di un angolo preciso. Uno stepper è in grado di mantenere con precisione velocità di rotazione e posizione senza la necessitò di utilizzo di trasduttori di feedback come dinamo tachimetriche o encoder.
I motori passo-passo sono ampiamente utilizzati nell’ambito dell’automazione industriale: robotica, stampanti, scanner, o per esempio come stanno facendo alcuni miei allievi, per regolare l’inclinazione di un pannello solare per realizzare un inseguitore solare.

Rispetto ad altre tipologie di motori elettrici il motore passo-passo non modifica la velocità di rotazione in funzione della coppia a cui è sottoposto l’albero rotante, la mantiene costante e nel caso in cui la coppia aumenti il motore si ferma.

I motori stepper per essere pilotati richiedono una sequenza di impulsi generati da appositi circuiti elettronici di controllo.

In laboratorio vedremo come controllare il movimento di un motore passo-passo bipolare con Arduino mediante l’uso di un Motor Driver L298N. Su questo sito ho dettagliato l’uso di questa scheda per controllare motori in CC per robot didattici, però con questo tutorial voglio indicare ai miei studenti come effettuare il controllo di un motore passo passo NEMA17 che dovranno utilizzare nelle prossime esperienze di laboratorio.

Richiami teorici

Lo stepper motor o motore passo-passo è definito anche come “trasduttore elettromeccanico” in quanto converte impulsi elettrici di comando in passi elementari (step) di ampiezza angolare fissata in funzione del tipo di motore.

Questo tipo di motore elettrico per poter funzionare deve essere collegato ad un circuito di alimentazione specifico e ad un sistema di controllo elettronico in grado di governare l’angolo e la velocità di rotazione.
Come per tutti i motori elettrici anche il motore passo-passo è costituito da una parte fissa detta statore ed una parte mobile detta rotore su cui è connesso un albero di rotazione dotato di cuscinetti:

Nello statore sono disposti gli avvolgimenti di rame, costituiti da bobine di rame smaltato (isolato), mentre il rotore è costituito da materiale magnetico.

Esistono tre tipi di motori passo passo:

  • a magnete permanente (PM)
  • a riluttanza variabile (VR)ibrido (HY)

Gli avvolgimenti dello statore sono collegati in modo da realizzare un sistema bifase, ma esistono anche sistemi trifase e polifase ma sono più rari.

I motori passo-passo si suddividono a loro volta in due famiglie:

  • motori bipolari (la corrente negli avvolgimenti statorici scorre nei due versi)
  • motori unipolari (la corrente negli avvolgimenti statorici scorre in un solo verso)

In questa guida prenderà in considerazione solamente i motori a magneti permanenti (PM) e di questi considereremo solamente i motori passo-passo bipolari. La spiegazione teorica e l’utilizzo delle altre tipologie di motori sarà argomento di successive lezioni.

Motore a magnete permanente – motore passo-passo bipolare

Il principio di funzionamento di questa tipologia di motori è basato sull’attrazione di due poli magnetici che presentano polarità differenti. Un polo è costituito da un magnete permanete (calamita) mentre l’altro è il polo di un elettromagnete il cui magnetismo è generato da una corrente che fluisce in spire avvolte su un materiale ferromagnetico.

Si ricorda che facendo scorrere una corrente su una bobina avvolta su un nucleo di ferro viene generato un campo magnetico che presenterà una polarità Nord-Sud secondo la “regola della mano destra”:

immaginiamo di impugnare l’avvolgimento con la mano destra in modo che le dita indichino il verso di percorrenza della corrente, il pollice indicherà la direzione del vettore campo elettromagnetico e la punta del pollice indica il verso del vettore individuando il Nord magnetico:

Per far muovere il rotore dovremo quindi modificare il verso di percorrenza della corrente nelle bobine dello statore in modo che la forza di attrazione Nord-Sud tra i poli dello statore e del rotore generi il moto rotatorio.

Nello statore sono presenti due magneti disposti in maniera ortogonale uno rispetto all’altro su cui sono avvolte due bobina i cui terminali sono nominati: A+ e A-, B+ e B- così sono indicati nelle tabelle tecniche di questi dispositivi (i segni + e – a fianco alle lettere A e B non sono da confondere con la polarità), mentre il rotore è costituito da un magnete permanente costituito quindi da un polo Nord e un polo Sud.

Movimento del rotore

Facendo circolare una corrente continua nell’avvolgimento statorico A+ e A- viene generato un campo magnetico che porterà il rotore a ruotare e a bloccarsi nella posizione in cui le polarità magnetiche saranno opposte, così come indicato nel disegno che segue:

Togliendo alimentazione all’avvolgimento statorico A+ A- e alimentando l’avvolgimento statorico B+ B- si avrà una configurazione differente dei magneti statorici ed una conseguente rotazione di 90° del rotore in senso antiorario, come indicato nel disegno che segue:

Togliendo alimentazione all’avvolgimento statorico B+ B- e alimentando in senso opposto (polarità inversa) l’avvolgimento statorico A+ A- si invertiranno le polarità del campo magnetico ed una rotazione di 90° in senso antiorario del rotore così come indicato nel disegno che segue:

Da ciò si comprende che invertendo il verso di percorrenza della corrente prima prima in un avvolgimento statorico e poi nell’altro si otterrà ogni volta una rotazione di 90° del rotore.
L’alimentazione di una fase alla volta (di un avvolgimento statorico alla volta) è detto a “full step”, cioè passo intero.

La sequenza completa di rotazione è costituita da 4 passi (o 4 fasi) e quindi per ottenere una rotazione continua del rotore bisognerà realizzare la seguente sequenza di alimentazione:

La sequenza di movimento, secondo la tabella sopra indicata, sarà quella dell’immagine che segue dove per semplicità di esposizione è stato semplificato il disegno del motore:

Per invertire il senso di rotazione degli elettromagneti sarà sufficiente quindi invertire la sequenza con cui vengono alimentate le bobine statoriche.

Il movimento del motore può avvenire anche alimentando contemporaneamente entrambe le bobine statoriche, in questo modo il rotore si disporrà a 45° rispetto alla posizione precedente. La tabella delle singole fasi diventa:

la posizione del rotore sarà quella descritta dai disegni che seguono:

Controllo

I fili che costituisco i due poli sono distinti da colori diversi e il controllo del motore passo-passo deve essere effettuato da un driver bipolare, nel nostro caso un L298N.

La sequenza di eccitazione, sarà realizzata da un microcontrollore, nel nostro caso Arduino ed in una successivamente lezione vedremo come controllare uno stepper mediante PLC Siemens 1200 con un’altro tipo di driver.

Il driver bipolare, può essere paragonato in estrema sintesi a 8 interruttori, 4 interruttori per ogni bobina statorica

Elettronicamente il driver bipolare è costituito da un circuito elettronico a doppio ponte H, il nostro L298N, che consente di invertire il senso della corrente nelle bobine statoriche. Gli interruttori del circuito precedente vengono realizzati con transitor mosfet o bjt. Comandando la polarizzazione di coppie di transitor per ogni ponte H sarà possibile alimentare le bobine con polarità diverse.

Nell’esempio che segue viene preso in considerazione un solo ponte H.

Nel circuito sono presenti 4 transitor due NPN (Tr2 e Tr3) e due PNP (Tr1 e Tr4), collegati come indicato nel disegno che segue:

Mediante l’utilizzo di due output digitali di un microcontrollore invieremo sui pin IN1 e IN2 valori HIGH e LOW (tensioni di 5V e 0V) in modo da controllare la polarizzazione dei transitor e il conseguente verso di percorrenza della corrente che circola nella bobina statorica del motore.

Quando nel punto IN1 si ha un valore HIGH e su IN2 un valore LOW, andranno in conduzionei transistor Tr4 e Tr2 provocando la rotazione in un senso del motore

quando nel punto IN1 il segnale è LOW e su IN2 il segnale è HIGH i transistor che andranno in conduzione saranno il Tr1 e il Tr3, provocando la rotazione nel senso opposto al passo precedente:

La modalità di collegamento del circuito impedisce di alimentare contemporaneamente la coppia di transitor evitando così cortocircuiti.
I quattro diodi sono detti diodi di ricircolo ed il loro scopo è quello di proteggere i transistor dalla sovratensione generata dalla bobina statorica (induttanze) nel momento dell’apertura del circuito, infatti quando i transitor passano dalla condizione di conduzione a quella di interdizione (si apre l’interruttore) la corrente circolante dovrebbe andare istantaneamente a zero, ma l’induttore (la bobina statorica del motore) tende ad impedire questa brusca variazione, la tensione sul collettore del transitor tende ad aumentare a valori molto elevati.

Se immaginate il transitor in interdizione come ad un interruttore aperto, che quindi assume una resistenza elevatissima, l’induttore si comporterà per un breve istante come un generatore di tensione cercando di far passare in questa resistenza elevatissima la stessa corrente che era presente quando il bjt si comportava come interruttore chiuso, ma per la legge di ohm (V = RxI) la tensione sul collettore del bjt raggiunge valori molto alti, superiori alla tensione di alimentazione danneggiando il bjt.
Per evitare la distruzione del bjt viene inserito un diodo con catodo rivolto verso il positivo dell’alimentazione.

Durante la conduzione del transistor, il diodo non sarà polarizzato direttamente, mentre quando non sarà polarizzato (interruttore aperto) la corrente non passerà più attraverso il transistor, ma attraverso il diodo polarizzato direttamente.

Realizzazione del circuito

Il NEMA 17 richiede un’alimentazione tipica di 12V. La rotazione completa di 360° del rotore si ottiene facendo compiere 200 passi al motore. Ogni passo corrisponderà ad un angolo di 1,8°. La velocità massima che questo tipo di motore può raggiungere è di 60 RPM (dall’inglese revolutions per minute in italiano rotazioni per minuto giri/min).

Prima di collegare il motore alla scheda motori è necessario individuare i cavi A+, A-, B+ e B- sul motore. La maniera migliore è quella di consultare la scheda tecnica del motore in cui vi è una corrispondenza tra colore filo e cavo. In alternativa potete utilizzare un multimetro in modalità ohmmetro e misurare la resistenza tra le coppie dei cavi, quando misurerete un valore tra i 2 e i 4 ohm tra due terminali avrete individuato una delle bobine.

Collegare l’alimentazione esterna a 12V al terminale VCC e mantenere posizionare i jumper (i ponticelli) ENA ed ENB come indicato nell’immagine che segue in modo che il motore passo passo sia sempre abilitato al funzionamento.

Effettuare il collegamento dei pin di ingresso (IN1, IN2, IN3 e IN4) del modulo L298N a quattro pin di uscita digitale Arduino, nell’esempio sono stati utilizzati i pin: 8, 9, 10 e 11.

Collegare i fili A +, A-, B + e B- dal motore passo-passo al modulo come mostrato nell’immagine che segue.

Lo sketch indicato di seguito, che potrete utilizzare come base di partenza per le vostre sperimentazioni, permetterà di controllare il motore passo-passo facendogli compiere ripetutamente un giro in senso orario ed uno in senso antiorario.

// Inclusione della libreria stopper
#include <Stepper.h>

// Numero di step (passi) per effettuare una rotazione completa
const int stepPerRotazione = 200;

// Creazione dell’istanza dello Stepper
Stepper mioStepper(stepPerRotazione, 8, 9, 10, 11);

void setup()
{
    // impostazione della rotazione a 60 rpm:
    mioStepper.setSpeed(60);
    // inizializzazione della porta seriale:
    Serial.begin(9600);
}

void loop() 
{
    // una rotazione in una direzione
    Serial.println("Rotazione oraria");
    mioStepper.step(stepPerRotazione);
    delay(500);

    // una rotazione in una direzione
    Serial.println("Rotazione antioraria");
    mioStepper.step(-stepPerRotazione);
    delay(500);
}

Questo sketch include la libreria Stepper https://www.arduino.cc/en/Reference/Stepper.
La libreria avrà il compito di sequenziare gli impulsi verranno inviati al motore stepper.

// Inclusione della libreria stopper
#include <Stepper.h>

Definizione della variabile stepPerRotazione che stabilisce il numero di passi per un’intera rivoluzione, in questo caso 200 che corrispondono a 1,8 gradi per passo.

// Numero di step (passi) per effettuare una rotazione completa
const int stepPerRotazione = 200;

Creazione di un’istanza della libreria stepper. La creazione dell’istanza prevede l’indicazione del numero di step per rivoluzione e l’indicazione dei 4 pin digitali di Arduino a cui dovranno essere collegati i pin IN1, IN2, IN3, IN4 della scheda L298N.

// Creazione dell’istanza dello Stepper
Stepper mioStepper(stepPerRotazione, 8, 9, 10, 11);

Nel setup:

  • impostiamo la velocità del motore passo-passo invocando la funzione setSpeed()
  • impostiamo la velocità di comunicazione della Serial Monitor
void setup()
{
    // impostazione della rotazione a 60 rpm:
    mioStepper.setSpeed(60);
    // inizializzazione della porta seriale:
    Serial.begin(9600);
}

Nel loop() invochiamo la funzione step() che permette di stabilire il numero di passi, valori negativi consentono di invertire il senso di rotazione del motore.

void loop() 
{
    // una rotazione in una direzione
    Serial.println("Rotazione oraria");
    mioStepper.step(stepPerRotazione);
    delay(500);

    // una rotazione in una direzione
    Serial.println("Rotazione antioraria");
    mioStepper.step(-stepPerRotazione);
    delay(500);
}

Esercizi per i miei studenti

Esercizio 1
Realizzare un sistema che permetta la marcia e l’arresto del motore passo passo mediante l’uso di due pulsanti.

Esercizio 2
Realizzare un sistema che permetta la marci e l’arresto ed il controllo del senso di rotazione del motore. Usare pulsanti per il controllo della marcia e dell’arresto e dell’inversione di marcia.

Esercizio 3
Realizzare un sistema che mediante serial monitor permetta l’impostazione del numero di rotazioni e del senso di rotazione.

Esercizio 4
Realizzare un sistema che mediante tastierino esterno consenta di impostare il numero di rotazioni del sistema e il senso di rotazione del motore.
Utilizzare un display 16×2 I2C da usare per messaggi e allarmi.

Sul display dovrà essere visualizzato:

  • Numero di giri in tempo reale
  • Passi del motore
  • Senso di rotazione

Esercizio 5
Svolgere le stesse funzionalità dell’esercizio 4 ed aggiungere un sensore di temperatura TPM36 che superato un valore limite di temperatura di riscaldamento del motore passo passo attivi una ventola che lo raffreddi riportando la temperatura nel range di sicurezza stabilito, cessato l’allarme la ventola di raffreddamento si deve fermare.

ATOM Matrix tra le mie mani


Come sicuramente avrete notato sto sperimentando in questi mesi l’uso dei prodotti M5Stack, ne ho acquistati diversi perché credo che abbiano caratteristiche tecniche che possono essere ben sfruttate in campo didattico, ne sto valutando le potenzialità ed integrazione con il curricolo scolastico in ogni ordine di scuola., ne ho acquistati diversi perché credo che abbiano caratteristiche tecniche che possono essere ben sfruttate in campo didattico, ne sto valutando le potenzialità ed integrazione con il curricolo scolastico in ogni ordine di scuola.

Ho ricevuto da qualche giorno il nuovissimo Atom Matrix la scheda più piccola prodotta da M5Stack, ha una dimensione di 24×24 mm, dispone di una GPIO da 6 pin. Atom Matrix è adatto per lo sviluppo di dispositivi embedded di piccole dimensioni.

Il cuore del dispositivo è un microcontrollore ESP32-PICO-D4, dispone di 4 MB di memoria flash, Wi-Fi e Bluetooth SPI integrata, IMU (MPU6886 ) ed un’interfaccia PH2.0. Sono disponibili un led infrarosso ed una matrice LED RGB 5×5 nella parte frontale. Come sistema di input è possibile utilizzare un pulsante programmabile disposto sotto la matrice di LED, quindi per essere utilizzato dovrete fisicamente premere sul display. E’ presente una porta USB-C utilizzabile per l’upload e l’esecuzione dei programmi ed una porta GROVE.

Atom Matrix si programma con l’IDE Arduino installando un’apposita libreria indicata nel video allegato

Caratteristiche

  • USB Type-C
  • ESP32 PICO-based
  • 4 MByte flash
  • 1 pulsante programmabile
  • matrice led 5×5 RGB LED
  • LED infrarosso
  • Pulsante di reset
  • Antenna 2.4G SMD: Proant 440
  • IMU: MPU6886
  • GPIO da 6 pin (Dupont Pins)
  • interfaccia PH2.0 4Pin
  • Piattaforma di programmazione: Arduino
  • Dimensione:24 x 24 x 14mm
  • Peso: 1g

Caratteristiche ESP32

  • 240 MHz dual core Tensilica LX6 microcontroller da 600 DMIPS
  • Memoria integrata 520 KB SRAM
  • 802.11b/g/n HT40 Wi-Fi transceiver, baseband, stack e LWIP integrati
  • Bluetooth dual mode integrato (classic e BLE)
  • Hall sensor
  • interfaccia capacitiva touch 10x
  • Quarzo da 32 kHz
  • PWM/timer input/output disponibile su ogni pin GPIO
  • SDIO master/salve 50MHz
  • supporto SD-card

Per poter aggiornate il firmware del prodotto è indispensabile utilizzare l’applicativo EasyLoader, attualmente disponibile solo per piattaforma Windows.

Dopo aver scaricato il software fate doppio clic sull’applicazione per eseguirla, collegate ATOM Matrix al computer tramite il cavo USB C ed impostate la velocità di comunicazione che per questo dispositivo è di 750000 o 115200.

Riferimenti PIN

RGB Led – G27
Btn – G39
IR – G12
SCL – G21
SDA – G25

La pagina di riferimento su GitHub è: https://github.com/m5stack/M5Atom
da cui potrete scaricare anche il programma: Atom pixel tool che permette di disegnare caratteri ed icone ed inviarli direttamente sul display.

Allego il video tutorial che mostra come configurare l’IDE Arduino per poter utilizzare ATOM Matrix

Realizzerò in prossimi post esempi di utilizzo.

Buon Making a tutti 🙂