Raspberry Pi DYNAMIXEL Servo Controllerboard

08.11.2018 10:43

Clicca qui per consultare la guida rapida in lingua inglese

Il Servo Controller Dynamixel (o DSC, Dynamixel Servo Controllerboard) è una scheda di espansione compatibile con Raspberry Pi che permette di controllare e leggere i dati dei servomotori di ROBOTIS.  Questa versione è stata appositamente progettata per interagire con i Servomotori Dynamixel delle seguenti serie:

  • Serie AX / MX / X
  • Interfaccia UART Half-Duplex


Questi aspetti sono stati molto importanti per noi durante la fase di sviluppo della scheda servo controller!

Abbiamo pensato di sviluppare il Servo Controller Dynamixel (o DSC) perché sebbene il Raspberry Pi fosse raccomandato da ROS.org (Willow Garage) in quanto scheda di sviluppo altamente efficiente, non era ancora disponibile sul mercato una scheda di espansione adatta. Ovviamente, esistono già schede controller compatibili con il Raspberry Pi, ma queste richiedono l’uso di un hardware aggiuntivo a causa dei due diversi livelli di segnale (3,3 V e 5 V). In questo caso, invece, la scheda servo controller può essere inserita facilmente nel GPIO e il modulo step-down integrato alimenta sia il RPi che l'uC alla tensione richiesta. Inoltre, potrai fare a meno di un convertitore di livello logico esterno.
 

Funzionalità

Di seguito sono elencate le caratteristiche del Servo Controller Dynamixel

  • Controllo dei servomotori DYNAMIXEL di ROBOTIS (Serie: Procol 1.0)
  • Funzione di lettura dei dati del servomotore (temperatura, posizione, tensione)
  • RPi GPIO
  • uC digitale & porte analogiche
  • uC & RPi I2C
  • Espansione / Controllo di 6 x Servo PWM

Il DSC può anche essere utilizzato come dispositivo stand-alone (indipendente) e può essere gestito tramite interfaccia USB aggiungendo un convertitore FTDI. Al momento dell’ordine è possibile richiedere un adattatore compatibile (opzionale).

Uso con I'IDE Arduino

Installazione del driver

Si consiglia di utilizzare un programmatore USBasp per caricare il codice. Se si usa Windows, l’installazione del driver può essere facilmente eseguita con Zadig. Quando invece si utilizza un sistema operativo Linux o Mac, non saranno necessari driver aggiuntivi.


Aggiungere MYBOTSHOP DSC all’IDE Arduino

Mettiamo a disposizione il bootloader per l'uC Atmega644P, oltre a librerie ed esempi di programma che possono essere scaricati QUI . Il File ZIP deve essere successivamente decompressato e le cartelle “hardware” e “librerie” devono essere inserite in C:/Documenti/Arduino. Dopo aver riavviato l’IDE Arduino, sarà possibile individuare sia il DSC che gli esempi corrispondenti.

Caricare il codice

La funzione di caricamento del codice non può essere eseguita semplicemente premendo il pulsante corrispondente. Sarà necessario selezionare il programmatore USBasp andando su Sketch – Carica con programmatore (Upload with Programmer).
 

Software

Per il controllo dei servomotori Dynamixel usiamo la libreria di Savage Electronics, dotata di una vasta gamma di funzionalità e molto facile da implementare. Questa libreria, insieme ad una serie di esempi di applicazione, può essere facilmente scaricata cliccando QUI. Le modalità con cui questi codici vengono aggiunti all’IDE Arduino sono state spiegate nella sezione precedente.

Leggere Posizione, Temperatura e Tensione

I servomotori Dynamixel dispongono di un encoder interno e di diversi sensori per garantire un'elevata precisione di posizionamento e un’elevata affidabilità. I parametri desiderati possono essere letti tramite la seconda interfaccia UART (Dynamixel.read [...];) e trasmessi tramite la prima (Serial.print ([...]). Questo può avvenire con poche righe di codice, come mostrato nell‘esempio di seguito:

#include DynamixelSerial1.h

int Temperature,Voltage,Position;

void setup(){
Serial.begin(9600); // Begin Serial Comunication
Dynamixel.begin(1000000,0); // Inicialize the servo at 1Mbps (Standard) and Pin Control 0
delay(1000);
}

void loop(){
Temperature = Dynamixel.readTemperature(1); // Request and Print the Temperature
Voltage = Dynamixel.readVoltage(1); // Request and Print the Voltage
Position = Dynamixel.readPosition(1); // Request and Print the Position

Serial.print(" *** Temperature: "); // Print the variables in the Serial Monitor
Serial.print(Temperature);
Serial.print(" Celcius Voltage: ");
Serial.print(Voltage);
Serial.print(" Volts Position: ");
Serial.print(Position);
Serial.println(" of 1023 resolution");

delay(1000);

}

Controllo dei servomotori Dynamixel

Per la funzione di controllo dei servomotori Dynamixel sono necessarie righe di codice più semplici rispetto a quelle che servono per lettura. Come mostrato nell’esempio sopra, prima di tutto sarà necessario definire il servomotore con il suo ID univoco e il suo baud rate, dopodiché sarà possibile controllare il motore.

void loop(){

Dynamixel.move(1,random(200,800)); // Move Servomotor with ID 1 radomly from 200 to 800
Dynamixel.setEndless(1,ON); //Endless rotation
Dynamixel.turn(1,RIGTH,1000);
Dynamixel.ledStatus(1,ON); //Define status LED
Dynamixel.moveRW(1,512);

delay(1000);

}

A fini di chiarezza, gli esempi sono stati parzialmente accorciati. Dopo aver integrato il DSC nell'IDE Arduino, è possibile consultare gli esempi di codice completi cliccando su File - Esempi.


Uso con ROS

Un altro elemento a cui abbiamo prestato molta attenzione durante la fase di progettazione del DSC è l’implementazione del Sistema ROS (Robot Operating System), perciò abbiamo fatto in modo che l’uso della scheda controller con ROS fosse il più user friendly possibile. Ecco perché abbiamo deciso di utilizzare un uC AT644P dotato di due interfacce UART. La prima ha lo scopo di mettere in comunicazione uC e RPi, mentre la seconda è funzionale al comando dei servomotori Dynamixel. 

Verifica della tensione di esercizio del Raspberry Pi

Quando si utilizza per la prima volta il DSC in combinazione con il Raspberry Pi, si consiglia di verificare la tensione preimpostata. Infatti, è possibile che la tensione di esercizio preimpostata risulti modificata in seguito alle vibrazioni emesse durante il trasporto. La regolazione della tensione può essere eseguita in maniera semplice, come mostrato di seguito. DURANTE LA REGOLAZIONE DELLA TENSIONE NON LASCIARE IL DSC INSERITO NEL RASPBERRY PI!

Per processi / moduli aggiuntivi molto potenti, si consiglia di installare un dissipatore di calore esterno sul modulo step-down. A seconda della temperatura, è possibile installare un dissipatore di calore passivo (con nervature), oppure un dissipatore di calore attivo (ventola di piccole dimensioni).

Funzionamento

Istruzioni dettagliate su quali procedimenti devono essere seguiti e su come gestire il ROS Node possono essere consultate in questo articolo: si prega di cliccare QUI o di inserire questo link nella barra degli indirizzi del browser internet. https://www.mybotshop.de/MYBOTSHOP-DSC-ROS-NODE

Diagramma del circuito & Layout della scheda

Layout della scheda

Avvertenze di pericolo & dichiarazione di esonero di responsabilità

ATTENZIONE! L’uso scorretto della scheda servo controller può causare danni irreparabili al prodotto e a tutti gli apparecchi collegati!
NOTA! Prima di collegare una fonte di tensione, controllare attentamente il cablaggio. Eventuali modifiche devono essere eseguite in assenza di tensione.  
PERICOLO! In caso di uso improprio del prodotto, la nostra azienda è esonerata da qualsiasi responsabilità per danni a cose o persone. Questa scheda servo controller è stata concepita per essere utilizzata solo per specifiche applicazioni, per cui deve essere maneggiata da persone esperte.


Se avete commenti, suggerimenti o domande, potete contattarci in qualsiasi momento. Troverete tutte le informazioni di contatto a piè di pagina.
Questa guida ha il solo scopo di descrivere la scheda servo controller Dynamixel di MYBOTSHOP.  Dal momento che la scheda è stata progettata per essere utilizzata con il Raspberry Pi, alcune illustrazioni raffigurano anche il Raspberry Pi. Tuttavia, per quest’ultimo si applicano avvertenze di sicurezza e di pericolo diverse, che possono essere visualizzate al seguente link:
www.raspberrypi.org

Informazioni di contatto e direttiva RAEE-WEEE (ElektroG)
 

La scheda servo controller (DSC) di MYBOTSHOP non deve essere smaltita con i rifiuti domestici, bensì secondo quanto indicato nelle normative vigenti.
In quanto utilizzatori finali, quando acquistate un nuovo dispositivo avete la possibilità di restituire quello vecchio (che svolge essenzialmente la stessa funzione del nuovo) per smaltirlo gratuitamente.
Inoltre, anche se non si acquista un nuovo dispositivo, è possibile riconsegnare il vecchio dispositivo acquistato da noi per lo smaltimento. Per fare ciò, si prega di scrivere all’indirizzo e-mail info@mybotshop.de. In questo modo riceverete il Paketmarke con il quale inviarci gratuitamente il vecchio dispositivo. Se non si dispone di un imballaggio adeguato per la restituzione, lo invieremo gratuitamente.  
Infine, se il pacchetto dovesse contenere batterie, si prega di informarci anticipatamente. Infatti, in questo caso potrebbero essere richieste diciture/avvertenze supplementari.


Effettua il login per commentare.