Pages: [1] 2   Go Down
Author Topic: Robot, anomalie da alimentazione insufficiente?  (Read 2840 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 10
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salve a tutti,
scrivo per chiedere suggerimenti in merito alle anomalie riscontrate nel robot che sto costruendo.

Di cosa si tratta?

Il robot è basato sul magician chassis e gestito da Arduino UNO: http://www.homotix.it/catalogo/robotica-e-accessori-438/kit-robot-versione-base

Per info:
Motori -> http://www.homotix.it/catalogo/robotica-e-accessori-438/magician-chassis
Sensore IR -> http://www.homotix.it/catalogo/infrarossi/sensore-di-prossimita-infrarossi
Driver motori -> http://www.homotix.it/catalogo/moduli-di-controllo/motor-driver-1a-dual-tb6612fng

Per prima cosa ho costruito il robot e l'ho programmato in modo da fermarsi davanti agli ostacoli per poi girare sempre dalla stessa parte.

Ieri ho deciso di migliorarlo rendendo il sensore IR mobile tramite micro-servo, così da fargli scegliere la direzione con più spazio disponibile.

Il micro-servo in uso è il GOTECK GS-9018 con le seguenti specifiche:

*Model.:GS-9018
*Weight:9g
*Size: 23.0 x 12.5x 30.0mm           
*Operating Speed : 0.10sec/60o
*Stall Torque : 1.5 kg/cm
*Operating Voltage:4.80-6 Volts


I problemi che mi si presentano quando è in funzione il servo sono due.

Il primo è che gira una sola ruota. Ho già provato a lasciare lo stesso codice togliendo ciò che riguarda il servo e funziona bene. Non appena inserisco la funzione servo.attach() uno dei motori smette di girare.

Il secondo problema riguarda il servo che, quando l'unico motore che funziona gira, invece di restare nella posizione centrale stabilita da codice si sposta verso un'estremità, in particolare quella di angolo 0.

Va precisato che nel momento in cui, da codice, il robot si ferma per permettere al sensore di rilevare le distanza il microservo si comporta perfettamente. Prima di tutto si mette in posizione centrale, dove ddovrebbe stare anche durante il moto, poi si sposta dell'angolo scelto sia a destra che a sinistra per decidere dove ruotare il robot, il problema è che appena il motore ricomincia a girare il servo si sposta ad un'estremità invece di tornare dove deve stare.


L'alimentazione è fornita da 4 pile stilo AA.
Il driver motori prende corrente da Vin
Il sensore dai 3.3v di Arduino
Il servo dai 5v di Arduino


Ho pensato che il problema sia legato ad una insufficiente alimentazione, ma preferisco che qualcuno con più esperienza di me mi dia conferma o smentita.

Chiedo poi consigli, qualunque sia il problema, su come correggere queste anomalie.


Vi ringrazio dell'attenzione.
Logged

Capo d'Orlando
Offline Offline
God Member
*****
Karma: 2
Posts: 725
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Dovresti fornire gli ampere, sommando quelli usati dal tuo circuito scegli l'alimentazione adatta!
I motori ho visto che consumano 190mA a testa, il servo tra i 200 ed i 300 (http://goteckrc.com/Download/GS-9018.pdf).. somma il tutto e controllalo con l'intensità del tuo pacco batterie, ammesso che il problema sia quello!
Logged

Torino
Offline Offline
God Member
*****
Karma: 3
Posts: 766
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Mi pare che quando attivi un servo con la funzione servo.attach() non puoi avere PWM sui pin 9 e 10 , se hai collegato i motori su uno di questi due pin il motore non funziona.  Su quali pin li hai collegati tu?
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 10
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Dovresti fornire gli ampere, sommando quelli usati dal tuo circuito scegli l'alimentazione adatta!
I motori ho visto che consumano 190mA a testa, il servo tra i 200 ed i 300 (http://goteckrc.com/Download/GS-9018.pdf).. somma il tutto e controllalo con l'intensità del tuo pacco batterie, ammesso che il problema sia quello!

Questo è il datasheet del tipo di pile che sto utilizzando: http://data.energizer.com/PDFs/E91.pdf, ma non riesco a trovare info chiare sull'intensità erogata smiley-confuse


Mi pare che quando attivi un servo con la funzione servo.attach() non puoi avere PWM sui pin 9 e 10 , se hai collegato i motori su uno di questi due pin il motore non funziona.  Su quali pin li hai collegati tu?

Ho provato sia quei pin che altri, ma non ho notato cambiamenti  smiley-sad



Ancora non ho risolto. Comunque grazie ad entrambi e a chiunque volesse darmi una mano   smiley-wink
Logged

Torino
Offline Offline
God Member
*****
Karma: 3
Posts: 766
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sarebbe meglio se scrivi il codice per vedere se è li il problema. smiley-mr-green
Logged

Torino
Offline Offline
God Member
*****
Karma: 3
Posts: 766
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Comunque le batterie che usi hai detto che sono 4 stilo,sono da 1,5v che messe in serie ti danno 6v a vuoto.  Quando colleghi un carico come nel tuo caso motori (2),servo,arduino ecc. sicuramente scenderai sotto i 6v. Per avere una tensione stabile all'arduino dovresti alzare l'alimentazione almeno a 7-8 volt altrimenti rischi che il regolatore di tensione che c'è sulla scheda non riesce a lavorare. Prova a misurare con il tester sull'arduino dove ti da i +5 mentre è sotto carico e vedi che tensione leggi.
Logged

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 114
Posts: 7194
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Prova ad aggiungere una pila. Dovresti andare a 7,5 come valore nominale.
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Torino
Offline Offline
God Member
*****
Karma: 3
Posts: 766
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Prova ad aggiungere una pila. Dovresti andare a 7,5 come valore nominale.
Torna utile anche se penso sia meglio un piccolo alimentatore,più che altro per la corrente a disposizione,due motori più un servo sd il resto danno poca autonomia.
Logged

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 114
Posts: 7194
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Prova ad aggiungere una pila. Dovresti andare a 7,5 come valore nominale.
Torna utile anche se penso sia meglio un piccolo alimentatore,più che altro per la corrente a disposizione,due motori più un servo sd il resto danno poca autonomia.
E' un robot su ruote. Attaccarlo con un alimentatore alla rete non mi sembra conveniente.
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Torino
Offline Offline
God Member
*****
Karma: 3
Posts: 766
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
E' un robot su ruote. Attaccarlo con un alimentatore alla rete non mi sembra conveniente.
Hai ragione ,era solo per vedere se si risolveva la situazione e poi si modificava il pacco pile.
 smiley-mr-green ahaha ,non pensavo ad una proluuunga smiley-mr-green
Ciao.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 10
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Grazie ragazzi. Le varie prove fatte a livello software ancora non mi hanno dato risultati positivi.
Proverò ad aumentare l'alimentazione e vi farò sapere.
Logged

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 114
Posts: 7194
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Per la parte software ti vanno in conflitto i PWM, li usa sia il driver dei motori che la libreria servo.
Prova a vedere se è possibile impostare le librerie su timer diversi.
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Offline Offline
Newbie
*
Karma: 0
Posts: 10
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Per la parte software ti vanno in conflitto i PWM, li usa sia il driver dei motori che la libreria servo.
Prova a vedere se è possibile impostare le librerie su timer diversi.

Perdona l'ignoranza. Che si intende per impostarli su timer diversi? Come posso farlo?
Logged

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 114
Posts: 7194
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ogni timer controlla 2 pin PWN:
Al timer0 sono collegati i pin 5 e 6.
Al timer1 i Pin 9 e 10 e al timer2 il pin 11 e 3.
Adesso non so' che libreria usi per il driver dei motori, ma devi controllare che timer usa in modo da spostare i servi sugli altri cambiando i pin dove sono attaccati.
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

0
Offline Offline
Faraday Member
**
Karma: 31
Posts: 2908
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Come ha detto PaoloP io mi concentrerei sul software sembra essere li il problema principale. In genere disturbi sull'alimentazione resettano il micro, e questo nel tuo caso non accade, per cui occupati del software e poi in un secondo momento di aggiungere una pila, perchè è sicuro che il regolatore di arduino non lavora per niente bene. Comunque misura la tensione della pila carica al massimo, questa dovrebbe essere superiore al valore nominale di poco.

Ciao.
Logged

AvrDudeQui front end per avrdude https://gitorious.org/avrdudequi/pages/Home

Pages: [1] 2   Go Up
Jump to: