Saturday, October 24, 2009

kit velleman k8055 (or vm110) - coupling with rc servo

step 1:
K8055 velleman card working! :)
using K8055_full_demo_app-1.2.0.1



step 2:
control rc servos through the k8055 using the following 0-5vdc to 1-2 ms pulse over 16 ms cycles. (ideally 19ms but hey nothing s perfect)


sheme:
components calculated from:
http://www.daycounter.com/Calculators/NE555-Calculator.phtml

note a red Led has been inserted to visualise power in serie with a 390 ohm resistor; final dual circuit impedance is close to 420 ohm due to the 2x 1Kohm variable resistors etc..., I also added an electrolytic condenser of 470 µF for power filtering.

Dual 0-5 vdc to RC servo signal converter

in bi-servo configuration: with a 1A 5vdc alimentation not delivering enough power, peak power consumtion by 1 servo induces the move of the other servo (the well known low battery power effect). Using a battery with its RC regulator showed much decreased interferences. Hence it would be good to have an alimentation of 5vdc 5A minimum (stable alimentation can be achieved easily using several parallel power regulators 7805 with a common cooler).

(adaptation from http://www.epanorama.net/circuits/servo10v.html)

edit as asked on comment:
top view (from component parts)

little help for those that want to build the circuit on a pre-drilled plastic support. don t forget to connect legs 4 and 8 of the 555.
watch out, all crossings should not be connected, check on the sheme above to make sure. The connection to the servo is depending on your device's plug, it needs signal, +5vdc and gnd.
good luck

10 comments:

Openroads said...

Bonjour Maxime,
Félicitation pour le montage du servo controller sur la K8055.
Beau boulot.
Personnellement, je ne comprends pas tout aux explications techniques.
Ceci dit, l’idée de contrôler des servos moteur via la K8055 m’intéresse énormément.
De là, je me permets de te demander quelques informations complémentaires par rapport a la construction de ce convertisseur de signal.
Typiquement ; la liste des composants : j’ai vu la première partie sur le site de epanorama mais il reste l’ajout d’un « electrolytic condenser of 470 µF » et de la résolution du problème de « low battery power effect » rencontré avec 2 servos.
De plus, oserais-je abuser en demandant un plan de montage légèrement vulgarisé.
En effet, vu mes connaissances en électronique (pas inexistantes mais plutôt maigres) une vision moins technique du montage me serait utile.
Après ça, la programmation sera un jeu d’enfant (je développe en WinDev).

Bonne continuation,
David
openroads01@gmail.com
http://openroads.canalblog.com/
Toujours le pied dans le phare !

Maxime said...

Après quelques recherches, je pense avoir bien compris le principe du circuit, notamment l'utilisation astucieuse de la tension de référence pour centrer le servo, le découplage des deux temporisation par l'intermédiaire de la diode, la gestion de l'alimentaiotn en cas de multi-servo

Par contre, je n'arrive pas à comprendre comment la variation de la "tension de commande du K8055" influe sur la charge du condensateur afin de sélectionner un angle précis. Si par exemple j'avais d'autres valeurs de tension que [0-5V] comme tension de commande, comment faudrait il que je détermine la valeur du pont diviseur placé sur la tension de commande.
OT-
------------------
reply:

si votre quesion porte sur le voltage en entree du circuit de commande du servo, il est adaptabe facilement, il faut juste a augmenter la valeur de la résistance variable/ajustable en entree pour obtenir un bon resultat. le circuit de depart etait prevu pour 0-10vdc (pour la reference, voir le lien sur le blog) . si vous avez un voltage en entree superieur, augmentez la valeur de resistance pour que le courrant (A) qui y passe ne soit pas trop important, de meme ordre de grandeur que avec mon montage.
Mc

Maxime said...

j'étais partie sur une méthodologie d'analyse plus complexe.
Ma problématique n'est pas tant l'amplitude de la tension de commande. En effet, je viens de réaliser le montage, qui fonctionne très bien.
Mais je constate que la commande n'est pas linéaire. Peut-être l'aviez vous constater vous aussi??
De mon coté, pour une commande via le K8055 de 0V à environ 2V, la rotation angulaire du servo est élevée ; puis de 2V à 4.7V elle est très faible.
La question que je me pose est en fait : comment compenser cette non linéarité, par soft ou par électronique ?

OT
-----------reply-------

oui, il y a un comportement non linéaire du montage.
cependant il est minimisable en réglant finement le potentiomètre de 1K ( ou 470 ohm sur le circuit original). c est lui qui est responsable du comportement angulaire du servo relie au montage d'apres moi.
ca devient vite complexe si la precision est demandee.

l autre solution est de s orienter vers des circuits de commande spécialises... il y en a plein sur internet, mais pour la plupart commandes par port serie.
MC

Andrew said...

Hi Max,

firstly well done i am well impressed.

if i may troube you, i am trying to get your circut to work and have met much trouble trying to get it it work, you mention the signal from the velleman DAC ouput is 0-5V this is what i get with no load on the k8055 (nothing connected) as soon as i attach your circut the voltage drops to about 1.8V i would like to know if this is expected, as i have not been able to replicate your result. Also the postive 5V connector in your diagram, is this from an external power source? i have was able to get some kind of response when running a 5V power supply with 800mA, but did not gett what i was expecting, forgive me but I am very much a novice. also the circut yo show only mentions the one output from pin 3 on the NE555 where does the power on the other2wires to the servo come from, if you could supply me with a more detailed circut with the GND and DAC1 on the K8055 shown as well as the power source postive and negative with the 3 pin output to the servo clearly shown i would be very greatfull.

Regards
Andrew

Maxime said...

- the voltage drop on the velleman board means you missconnected the device. the normal resistor of 33k+100k+1k ohm strongly suggests it. there is no way you would obtain such a voltage drop even knowing the 5vdc of the usb is not very powerfull, the red Led on it requires more power.
- implicit but not shown on diagram: the +5v of the servo contoller is DIFFERENT/NOT CONNECTED TO THE usb board!!! do you really want to burn your PC? it is from an externat power supply. only connect the ground and the signal "in" between the devices. never connect the (+5v).
- servo connectors: yellow = signal in; black/brown = ground (-); red= positive (+) from the external alimentation.
- you ll need more than 800mAh to contol one servo well enough. i recommand >1.5A alimentation. a 4805 regulator circuit would do. you need more for 2 servos.
- google is your friend.
good luck

Unknown said...

Maxime and to all who can help,

I have a 24 vdc 250 watt motor and I want to control its speed and direction..via microcontroller, will your k8055 handle it?

How can I incorporate the microcontroller control of speed and direction


Your reply will be greatly appreciated

Regards

Maxime said...

look at these links, it gives infos on what you need to command big motors with k8055

http://www.racingfr.com/forum/lofiversion/index.php/t28173.html

Unknown said...

Would this circuit work to control an R/C electronic speed control (ESC)? I'm thinking I can use this to add dynamic electro-magnetic braking to a hobby project.

There are several brushless ESC's designed for R/C planes and helicopters, that I'm hoping might work. For example: http://www.hobbywing.com/english/

Thanks for sharing and any thougts you might have.

-Robbie

Maxime said...

ESCs input work the same way as servos, in theory it can be used with the device, though i never tried with mines. you ll need to make an application that handles the zeroing probably, also, the system is temperature sensitive (inherent to resistors) for centring. so yo will get small "zero" differences with the pulses.
mc

Maxime said...

@anonymous: message evasif, peut etre que je pourrais repondre si une addresse etait fournie? vla.
mx