Archivi categoria: Hardware

Scheda di sviluppo Seeeduino XIAO

In questo articolo viene descritta la scheda di sviluppo Seeeduino XIAO

Seeeduino XIAO

Seeeduino-XIAO-pinout

Le specifiche generali della scheda sono le seguenti

CaratteristicaValore
CPUARM Cortex-M0+ CPU(SAMD21G18) funzionante fino a 48MHz
Flash Memory256KB
SRAM32KB
Ingressi/Uscite Digitali11
Ingressi/Uscite Analogiche11
Interfacce I2C1
Interfacce SPI1
Interfaccia UART1
Led AlimentazioneVerde
Led di testGiallo
Led per Comunicazione Seriale in RicezioneBlu
Led per Comunicazione Seriale in TrasmissioneBlu
Porta di alimentazione e caricamento firmwareUSB Type C
Tensione Alimentazione3.3V/5V DC
Dimensioni20×17.5×3.5mm

Come si evince dalla tabella delle specifiche aspetti peculiari della scheda sono i seguenti

  • Ha una microcontroler SAMD21G18  ARM® Cortex®-M0+ 32bit 48MHz  con  256KB Flash,32KB SRAM.
  • Compatibile con IDE Arduino e CircuitPython.
  • Adatta per progettazione veloce con Breadboard.
  • Di piccole dimensione (20×17.5mm), per cui adatta per progetti di dispositivi indossabilli e piccoli progetti.
  • Molteplici interfacce a disposizione: 11  pin digitali/analogici, 10 Pin PWM, 1 uscita DAC , 1 interfaccia Pad SWD, 1 interfaccia I2C , 1 interfaccia UART, 1 interfaccia SPI.

Di seguito i link per i wiki di Seeedstudio per la configurazione con Arduino e CircuitPython

Seeeduino XIAO con IDE Arduino

Seeeeduino XIAO con CircuitPython

CircuitPython è un progetto derivato da Micropython semplificato per microcontrollori

CircuitPython 

La programmazione del dispositivo avviene mediante connessione USB Type C. Offre anche nella parte inferiore  pad per alimentazione  nonché l’interfaccia di debug SWD (Serial Wire Debug).

seeeduino-xiao-pinout-backLa scheda supporta il pin multiplexing ed uno stesso pin può essere utilizzato a seconda della funzione che lo richiama come pin analogico, digitale, ecc.

Sulla parte superiore della scheda sono presenti due pin per il reset della scheda stessa e per l’impostazione in modalità dfu per il caricamento di altro bootloader (per esempio CircuitPython).

Seeeduino-XIAO-resetPer eseguire il reset o caricare altro bootloader collegare la scheda tramite USB Type C e  resettare  cortocircuitando velocemente i pin di reset. Quando il led arancione incomicia a illuminarsi con sfarfallio la scheda è pronta per caricare il firmware. Usare questo metodo anche nel caso in cui la scheda non risulti più visibile sulla porta USB del PC.

La scheda è disponibile direttamente dal sito Seeed

Seeeduino XIAO

Nel prossimi articoli impostiamo l’IDE Arduino per un piccolo progetto con Seeeduino XIAO

Seeeduino XIAO – Ambiente Arduino

 

Informazioni su Seeed

Seeed è un abilitatore hardware IoT che fornisce servizi per oltre 10 anni che consentono ai produttori di realizzare i loro progetti e prodotti. Seeed offre una vasta gamma di piattaforme hardware e moduli sensore pronti per essere integrati con le piattaforme IoT esistenti e la produzione di PCB ed il servizio di assemblaggio PCB. Seeed Studio offre una vasta gamma di componenti elettronici tra cui Arduino Raspberry Pi ee altre diverse piattaforme per schede di sviluppo. Soprattutto il sistema Grove aiuta ingegneri e produttori ad evitare problemi con i ponticelli. Seeed Studio ha sviluppato oltre 280 moduli Grove che coprono una vasta gamma di applicazioni in grado di soddisfare una varietà di esigenze.

Modulo WiFi-Bluetooth ESP32

In questo articolo descriviamo brevemente il microcontroller ESP32 della Espressif

ESP32

E’ uns soc a basso consumo, composto da un microcontroller a 32 bit ed  integra già al suo interno un sistema wifi e buetooth. Al link delle risorse di Espressif si trovano le infomazioni dettagliate sul soc

Risorse ESP32

Le specifiche del dispotivo sono presenti nel seguente documento pdf

Specifiche ESP32

Il chip è disponibile in vari moduli o in schede di sviluppo, che facilita notevolmente l’uso dal momento che ha già al suo interno le corrette impostazioni hardware per il caricamento del firmware e la sua esecuzione.

Su internet si trovano vari siti che descrivono diversi progetti di Home Automation o IOT utilizzanti tale soc. Un sito di riferimento è sicuramente il seguente

esp32

All’interno del sito si trovano i riferimenti ai metodi/piattaforme  maggiormente utilizzati per lo sviluppo su tale soc, tra i quali si segnalano

  • Arduino Ide

ESP32 Arduino

  • ESP-IDF

ESP32 IDF

  • Micropython

MicroPython

  • PlatformIO

PlatformIO

  • Firmware Lua

LuaNode

Lua-RTOS-ESP32

Nodemcu Development

L’ESP32 è acquistabile sui vari siti, ad esempio ebay, sia in forma di modulo o piattaforma di sviluppo

ESP32 su ebay

Esistono  moduli del soc esp32 di diversi fornitori

Espressif esp-wroom-32

AI-Thinker esp32s

Al link

http://esp32.net/

sono elencate le diverse configurazioni hardware disponibili. Tra i kit di sviluppo segnaliamo

AI-Thinker NodeMCU-32S

DoIT ESP32 Dev Kit

Esitono dei kit di sviluppo basati su esp32 che integrano anche un modulo wireless LORA

Lora

al proprio interno.

Si segnalano ad esempio

Heltec Wifi LoRa 32

TTGO LoRa32

Nei prossimi articoli descriveremo come compilare ed usare vari firmware su schede di sviluppo con soc esp32.

Collegamenti Linkit 7688 Duo

Dopo la panoramica delle schede

Schede di sviluppo Linkit 7688 e 7688 Duo

in questo articolo si descrive come collegare alla scheda i seguenti componenti che saranno utilizzati in seguito:

  • Micro USB OTG alla porta Host della scheda
  • Dispositivo USB To TTL Serial
  • Alimentazione su usb di 5v sulla porta USB Power

Lo schema seguente mostra come sono eseguiti i collegamenti

connessionilinkit

In particolare si devono eseguire i seguenti collegamenti tra il dispositivo USB To TTL Serial e la scheda

Pin USB TTLPin Linkit
RXUART_TXD2
TXUART_RXD2
GNDGND

Nel prossimo articolo si mostra come compilare il firmware per la scheda Linkit 7688

Compilazione Immagine OpenWrt per Linkit 7688 e 7688 Duo

Schede di sviluppo Linkit 7688 e 7688 Duo

In questo articolo si descrivono brevemente le schede di sviluppo Mediatek Linkit 7688 e 7688 Duo. Di seguito il link alle due schede

Linkit 7688

7688Linkit 7688 Duo

7688duo

Le specifiche generali delle due schede sono le seguenti

Linkit 7688

ModelloLinkit Smart 7688
MPUMT7688AN, MIPS24KEc, 580MHz
RAM128 Mb DDR2
Memoria Flash32 Mb
GPIO22 (MT7688AN) a 3,3 V
PWM4 (MT7688AN) a 3,3 V
Interrupts esterni22 (MT7688AN)
SPI1 (MT7688AN)
UART Lite3 (MT7688AN)
AlimentazioneMicro USB 5V DC o tramite PIN 3,3 V
USB HOSTMicro USB
EthernetTramite Estensione
Wifi1T1R 802.11 b/g/n (2.4G)
Memoria aggiuntivaMicro SDSDXC sdcard
Dimensioni55.7 x 26 mm
Peso39 grammi

Linkit 7688 Duo

ModelloLinkit Smart 7688 Duo
MPUMT7688AN, MIPS24KEc, 580MHz
MCUAtmel AVR 8MHz
RAM128 Mb DDR2
Memoria Flash32 Mb
GPIO3 (MT7688AN) a 3,3 V
24 (ATmega32U4)
PWM8 (ATmega32U4) a 3,3 V
Interrupts esterni8 (ATmega32U4)
SPI1 (ATmega32U4)
UART Lite1 (ATmega32U4)
1 (MT7688AN)
AlimentazioneMicro USB 5V DC o tramite PIN 3,3 V
USB HOSTMicro USB
EthernetTramite Estensione
Wifi1T1R 802.11 b/g/n (2.4G)
Memoria aggiuntivaMicro SDSDXC sdcard
Dimensioni55.7 x 26 mm
Peso39 grammi

Le due schede condividono lo stesso Microprocessore (MPU MT7688AN), ma nel caso del Linkit 7688 Duo questo è coadiuvato dal Microcontroller Atmel (MCU ATmega32U4) per la gestione delle periferiche.

Di seguito gli schemi di interfacciamento con le periferiche nei due casi

linkit_smart_7688lintit_smart_7688-duo

Il sistema operativo utilizzato per ambedue le schede è OpenWrt, ma la gestione delle periferiche è diffente. Mentre nel caso del Linkit 7688 ci si affida al solo MPU ed a specifiche librerie per la gestione dell’interfacciamento con le periferiche,  per il Linkit 7688 Duo è  il microcontrollore ATmega32U4 che provvede a gestire le periferiche. La gestione dell’ATmega32U4  è eseguita con l’IDE  di Arduino inserendo nello strumento il supporto alla scheda come specificato al seguente link

Scheda Linkit 7688 Duo su Arduino

Al presente link vi è la documentazione Mediatek per le due schede

Risorse Linkit 7688 e 7688 Duo

Per la gestione delle perriferiche delle due schede fare riferimento alle pagine

Periferiche su Linkit 7688

Periferiche su Linkit 7688 Duo

Sil sito Mediatek, sono presenti anche esempi da seguire passo passo per provare le varie caratteristiche della scheda.

Nel prossimo articolo si mostrano i collegamenti da eseguire con l’USB OTG da usare con una chiavetta USB e una USB  TTL serial per il monitor del dispositivo

 Collegamento Linkit 7688 Duo

Mqtt con Beaglebone ed ESP8266-MQTT su ESP8266 per Relé

Dopo aver esaminato la connessione con il sensore di temperatura ed umidità

Mqtt con Beaglebone ed ESP8266-MQTT su ESP8266 per sensore temperatura

in questo articolo si imposta l’esp8266 per gestire un relé. Di seguito i collegamenti utilizzati

nodemcu relay

Anche in questo esempio metteremo il nodemcu in sleep. Perché il sistema possa riavviarsi dopo il comando di sleep è necessario collegare il PIN D0 (GPIO16) al PIN RST come specificato nella documentazione nodemcu

Nodemcu sleep

Passiamo ad analizzare il codice da caricare sul dispositivo; consta del init.lua e del file relay.lua.

Analizziamo i punti principali di ciascun file.

  • init.lua

Nel file sono impostate globalmente i parametri dell’access point, l’indirizzo e porta del broker mqtt ed il file da eseguire sull’esp dopo la connessione all’access point. Nel caso non riesca ad acquisire l’indirizzo il sistema viene fatto ripartire.

  • relay.lua

Il file relay.lua gestisce il relay, la sottoscrizione sul broker mqtt con invio dello stato con il topic monitor. Sono stati impostati dei parametri globali per gestire i topic, i tempi di attesa in tmr.alarm. Sono presenti in particolare i seguenti topic

  • /home/relay1/status : viene inviato lo stato del relé all’avvio ed in risposta dei comandi nel topic /home/relay1/command.
  • /home/relay1/monitor: periodicamente viene inviato lo stato del relé.
  • /home/relay1/command: Da altri client è possibile inviare dei comandi all’esp8266.
    • Restart: riavvia l’esp.
    • Sleep n: Tempo di sleep di n secondi.
    • ON: Accende il relay.
    • OFF: Spegne il relay.
    • Status: Richiede lo stato del relé (Acceso o Spento).

Vi sono varie funzioni di servizio che gesticono il tutto. I commenti all’interno del codice descrivono ciascuna funzionalità.

Nel prossimo articolo tratteremo la configurazione del webserver sul Beaglebone e la configurazione del websocket per Mosquitto sempre sul Beaglebone

Mqtt con Beaglebone ed ESP8266-Web server e Mqtt Websocket

Mqtt con Beaglebone ed ESP8266-MQTT su ESP8266 per sensore temperatura

Dopo aver caricato il firmware sul dispositivo esp8266

Mqtt con Beaglebone ed ESP8266-MQTT ESP8266

si passa a collegare tale modulo con un sensore di temperatura ed umidità DHT11. Di seguito i collegamenti utilizzati

Nodemcu DHT11

Nell’esempio che faremo si considererà l’opzione di mettere il nodemcu in sleep. Perché il sistema possa riavviarsi dopo il comando di sleep è necessario collegare il PIN D0 (GPIO16) al PIN RST come specificato nella documentazione nodemcu

Nodemcu sleep

Passiamo ad analizzare il codice da caricare sul dispositivo; consta del file init.lua e del file tempumid.lua.

Analizziamo i punti principali di ciascun file.

  • init.lua

Nel file sono impostate globalmente i parametri dell’access point, l’indirizzo e porta del broker mqtt ed il file da eseguire sull’esp dopo la connessione all’access point. Nel caso non riesca ad acquisire l’indirizzo il sistema viene fatto ripartire.

  • tempumid.lua

Il file temumid.lua gestisce la misura della temperatura ed umidità, la sottoscrizione sul broker mqtt con invio dei dati rilevati. Sono stati impostati dei parametri globali per gestire i topic, i tempi di attesa in tmr.alarm. Sono presenti in particolare i seguenti topic

  • /home/room1/temperature: vengono inviati i dati della temperatura rilevata.
  • /home/room1/humidity: vengono inviati i dati della umidità rilevata.
  • /home/room1/status : viene inviato lo stato del sensore all’avvio ed in risposta dei comandi nel topic /home/room1/command.
  • /home/room1/monitor: periodicamente viene inviato lo stato del sensore.
  • /home/room1/command: Da altri client è possibile inviare dei comandi al sensore.
    • Restart: riavvia il sensore.
    • Sleep n: Tempo di sleep di n secondi.

Vi sono varie funzioni di servizio che gestiscono il tutto. I commenti all’interno del codice descrivono ciascuna funzionalità.

Nel prossimo articolo imposteremo l’esp con il relé

Mqtt con Beaglebone ed ESP8266-MQTT su ESP8266 per Relé

Modulo Wifi ESP8266

In questo articolo descriviamo brevemente il microcontroller ESP8266 della Espressif

ESP8266

E’ uns soc a basso consumo, composto da un microcontroller RISC a 32 bit ed  integra già al suo interno un sistema wifi. Al link delle risorse di Espressif si trovano le infomazioni dettagliate sul soc

Risorse ESP8266

Le specifiche del dispotivo sono presenti nel seguente documento pdf

Specifiche ESP8266

Il chip è disponibile in vari moduli o in schede di sviluppo, che facilita notevolmente l’uso dal momento che ha già al suo interno le corrette impostazioni hardware per il caricamento del firmware e la sua esecuzione.

Su internet si trovano vari siti che descrivono diversi progetti di Home Automation o IOT utilizzanti tale soc. Un sito di riferimento è sicuramente il seguente

ESP8266 Forum

All’interno del sito si trovano i riferimenti ai metodi maggiormente utilizzati per lo sviluppo del firmware per tale soc

  • Arduino Ide

Arduino IDE

ESP8266 Arduino github

  • SDK Espressif

Forum Espressif Sdk

ESP8266 SDK

  • PlatformIO

PlatformIO

  • Nodemcu

Nodemcu nel forum esp8266.com

Nodemcu

Nodemcu github

L’ESP8266 è acquistabile sui vari siti, ad esempio ebay, sia in forma di modulo

ESP8266 su ebay

o come piattaforma di sviluppo

Piattaforma di sviluppo ESP8266

Vi sono vari moduli di AI-Thinker

AI-Thinker

che implementano ESP8266; noi useremo il devkit Nodemcu con all’interno i moduli AI-Thinker ESP-12/ESP-12E. Nei link precedenti su ebay erano presenti anche i moduli  ESP8266 ESP-01 e kit di sviluppo di altri produttori.

Sul github di Nodemcu sono presenti le schede di sviluppo che utilizzeremo in seguito. In particolare sono presenti due versioni della piattaforma

  • Piattaforma di sviluppo Nodemcu V1 (ESP-12E)

Nodemcu devkit V1.0

  • Piattaforma di sviluppo Nodemcu V0.9 (ESP-12)

Nodemcu devkit V0.9

Al seguente link vi è una descrizione dei vari moduli AI-Thinker disponibili e come ricavare le informazioni per la propria flash

Moduli ESP8266

Dal github di Nodemcu

Nodemcu Devkit

i pin del devkit 1.0 sono i seguenti

Nei prossimi articoli descriveremo il firmware Nodemcu, come compilarlo, come caricarlo sulla scheda e faremo degli esempi utilizzando il linguaggio di scripting  LUA, utilizzato in tale firmware

Lua

insieme ai moduli sofware messi a disposizione da tale firmware

Documentazione nodemcu

Nel prossimo articolo descriveremo il firmware Nodemcu

Firmware Nodemcu

Scheda di sviluppo Beaglebone

In questo articolo si descrive brevemente la scheda di sviluppo Beaglebone Black. Quanto detto è applicabile anche alle sue derivate (Green, Enhanced) per la maggior parte delle informazioni

Schede Beaglebone Black

Dal link precedente vi è la tabella di comparazione fra i vari modelli.

La scheda è frutto di un progetto Opensource con tutti gli elementi della stessa distribuita sul sito

Design file Beaglebone Black

Di seguito le caratteristiche principali del Beaglebone Black Rev. C (le altre versioni differiscono rispetto alla Black).

ProcessoreTexas Instruments Sitara AM3358BZCZ100, 1GHz, 2000 MIPS
Scheda GraficaSGX530 3D, 20M Poligoni/s
Memoria512 MB DDR3L 800Mhz
Flash a bordo4Gb, 8bit Embedded MMC
Pin Analogici7
Pin Digitali65 (3,3V)
PMIC (Power management integrated circuits)TPS65217C PMIC e un LDO (Low Dropout Regulator) addizionale
Debug20 pin JTAG CTI opzionale, Header seriale
AlimentazioneMini USB, Ingresso DC, 5V DC con Header di espansione
Indicatori1 Alimentazione, 2 Ethernet, 4 Led gestibili dall'utente
USB client PortAccesso a USB0, client mode con mini USB
USB Host PortAccesso a USB1, socket tipo A, 500 mA LS/FS/HS
Porta serialeAccesso UART0 con Header 6 pin 3,3 V TTL
Ethernet10/100 RJ45
Connettore SD/MMCmicroSD 3,3 V
Input utentePulsante di Reset, Pulsante di Avvio, Pulsante di Alimentazione
Uscita Video16b HDMI, 1280x1024 (MAX)
AudioVia HDMI, Stereo
Interfacce Supportate4x UART, 8x PWM, LCD, GPMC, MMC1, 2x SPI, 2x I2C, A/D Converter, 2xCAN Bus, 4 Timers, 2 PRU
Peso39,68 grammi

Dal link

Beaglebone Black Wiki

vi è una descrizione completa di tutte le caratteristiche e sofware compatibile. Il documento System Reference presente come link nel sito sopra indicato è scaricabile dal link

System Reference Beablebone Black

La scheda essendo Opensource e con molte uscite e controlli integrati si presta molto bene alla prototipazione di sistemi IOT, Automazione, Domotica. L’espansione di funzionalità hardware può essere eseguito mediante l’ultizzo di schede di espansione chiamate Cape

Beaglebone cape

La distribuzione  di cui ci occuperemo per la scheda Beaglebone Black è Debian. Sulla distribuzione Debian per Beaglebone è presente anche Cloud9

Interfaccia Cloud 9

che permette di interagire in modo semplice con l’hardware presente sul Beaglebone Black. In  articoli successivi si descrive l’installazione, creazione della immagine e vari utilizzi della scheda.

Di seguito il link alle caratteristiche software ed hardware della scheda; in particolare sono riportati i pin di ingresso/uscita del Beaglebone Black

Beaglebone Black software and hardware

La scheda può essere acquistata seguendo i link indicati sul sito

Acquisto Beaglebone Black

da siti di vendita online o da negozi di elettronica.

Decoder TV Enigma2

In questo articolo si descrive brevemente una categoria di hardware caratterizzata dall’utilizzo di un sistema emebedded per gestione di decoder satellitari/terrestri/cavo.

L’interfaccia Enigma 2, presente su questi sistemi,  è basata sul framework Openembedded/Yocto

Openembedded

Wiki Openembedded

Enigma2 è sviluppata in python; nei box tv si appoggia a linux e relativi driver. Tale sistema è stato sviluppato ed utilizzato sul proprio hardware dalla Dream Multimedia TV

Dream Multimedia

Dreambox wiki

Con la distribuzione dei sorgenti da parte della Dream Multimedia sono sorti molti team di sviluppo che hanno creato varie immagini alternative.

Con l’avvento di box clonati alla Dream Multimedia, quest’ultima ha ristretto la licenza e distribuzione del codice sorgente, cercando in tal modo di impedire la clonazione delle proprie macchine.

Altri operatori del settore, che avevano già incominciato ad utilizzare Enigma2 per i propri box, hanno continuato a sviluppare l’ultima versione open di Enigma2; i team di sviluppo si sono riuniti in OE-Alliance group per sviluppare in comune le basi del sistema, quali driver, github comune, ecc, con la personalizzazione finale disponibile a ciascun team. Di seguito una lista dei team di sviluppo appartenenti a OE-Alliance o al di fuori di esso

OE-Alliance Group

Il link al github comune è il seguente

OE-Alliance github

Con il framework Enigma2 si ha la possibilità di aggiungere altre funzionalità al sistema mediante lo sviluppo di addon che potenziano notevolmente il box tv.

I box di tipo HD sono basati quasi esclusivamente su SOC MIPS Broadcom, ma con l’avvento del sistema UHD si sta gradualmente passando a SOC ARM Broadcom.

Di seguito il link ad alcune aziende che producono box tv equipaggiati con Enigma2

Scheda Orange PI PC

In questo articolo trattiamo una scheda ARM, analoga al Rasberry Pi, ma disponibile ad un prezzo molto contenuto.

Dal sito del produttore

http://www.orangepi.org/

si possono mettere in evidenza le caratteristiche principali della scheda:

ProcessoreH3 Quad-core Cortex-A7 H.265/HEVC 4K
GPUMali400MP2 GPU @600MHz·Supports OpenGL ES 2.0
RAM1GB DDR3 (shared with GPU)
DiscoTF card (Massimo 64GB)
Rete10/100M Ethernet RJ45
Ingresso AudioMicrofono
Uscita AudioJack 3.5 mm e HDMI
Porte USBTre USB 2.0 HOST, una USB 2.0 OTG
Periferiche basso livello40 Pins Header,compatibile con layout Raspberry Pi B+
GPIO(1x3) pinUART, ground
LEDLed di accensione e Led di Stato
KeyIR input, POWER

La scheda fa parte di una famiglia di prodotti aventi il medesimo processore, ma con accessori differenti. Tale modello è disponibile per l’ acquisto anche tramite il sito del produttore.

Per tale dispositivo sono disponibili varie immagini, reperibili da sito del produttore, ma ci concentremo su due immagini in particolare:

  1. Openelec : Immagine dedicata ad un uso del dispositivo come media center.
  2. Armbian: Immagine dedicata ad un utilizzo prettamente di server/desktop Linux.

Per il punto 1 è possibile accedere al forum di Orange Pi al seguente indirizzo:

http://www.orangepi.org/orangepibbsen/forum.php

mentre dal sito Armbian è possibile scaricare l’immagine relativa all’ Orange Pi PC

http://www.armbian.com/orange-pi-pc/

Nei prossimi blog tratteremo come installare, compilare le varie immagini sull’ Orange Pi PC.