Controllare il servo HS-785HB con Arduino

[et_pb_section bb_built="1" admin_label="section" _builder_version="3.0.74" custom_padding="0||0|" custom_padding_tablet="0||0|" transparent_background="off" padding_mobile="on"][et_pb_row custom_padding="27px|0px|27px|0px|false|false" _builder_version="3.8" background_color="#ffffff" background_image="https://www.steplab.net/wp-content/uploads/2018/06/Banner_HS-785HB_1822x450_1-1.jpg"][et_pb_column type="4_4"][et_pb_text _builder_version="3.8.1" background_color="#ffffff" custom_padding="10px||10px|10px"]

Sul nostro catalogo puoi trovare la gamma completa dei servo Hitec ed accessori. 

[/et_pb_text][/et_pb_column][/et_pb_row][et_pb_row _builder_version="3.8.1"][et_pb_column type="2_3"][et_pb_text _builder_version="3.8.1"]

Il Servo HS-785HB con Arduino è un oggetto molto versatile che consente di creare diverse tipologie di oggetti interessanti. Molti dei nostri sistemi per creare movimenti precisi, siano essi rotazioni o traslazioni, utilizzano i servomeccanismi.  In questa sezione vedremo come interfacciare i servomotori della Hitech con Arduino.

Il servomeccanismo utilizzato principalmente sui nostri attuatori è HS-785HB.  Questo motore è in grado di compiere una rotazione controllata/controllabile da Arduino di 1260°.  L'angolo di rotazione può sembrare esagerato. Generalmente una capacità di rotazione di 360° è più che sufficiente per tutte le applicazioni. Questa proprietà del motore, però, lo rende molto utile per costruire delle gearbox.

[/et_pb_text][/et_pb_column][et_pb_column type="1_3"][et_pb_blurb border_radii="on|10px|10px|10px|10px" box_shadow_style="preset1" text_orientation="center" title="Servo HS-785HB" image="https://www.steplab.net/wp-content/uploads/2017/12/HS785HB.jpg" _builder_version="3.8.1" url="https://www.steplab.net/p/hs-785hb-servo-hitec/" border_width_all="1px" custom_padding="5px|5px|5px|5px" border_color_all="#adadad"]

Prezzo: 34€

[/et_pb_blurb][/et_pb_column][/et_pb_row][et_pb_row admin_label="row" _builder_version="3.0.47" background_size="initial" background_position="top_left" background_repeat="repeat"][et_pb_column type="4_4"][et_pb_text admin_label="Adsense" module_id="parte_teorica" _builder_version="3.0.87" background_size="initial" background_position="top_left" background_repeat="repeat" use_border_color="off" border_color="#ffffff" border_style="solid" saved_tabs="all"]

 

[/et_pb_text][et_pb_text _builder_version="3.8.1" background_size="initial" background_position="top_left" background_repeat="repeat" use_border_color="off" border_color="#ffffff" border_style="solid"]

Il controllo del servo HS-785HB della HiTech

Vediamo ora in generale come funziona questo servo motore. Il motore è dotato di un connettore a 3 fili: nero, rosso, giallo. I fili nero e rosso servono per l'alimentazione. Il filo giallo serve per il segnale di comando.

Alimentazione del servo

I servomotori generalmente assorbono una corrente rilevante e non possono essere alimentati direttamente da Arduino. Per questo motivo è necessario utilizzare un alimentatore esterno.

Nel caso del HS-785HB l'assorbimento massimo di corrente è di 230mA. Un singolo motore potrebbe funzionare con la scheda Arduino, ma è meglio, come criterio generale, ricorrere ad un alimentatore esterno.  La tensione di funzionamento è fra 4.8 e 6V, si può quindi prendere un alimentatore da 5V facilmente reperibile.  Se disponiamo di alimentatori con tensioni maggiori, possiamo facilmente ottenere i 5V utilizzando un circuito regolatore.  L'ingresso del regolatore andrà collegato al vostro alimnetatore/batteria con tensione superiore ai 5V. L'uscita del regolatore andrà collegata ai cavi rosso (+) e nero (-) del servo.

[box type="warning"] Utilizzando tensioni superiori ai 6V come alimentazione diretta del servo può portare al danneggiamento dello stesso e invalidare la garanzia.[/box]

Collegamento di Arduino

Controllare uno o più motori con Arduino è relativamente semplice. Prima di tutto è necessario ricordardi che la scheda Arduino e il motore devono avere un punto massa in comune. ( il (-) nero del motore/ andrà collegato ad un piedino GND di Arduino ).

[box type="info"] La massa comune. Spesso quando si collegano più schede elettroniche assieme ci si dimentica di riferirle alla stessa massa. Questa operazione è molto importante perché una tensione, come saprete, non ha mai un valore assoluto, ma è sempre un DIFFERENZA DI POTENZIALE tra due punti. Per questo motivo noi potremmo avere 5V tra due morsetti di una scheda, 5V tra due morsetti di un'altra scheda, ma queste tensioni non sono mai correlate.[/box]

Se questo punto non è chiaro o avete dei dubbi potete contattare l'assistenza.

Il passo successivo è scegliere un pin digitale per il controllo del segnale. Arduino è già dotato di una libreria per il controllo dei servo.

Di seguito mostreremo un esempio semplice di programma.

 Se utilizzate Arduino Uno potete alimentare l'intero sistema utilizzando un unica fonte di alimentazione. Se utilizzate alimentatori non stabilizzati è sempre consigliabile aggiungere dei regolatori di tensione per prevenire fluttuazioni dannose della tensione di alimentazione.

 

[/et_pb_text][et_pb_text admin_label="Adsense" module_id="parte_teorica" _builder_version="3.0.87" background_size="initial" background_position="top_left" background_repeat="repeat" use_border_color="off" border_color="#ffffff" border_style="solid" saved_tabs="all"]




[/et_pb_text][et_pb_text _builder_version="3.8.1" background_size="initial" background_position="top_left" background_repeat="repeat" use_border_color="off" border_color="#ffffff" border_style="solid"]

Il segnale di controllo

Infine siamo arrivati al segnale di controllo. I servo di questo tipo consentono, modulando la durata di un impulso, di raggiungere una posizione fissata. Nella figura vediamo il comportamento si un servo tradizionale e il comportamento del servo HS-785HB.  Un servo normale, come abbiamo visto, può essere pilotato con un impulso da 500 uS fino a 2500 uS.

Il nostro servo compie 1260°, cioé 3,5 giri.

Dobbiamo quindi immaginare che gli impulsi, in questo caso, serviranno a percorrere un mega angolo di 1260° e quindi andremo da  600 uS per 0° a  2400 uS per 1260°.

La domanda che qualcuno potrebbe farsi è "A cosa serve muoversi di un angolo così strano ?".  Questo servo nasce per controllare delle piccole funi quindi l'utilità sta nel avvolgere le funi in modo controllato.

Per i nostri scopi, invece,  il servo HS-785HB è quello più utilizzato perché consente di produrre oggetti molto interessanti. Di seguito ne vedremo alcuni.

Le principali applicazioni dei servo sono: moti rotatori controllati, conversione di moto rotatorio in traslazione controllata.

Rotazioni:

Le rotazioni controllate dal nostro HS-785HB si applicano principalmente a due oggetti molto interessanti di cui troverete i dettagli nelle relative sezioni: il GEARBOX e il sistema di PAN TILT.

Traslazioni:

Per quanto riguarda le traslazioni: il sistema più utilizzato è il 785 Gear Rack (ingranaggio con cremagliera).

Tutti i sistemi, sia traslazioni che rotazioni, si possono controllare con Arduino.

[/et_pb_text][et_pb_image src="https://www.steplab.net/wp-content/uploads/2018/06/sweep_BB.png" _builder_version="3.8"]

 

[/et_pb_image][et_pb_text admin_label="Adsense" module_id="parte_teorica" _builder_version="3.0.87" background_size="initial" background_position="top_left" background_repeat="repeat" use_border_color="off" border_color="#ffffff" border_style="solid" saved_tabs="all"]




[/et_pb_text][et_pb_text admin_label="Codice Arduino" _builder_version="3.0.87" background_size="initial" background_position="top_left" background_repeat="repeat" use_border_color="off" border_color="#ffffff" border_style="solid"]

L'esempio di base da cui partire con Arduino per controllare l'HS-785HB è il seguente

 


#include <Servo.h> // libreria Servo inclusa nella distribuzione base di Arduino

Servo mioservo; // assegnate un nome al servo

void setup()
{
 barra.attach(9); // piedino di collegamento della linea dati in questo caso 9 digitale

}

void loop() {
int pos = 1500; // posizione del servo in uS

 mioservo.writeMicroseconds(pos); // invia la posizione al servo

 }


 

[/et_pb_text][/et_pb_column][/et_pb_row][/et_pb_section]


Deprecated: File Theme without comments.php is deprecated since version 3.0.0 with no alternative available. Please include a comments.php template in your theme. in /home/steplab/public_html/wp-includes/functions.php on line 6078

Leave a Reply

You must be logged in to post a comment.

Shopping cart0
There are no products in the cart!
Continue shopping
0