Home
Accesso / Registrazione
 di 

L'Evaluation Kit XMC 2GO di Infineon come scheda sensori per i robot ROBI

xmc_2go_copertina

Molti lettori sapranno che dal 16 gennaio 2014 è in vendita, presso le edicole, l'opera ROBI edita dalla DeAgostini, la cui vendita on-line, invece, era già iniziata l'11 novembre 2013. Venduta a fascicoli, permette la costruzione di un piccolo robot umanoide alto 34 cm, i movimenti del corpo sono dati da 20 servomotori digitali, mentre una scheda di riconoscimento vocale, gli permette di comprendere dei comandi e rispondere a tono in lingua italiana.
Il robot non dispone, però, di sensori quali: temperatura, luminosità, controllo del consumo della batteria, una possibilità era di realizzare un piccolo modulo da inserire all'interno del corpo del robot.
L’occasione è arrivata con il contest dal titolo “50 schede in regalo basate su ARM Cortex: Infineon premia le vostre idee” che offre l’opportunità di ricevere scheda XMC 2GO un Evaluation Kit per microcontrollore basata su un XMC1100.
Vedremo in quest’articolo quali sono i componenti scelti per la sua realizzazione.

Prima d’iniziare la descrizione del progetto, una piccola presentazione del robot Robi, che è l'ultimo nato della De Agostini, costruito con i particolari allegati ai 70 fascicoli che compongono l’opera.
Prima di lui erano usciti nelle edicole il robot "Panettone", poi è stata la volta di Cybot, successivamente l'uscita di ID 01, e per ultimo l'umanoide RoboZak.
Robi è una creatura di Tomotaka Takahashi, creatore di robot di fama mondiale, è riconosciuto per il suo design raffinato, è lui che ha progettato e disegnato il robot per quest'opera.
Robi ha un aspetto amichevole e tenero, misura 30 cm per un peso complessivo di 1kg.

Riesce a comprendere oltre 250 comandi, si siede, cammina, balla, accende la tv come un telecomando, risponde ogni volta che viene chiamato il suo nome e, quando qualcuno rientra a casa, gli dà il benvenuto.

La sua bocca s’illumina di rosso ogni volta che parla ed esprime le proprie emozioni cambiando anche il colore degli occhi.
Ecco alcune sue caratteristiche (elenco non ufficiale):

Nome: Robi
Produzione e vendita: DeAgostini
Progettato da; Tomotaka Takahashi
Dimensioni: Altezza 34 cm, Larghezza 16 cm, Spessore 12 cm
Peso: 1 kg (circa, con batterie)
Elettronica: - Scheda di controllo (VStone) con CPU ARM 32F205rbt6 (Datasheet) prodotto dalla ST
- Mouth LED board
- Scheda riconoscimento vocale (RayTron Inc)
- Remocon Board (RayTron Inc)
- Mic&Remocon LED Board (RayTron Inc)
Altoparlante: 8 ohm - 1W
Gradi di libertà: 20 rotazionali con servomotori Futaba di tipo digitale
Sensori: Accelerometro triassiale montato sulla scheda di controllo
2 Eye sensor (Vstone)
Composizione del telaio: Plastica
Alimentazione: Pacco batterie Li-ion: tensione d'uscita è di 7,4V ad una corrente di 800 mA/h, ricaricata tramite alimentatore esterno
Tipologia di controllo: Nessuna, programma residente su microSD

Visto il ridotto numero di sensori, al di là di alcuni necessari per il suo funzionamento, e dato le piccole dimensioni del robot, si è scelta la piccola scheda XMC 2GO, per creare una piccola scheda sensori da inserire all’interno del robot.
Il progetto prevede l’implementazione di questi componenti/sensori:

  • Sensore di temperatura;
  • Sensore di luce;
  • Misurazione della tensione della batteria e della corrente assorbita.

I valori sanno riportati su un piccolo display LCD.

Oltre al componente principale rappresentato dalla scheda XMC 2GO, viste le sue caratteristiche, i sensori, le periferiche, i livelli logici di comunicazione con il processore, dovranno presentare una tensione di alimentazione di 3.3V.
I componenti saranno:

  • Un sensore di temperatura con uscita analogica tipo TMP36;
  • Un sensore di luce con uscita analogica tipo GA1A12S202;
  • Sensore di tensione e corrente con interfaccia I2C tipo INA219;
  • Un display OLED risoluzione di 128x32 con interfaccia I2C.

Per il collegamento del tutto, si realizzerà una piccola scheda su cui troveranno posto una morsettiera per il collegamento dell’alimentazione della scheda che sarà derivata dalla batteria del robot, su di essa, oltre al regolatore di alimentazione, saranno presenti i connettori per i collegamenti degli altri moduli utilizati.

La scheda di controllo

Cuore del circuito sarà la scheda XMC 2GO (Datasheet), realizzata dall’Infineon: si tratta di un Evaluation Kit di piccole dimensioni (38,5x14 mm) che utilizza un processore ARM Cortex con un clock a 32 MHz.
Tra le periferiche disponibili, sul manuale sono elencate:

  • Due canali USIC (UART, SPI, I2C, I2S, LIN);
  • 6 convertitori Analogico/digitale a 12-Bit di risoluzione;
  • 4 Timer a 16-Bit;
  • Real Time Clock;
  • Generatore di numeri casuali;
  • 2 LED pilotabili dal processore più quello che segnala l'alimentazione del modulo.

Le varie periferiche sono riportate sui 14 pin disponibili.
Il modulo può essere alimentato tramite due pin con una tensione di 3.3 V.

Caratteristiche del Kit XMC 2Go con XMC1100:

Argomento Caratteristiche
Processore: Microcontrollore XMC1100 (ARM® Cortex™-M0 based) in un pakage VQFN-24 (4 x 4 mm )
Memoria Flash: 64 kB
Memoria RAM: 16 kB
Generazione Clock: Oscillatore interno
Frequenze: 32 MHz di clock della CPU, 64 MHz di clock Timer
Dimensioni: 14.0 x 38,5 mm
Alimentazione • da USB tramite durante il Debug o
• 3.3V di alimentazione esterna
Connettori Due intestazione 8-pin (pin passo: 2,54 millimetri distanza 10,16 millimetri ) adatto per breadboard
Debugger On-Board supporto J-Link Debugger:
• Serial Wire Debug (SWD, ARM standard);
• Singolo Pin Debug (SPD);
• ponte UART-to-USB (COM virtuale).
Periferiche Mappato sul pin X1/X2:
• 2 Channeli USIC (UART, SPI, I2C, I2S, LIN);
• 6 canali ADC con risoluzione di 12-bit;
• 4 x timer a 16 bit;
• interrupt esterni (via ERU).
altri:
• Real Time Clock;
• Random Number Generator.
Altri 2 LEDs utente @P1.0 e P1.1

Pin Header

Le intestazioni X1 e X2 pin sono utilizzate per accedere ai pin del processore XMC1100.
L'ordine di pin disponibili su X1 e X2 è stampato sul lato inferiore del PCB.

Alcuni pin del processore sono già utilizzati, in particolare le porte P1.0 e P1.2 del XMC1100 sono collegate ai 2 LED SMD presenti sulla scheda XMC 2GO.
Il LED 1 è collegato al pin P1.0, mentre il LED2 è connesso al pin P1.1.

Alimentazione

La scheda XMC 2Go può essere alimentata da un alimentatore 5 Volt DC esterno collegato alla presa Micro UBS, utilizzata per la programmazione, in questo caso l’assorbimento sarà di circa 75 mA.
Il LED Power & Debug indica la presenza della tensione di alimentazione 3.3V generata tramite il regolatore di bordo.
Un diodo di protezione presente sulla scheda, garantisce il funzionamento nel caso che l’alimentazione sia fornita tramite gli appositi pin previsti sul connettore X1.
Il regolatore montato presente sulla scheda tipo IFX54211MB_V33 (Datasheetprodotto dalla Infineon, è in grado di fornire un massimo di 150 mA.
Per questo motivo, visto che l’alimentazione sarà derivata dalla batteria del robot ROBI che fornisce 7,4V, è previsto l’utilizzo di un regolatore di tipo LM1117-3.3 (Datasheet) prodotto dalla Texas Instruments di tipo LDO che presenta una bassa tensione di dropout pari a 1,2V con 800mA di corrente, e alimenterà il modulo e le periferiche ad esso collegate tramite i pin del connettore X1.

Il sensore di temperatura

Per la misurazione della temperatura, il sensore scelto è il modello TMP36 (Datasheet) prodotto dalla Analog Devices che può essere alimentato con una tensione compresa tra i 2,7V e i 5,5V.
Il sensore fornisce una tensione di uscita che è linearmente proporzionale alla temperatura in gradi Celsius.
Non richiede nessuna regolazione esterna per fornire precisioni tipiche di ± 1 ° C a +25 ° C e ± 2 ° C nel suo range di temperatura compreso tra i -40 ° C e i +125 ° C.
La corrente di alimentazione è minore di 50 μA, fornendo un basso auto-riscaldamento inferiore a 0,1 ° C in aria calma.
Il TMP36 fornisce un uscita di 750 mV a 25 ° C ed ha un fattore di scala di uscita di 10 mV / ° C.
Il sensore si presenta come un transistor dotato di 3 pin, la funzione dei pin è riprodotta in figura

Sensore di luce

Il sensore di luce è non rappresentato da una normale fotocellula ma da un sensore di luminosità analogico tipo GA1A12S202 (Datasheet) prodotto dalla SHARP.
Come una fotocellula CdS, il sensore fornisce una tensione analogica di uscita che aumenta con la quantità di luce che illumina il sensore.
A differenza della normale fotocellula questo garantisce misure di luce stabili a temperature variabili, le curve di risposta sono corrispondenti all'occhio umano, il valore sarà letto tramite una delle porte AD della scheda XMC 2GO.
Il sensore misura solamente 1,6 x 2,0 mm, e per facilitare il suo utilizzo si utilizzerà un piccolo modulo realizzato e commercializzato dalla Adafruit.

Sensore di tensione/corrente

Per misurare la tensione e la corrente fornita della batteria del robot si utilizza un piccolo modulo, il cui cuore è rappresentato dal sensore INA219 (Datasheet) prodotto dalla Texas Instruments.
Si tratta di un misuratore di corrente e tensione con un'interfaccia I2C; l’integrato controlla sia caduta shunt sia la tensione di alimentazione, con tempi di conversione e filtraggio programmabili.
L’unione della calibrazione programmabile combinata con la capacità interna di calcolo, consente letture dirette. Un registro di moltiplicazione ulteriore, calcola la potenza in watt. L'interfaccia I2C dispone di 16 indirizzi programmabili.
L’integrato permette la lettura di tensione che può variare da 0V a 26V, e correnti fino a ±3,2 A con una risoluzione di ± 0,8 mA.
L'alimentazione del sensore può variare da +3 a +5,5 V consumando solamente 1 mA corrente, il campo di funzionamento dell’integrato varia -40 ° C a +125 ° C.
Per il nostro circuito si utilizzerà un’apposita scheda realizzata dalla Adafruit.

Display OLED

Per la visualizzazione dei valori rilevati, si utilizzerà un piccolo display, dotato di interfaccia I2C, il che lo rende compatibile con la scheda XMC 2GO.
Il modulo scelto è quello di un display OLED (l'acronimo di Organic Light Emitting Diode ovvero diodo organico a emissione di luce) prodotto dalla Adafruit con una risoluzione di 128x32 pixel. I LED sono bianchi e ognuno di questi può essere acceso o spento dal chip controller, tutto il modulo misura 46.30 × 11.50 × 1.45 mm
Poiché i diodi emettono una luce propria, non è richiesta alcuna retroilluminazione, il che permette una riduzione dei consumi.
Il circuito integrato pilota è un SSD1306 (Datasheet), che comunicherà con il processore tramite il collegamento I2C.
Il modulo può essere alimentato sia a 3.3V che a +5V, il che lo rende compatibile con tensioni e livelli della scheda XMC 2GO .
Il consumo in corrente dipende da quanto del display è acceso ma in media esso si attesta intorno ai 20mA.

Programma di gestione

Parlare adesso del programma è ancora presto, occorrerà prima di tutto disporre della scheda per fare le prime prove; per la sua programmazione si utilizzerà comunque il programma DAVE (Digital Application Virtual Engineer), attualmente alla versione 3; si tratta di una piattaforma di sviluppo per le famiglie di microcontrollori XMC che semplifica e abbrevia lo sviluppo SW.
Il programma dovrà occuparsi di configurare i vari pin d’ingresso ed uscita.
Sarà necessaria la lettura e la conversione dei dati di tensione forniti dai sensori di temperatura e di luce.
Per il sensore TMP36 occorre poi convertire il valore letto per risalire al valore di temperatura
Per quanto riguarda poi il sensore INA219 ed il modulo Display occorre gestire la comunicazione I2C sia per l’acquisizione dei dati letti sia per mostrare i dati elaborati sul display.

Conclusioni

Abbiamo così, analizzato i vari componenti scelti per la realizzazione del progetto, resta adesso da montare il tutto ed iniziare le prime prove. Realizzando prima il progetto su breadboard e passando, in seguito, alla realizzazione di un’apposito circuito stampato
Si dovrà poi studiare come integrare il progetto all’interno del robot Robi, trovando una collocazione all’interno del corpo dello stesso, attualmente agli inizi della sua costruzione.
Una volta realizzata la scheda questa sarà anche utile come Scheda Demo per testare le possibilità offerte dal modulo XMX 2Go.
Lascio agli utenti di proporre eventuali idee per migliorare il progetto.

 

 

Scrivi un commento all'articolo esprimendo la tua opinione sul tema, chiedendo eventuali spiegazioni e/o approfondimenti e contribuendo allo sviluppo dell'argomento proposto. Verranno accettati solo commenti a tema con l'argomento dell'articolo stesso. Commenti NON a tema dovranno essere necessariamente inseriti nel Forum creando un "nuovo argomento di discussione". Per commentare devi accedere al Blog
ritratto di Piero Boccadoro

Inauguriamo oggi la serie

Inauguriamo oggi la serie degli articoli dedicati ai 5 progetti vincitori del contest Infineon.
I miei personalissimi complimenti ad Adriano che con questa proposta ha saputo mettere a sistema la sua esperienza, il suo interesse per questo robot e la scheda.
Siamo sicuri che non appena Robi sarà completo, queste funzionalità saranno il vero valore aggiunto.
Bravo!

ritratto di Giorgio B.

E ci credo che ha vinto lui:

E ci credo che ha vinto lui: adrirobot è una garanzia!

ritratto di Boris L.

Avevo letto l'idea con la

Avevo letto l'idea con la quale aveva partecipato ma sinceramente da come l'aveva scritta pensavo non vincesse. Senza offesa ma era proprio un accenno. Invece mi hai stupido. bravo.

ritratto di Giuseppe.Comodo

implementazione possibile?

salve sono un nuovo arrivato e ovviamente assemblatore di ROBI......

una cosa che mi ha deluso un po' nelle caratteristiche native di questo robot è stata l'assenza di un sensore di ostacolo e/o uno di vuoto....tanto per essere più chiaro un sensore tipo i robot aspirapolvere che giunti ai gradini non precipitano per le scale!...proprio non può essere implementato qualcosa del genere che certamente eviterebbe delle cadute al piccolo ROBI?

Grazie per l'attenzione ed un saluto a tutti....

Peppe Comodo

 

 

Login   
 Twitter Facebook LinkedIn Youtube Google RSS

Chi è online

Ultimi Commenti