Un Kit robotico semplice e potente: Digilent RDK Basic

Nota: questo articolo fa riferimento a prodotti che la Digilent non ha più a catalogo. Molti link quindi non funzionano più

La Digilent ha in catalogo alcuni kit robotici, molto semplici e interessanti, nei quali la vera potenza, a parer mio, sta nelle schede utilizzate (serie Cerebot) basate su PIC32MX. I kit completi, che includono una scheda cerebot, motoriduttori con encoder ad effetto hall (e scusate se è poco), ruote ed altri accessori, hanno un prezzo molto abbordabile considerata la qualità dei componenti e la semplicità di utilizzo: costano intorno ai 140 euro e sono distribuiti in Italia da Mirifica (http://www.mirifica.it/store/36-robotics). Voglio dire: se pure uno si stufa di “giocare” col robot, la componentistica è di tutto rispetto e davvero permette di farci qualsiasi cosa, anche se a parer mio sperimentare con un robot su ruote è uno dei modi migliori di praticare con i microcontrollori dato che permette di implementare tutte insieme una serie di nozioni sia di elettronica che di meccanica (per quale motivo crediate che sono state introdotte le specializzazioni in “meccatronica” nelle scuole? E’ il futuro!).

Personalmente ho scelto il kit RDK (Robotic Development Kit) Basic (qui in vendita, qui sulla pagina ufficiale), per la possibilità che offre di avere un LCD da 16×2 pilotato via seriale, con il quale ho passato un bel pomeriggio insieme a mia figlia (che non ha ancora compiuto 3 anni). Il montaggio difatti è estremamente semplice, non voglio dire che un bambino di 3 anni è in grado di montarlo da solo, ma se ha esperienza con le costruzioni e gli dite come vanno montati i pezzi, vi assicuro che si diverte anche lui! Poi mia figlia che mi vede continuamente smanettare con queste cose è estremamente attratta dall’elettronica per cui…

Anticipo fin da ora che il kit in questione non ha sensori che permettono di evitare ostacoli, possono essere acquistati a parte, ma utilizzare dei semplici microswitch o degli economici sensori ad ultrasuoni non penso sia una difficoltà insormontabile. Altrimenti ci sono altre scelte anche molto interessanti come il line sensor. Ad ogni modo, come dicevo, la forza di questi kit sta nelle schede Cerebot che permettono davvero di realizzare qualsiasi cosa.

Il Cerebot MX4ck (poi rinominato come chipKIT Pro MX4)

Vi ho anticipato qualcosa sulle schede Cerebot in un articolo precedente. La versatilità dei Cerebot sta nell’utilizzo delle schede di espansione PMod, che permettono di implementare su queste schede tutte le funzioni che ci passano per la testa con uno sforzo minimo. I Kit RDK basic e line sensor hanno in dotazione un Cerebot MX4ck, che monta il PIC32MX460F512L : un mostro a 80MHz, con 512 kB di memoria programma, 32 kB di RAM e la bellezza di 85 I/O (sulla scheda ne sono disponibili 74 dato che alcuni vengono usati per funzioni integrate). Solo questa scheda vale oltre la metà del prezzo del kit, dato che include una quantità interminabile di “piccole accortezze”, tra le quali ne voglio citare soltanto una che vi fa già capire tutto: ha il programmatore/debugger USB on board. Avete capito bene: la collegate al computer, aprite MPLAB e programmate la scheda direttamente, come se stesse usando un pickit3 insomma (viene difatti rilevato come un “Pickit3 on board”), e questo vale anche per il debug.

In aggiunta la MX4ck può anche essere utilizzata “stile arduino” utilizzando MPIDE e programmandola col linguaggio tipico di Arduino (vale in pratica tutto quello che ho fin’ora detto sui chipKit). Penso di aver detto tutto. Ah no, ci sono anche i connettori USB host OTG / USB device / USB->seriale, la connessione con alimentazione separata per 8 servocomandi RC, due pulsanti, 4 led utente, 4 diverse possibilità di alimentazione, vari esempi di programmazione con MPLAB C32 ecc… Insomma tutte le caratteristiche, gli schemi ed altro sono qui.

Potete quindi capire quanta cura ci sia nella realizzazione di questo prodotto, che vi consente di utilizzarlo nella maniera che più ritenete opportuna.

Le versioni precedenti dei kit RDK utilizzavano il Cerebot 32MX4 che ora è stato sostituito con l’ MX4ck (successivamente rinominato in chipKIT pro MX4)

Cerebot 32MX4 vs Cerebot MX4ck

Le due schede sono molto simili, montano in effetti lo stesso picmicro, ma si differenziano per alcune cose:

  • I pin di molti connettori PMod sono stati cambiati per adattarsi alle nuove specifiche dei PMods
  • Sull’MX4ck c’è un’opzione di alimentazione in più, che permette di alimentare la scheda dal convertitore USB/seriale
  • Il programmatore/debugger incluso sull’MX4ck è in pratica un pickit3 on board, più evoluto del predecessore insomma
  • L’MX4ck è compatibile con MPIDE, per cui può essere programmata in stile Arduino, come se stesse usando un chipKit

l’elenco completo e dettagliato delle differenze tra le due schede si trova nella migration guide apposita.

Contenuto del kit RDK basic

Il kit RDK basic contiene:

  • una piastra forata in metallo da 15×15 cm, da usare come base. I fori sono disposti su una griglia che permette di accogliere tutte le schede della Digilent.
  • una piastra forata in metallo aggiuntiva, da usare come “terminazione” del robot
  • una staffa in metallo per il montaggio dei motoriduttori
  • due motoriduttori 12V con rapporto di riduzione 1:19, dotati di encoder ad effetto hall (datasheet)
  • una coppia di ruote in ABS con banda in gomma, con attacco a D per i motoriduttori
  • un perno in plastica che funge come terzo punto di appoggio
  • un portabatterie per 4 pile stilo
  • due PMod HB5: ponti H da 2A a mosfet (documentazione)
  • un PMod CLS : display a caratteri 16×2 pilotabile via UART, SPI o I2c (documentazione)
  • un PMod BTN : 4 pulsanti (documentazione)
  • un PMod SWT : 4 interruttori (documentazione)
  • un Cerebot MX4ck (documentazione) completo di cavo USB/micro USB
  • cavi, prolunghe, viti, distanziali, clips

Avete solo bisogno di un cacciavite a stella, una pinza e 4 batterie stilo.

Il montaggio è semplicissimo, basta seguire il PDF che si trova sulla pagina ufficiale del kit, documento 514-001. Per quanto mi riguarda non ho trovato particolari difficoltà e vi do solo due consigli. Il primo: non mischiate le viti, dato che ne sono alcune più grandi, che servono per fissare alcuni componenti al telaio, dotate di dadi, e alcune più piccole che invece si usano con i distanziali esagonali.

Il secondo riguarda invece la connessione dei cavi PMod, per i quali al primo tentativo avevo difatti montato un cavo sottosopra e quindi il display non mi funzionava. Per aiutarvi nel montaggio del cavo dell’LCD (colore grigio) potete aiutarvi con questa foto:

Notate che il connettore ha su un’estremità tre pallini, che identificano il primo pin. I connettori PMod, guardandoli frontalmente, hanno il primo pin in alto a destra, mentre il PMod CLS (il display), guardandolo davanti (ovvero con i jumpers sulla sinistra) ha il pin 1 del connettore J1 sulla destra, per cui da un lato il cavo va messo con i 3 pallini verso il basso e dall’altro con i 3 pallini verso l’alto. In particolare il programma di esempio sfrutta la prima fila (quella in alto) del connettore PMod JB.

Per i ponti H vale la stessa cosa. In questo caso dobbiamo usare il cavo sdoppiato. Sui PMod HB5 i 3 pallini vanno verso sinistra, in corrispondenza del pin 1, connettore A a sinistra e B a destra

Sul cerebot il cavo va connesso all’header JD, con i 3 pallini verso il basso

Consiglio aggiuntivo: usate una fascetta piccolina per poter fermare i cavetti che passano dietro, vicino al terzo punto di appoggio, per evitare che possano essere strappati via durante il movimento.

Programmazione

Per la programmazione avete innanzitutto bisogno di MPLAB IDE (download) e MPLAB C Compiler per PIC32 (download). Dopodichè potete scaricare il reference design dalla pagina del kit RDK Basic (documento DSD-0000287) che è un buon punto di partenza per capire come usare i ponti H, i pulsanti, gli interruttori e il display.

Mettiamo il jumper di selezione della sorgente di alimentazione (power) su “EXT” (se abbiamo messo le batterie) o su “DBG”. Mettiamo quindi l’interruttore SW1 in posizione ON e colleghiamo il cavo USB al pc. Il connettore microUSB da utilizzare è quello con la scritta DEBUG (l’altro, UART, è quello invece collegato al convertitore USB/Seriale, da usare con MPIDE). Il PC rileva una nuova periferica (un dispositivo compatibile HID).

Lanciamo il file RDK_Basic.mcp, si apre MPLAB. Dal menù “Programmer” selezioniamo “Licensed Debugger” :

MPLAB si collega per verificare ed eventualmente scaricare aggiornamenti, e nella finestra di output appare il messaggio che indica il corretto collegamento con il programmatore on-board:

La prima volta questa operazione potrebbe non andare a buon fine, scollegate e ricollegate il cavo, magari anche in un’altra porta USB, provate anche a chiudere e riavviare MPLAB.

Appena uscito dalla scatola, il Cerebot è programmato con il bootloader chipKIT (quello che permette a questa scheda di essere programmato tramite MPIDE). Programmando in maniera “classica”, con MPLAB, ovviamente il bootloader viene perso, ma può essere facilmente ripristinato scaricandolo dalla pagina ufficiale del Cerebot MX4ck: si scarica l’hex, lo si importa in MPLAB (File -> Import) e lo si carica sul Cerebot usando il pulsante di programmazione

Per caricare il reference design, dobbiamo prima compilarlo, premendo il pulsante “Build All” e quindi caricarlo.

Sul display appare la scritta “Hello from Digilent!”. La pressione dei pulsanti posti sul PMod BTN fa fare semplici movimenti, per una sola volta (avanti, indietro, girata a destra, girata a sinistra). Gli interruttori causano invece una sequenza di movimenti, che viene ripetuta fino a quando l’interruttore non viene riposto in posizione OFF.

Il manuale del Cerebot MX4ck spiega come creare un proprio progetto da se, ma avere il reference design da cui partire è sicuramente d’aiuto. La pagina ufficiale del Cerebot contiene anche altri esempi, oltre a quello presente nella pagina del kit.

Ringrazio Mirifica per il kit, per la cortesia e la disponibilità.

Links

Galleria fotografica

Se questo articolo ti è piaciuto, condividilo su un social:
Se l'articolo ti è piaciuto o ti è stato utile, potresti dedicare un minuto a leggere questa pagina, dove ho elencato alcune cose che potrebbero farmi contento? Grazie :)