electronika

Tondeuse automatique électrique

Structure de la tondeuse

3 roues dont une roue folle. L’ensemble capable de supporter une charge important comme une batterie de camion. Elle dispose d’une largeur de coupe importante de presque 1 mètre. Ceci permet de connaitre facilement le potentiel de tonte en m2 en connaissant la vitesse d’avance.

dscn2673.JPG

dscn2672.JPGdscn2675.JPGdscn2676.JPGdscn2677.JPGdscn2682.JPG

dscn2684.JPGdscn2685.JPGdscn2683.JPG

D’autres photos à venir …

 Matériaux:

Informations importantes sur le coup des différentes pièces ou au moins une estimation.

Roue folle:

dscn2676.JPG

Cout: 60Euros

Profilé métalliques:

dscn2672.JPG

Cout:inconnu

réducteur:

dscn2677.JPGCout: 0 récupération

Motoréducteur de traction:

Cout:0 (récupération)

Batteries:

12V 24Ah 20HR PANASONIC -Batterie Plomb

Cout:60 euros neuve (conrad)

Moteur de tonte :

(moteur de trotinette électrique 100W)

Cout:Environs 10 à 15 euros sur ebay (occasion)

ROUES de tractions:

dscn2675.JPG

Cout: Environs 20 euros suivant le modèle

Partie électriques

2 moteurs récupéré sur des verins seront utilisé pour commander les 2 roues. Ces moteurs, initialement prévu pour du 24v seront légerment surutilisé afin d’obtenir des vitesse supérieures pendant de courte période avec un maximum de 36volt (3 batterie de 12V 24A).

La commande par ordinateur embarqué

De part sa faible consommation et par sont faible cout, l’utilisation d’un eeepc semble la solution la plus simple. Un convertisseur usb vers série permet de dialoguer avec un pic 16f877 qui lui même dialogue en i2c avec diffèrent modules tout fait. Les capteurs mecaniques de chocs provoqueront une interruption sur le microcontroleur et provoquera instantanément la coupure des moteurs puis le eeepc recevra l’information sur la colision. Une fois la colision détécté le programme sur eeepc décide quoi faire.

Le eeepc est conservé  avec  sont  os par default ,  xandros  estdes le depart équpé de python, il faudra ajouter la librairie graphique gtk car tkinter lui ne semble pas etre diponible sur xandros.

schema_tondeuse_automatique.png

Résultats:

Les premiers tests seront prochainement réalisées .

Les tests des différents modules externes sont en cours, c’est notament le cas des modules pont en h (MD03) , le module boussole électronique, le module détecteur à ultrasons…

Le programme en python sous ubuntu est également en train de naitre. Ce programme sera le cerveau du robot, grâce processeur du eeepc et du gps usb celui ci sera capable de se repérer dans l’espace et garder un cap grâce au module boussole.

Un autre projet similaire à commancé et est plus aboutis. Le greenRbot:

greenrboot.jpg

http://greenbot.over-blog.com/

 Autre tondeuse “home made”:

p1060250-640x480.jpg

Une tondeuse automatique commerciale:

green_robot_mower.jpg

http://blog.greenenergytv.com/blog/greenenergytv/0/0/green-robot-mower

Une tondeuse à l’état de concept, partie mécanique simulé avec le logiciel solidworks

tondeuse_dreamconcept_homemade.jpg

http://dreamconcept.designblog.fr/41970/COMMENCEMENT-DE-LA-TONDEUSE-ROBOT/

Une mini tondeuse:

rc5_yellow_front_side_big.jpg

http://www.robotshop.se/micro/wwwrc/indext.htm

Historique

15/07/09 : Finalement la partie logiciel nécessitera plus de temps que prévue. C’est en réalité la partie la plus difficile et qui demande le plus de compétence, sans rapport avec la partie électronique et encore moins avec la mécanique qui est déjà prête en attente du 1er test. Le logiciel nécessite d’apprivoiser différentes librairie (librairie graphique gtk, pyserial…) et la syntaxe et règles d’indentation du code en python plutôt strict en comparaison par exemple de php.Mon manque d’epèrience dans ce language complique ma progression mais les premiers programmes de tests sont en cours. les difficultés sont dépassé petit à petit.

7/09/09 : De nombreux problème rencontrés avec mon convertisseur usb/série qui nécessite d’inverser le signal tx de l’uart du pic pour fonctionner, alors que ceci n’est pas nécessaire en se branchant sur un port série classique. (Un 4066 sera intercalé entre les 2) . Finalement l’utilisation de l’os xandros est abandonné vu le manque de sources logicielles disponibles. Ubuntu 9.04 est adopté. Les tests effectué avec la wiimote confirme qu’elle est un excellent candidat pour piloter la machine. Le programme pour le pic 16f877 est en train d’être modifié afin de pouvoir piloter n’importe quel peripherique i2c, ceci afin de ne pas avoir à reprogrammer l’interface à chaques fois. Des entrées / sorties i2c vont être ajoutées afin de gérer les différents capteurs de chocs. L’utilisation de Karrigell-3.0.1 permet de controller la mise en marche des moteurs et plus généralement de dialoguer avec la carte interface grace a une interface web html.

9/09/09: Réception des composants i2c  pcf8574 et pcf8591. Le pcf8574 (8 entrés/ sortie logiques i2c) pourra être utilisé en mode interruption et avec plusieurs circuits en même temps.il pourra piloter relais, et recuperer les différents capteurs de choc . Le pcf8591 sera utilisé pour la mesure du courant moteurs des lames de coupes. (4 entrées analogiques disponibles)

15/10/09 : Premiers tests de la tondeuse effectué en mode autonome.Un petit programme en css pour mon pic 16f877 et le module boussole permet a la tondeuse de ce diriger. Suite a des problèmes de tractions les 2 roues on été remplacées par des vraies roues avant de tondeuse auto porté. Suite a un problème de court-circuit sur un module md03 la commandes est réalisé avec 4 relais de voitures en tout ou rien. Les premiers essais on montrés une bonne traction de la machine mais quelques défaut, les capteurs de contacts a l’avant ne sont pas suffisant (je le savais), la tondeuse peut facilement se bloquer a cause de ça. Les capteurs devront supporter l’eau ou être étanches, les ressort de rappels des plaques pare-chocs sont trop faibles, il se déclenche avec de grandes herbes. (ou alors il y a tout simplement des herbes trop hautes dans le jardin. Les lames de coupes avec lames de cutter fonctionne bien, même en alimentant les moteur de coupe en seulement 24v. Par contre pour le moment 2 moteurs ne permettent pas de se rendre compte facilement des zones de passages car il manques encore 3 moteurs et disques a installer afin d’atteindre les 1 mètre de largeur de coupe.Un des moto réducteur tourne plus vite que l’autre, une mise a jour du cap toutes les 5 secondes est nécessaire.

27/05/2010 : La structure de la tondeuse à fortement changé, j’attends de trouver certaines pièces pour finir la partie mécanique. Je décide d’utiliser une tour d’ordinateur pour y integrer l’ensemble de l’electronique.(au lieu d’un eeepc, vol oblige!) Je conserve tout de meme la carte mère mais je supprime l’alim atx, la carte mère équipé d’un pentium 4 permet une autonomie plus que respectable et une puissance de calcul trés confortable. Je décide également d’utiliser un serveur vidéo 4 entrée ethernet pour aquerir les vidéos des caméras.  La tondeuse est maintenant équipé d’axe de pédalier pour la partie barre de coupe. Le disque dur est remplacé par une carte mémoire sdhc de 8Go  (solid disk hight capacity) et de sont adaptateur ide.

mai 31st, 2009 Posted by admin | Bricolage, Electronique, Tondeuse, automatisme, domotique | 6 comments

Module MD03 utilisation (Pont en H 20A 50V)

Description du module MD03

md03.jpg

Pont en H pour commande de moteurs grâce a différent mode et notamment I2C, 50V, 20A maximum. Attention avant de commencer veillez à vérifier que les switch sont correctement configurés, cet à dire que la led sur la carte ne doit pas clignoter. Celle ci indique une adresse impossible. Le programme de test ci-dessous utiliser par défaut B0 ou 176  en décimal comme adresse de base, soit tout les switcher sur ON (vers le bas).

Il existe 5 modes de fonctionnement pour ce module:

  1. Analog Mode - 0v-2.5v-5v
  2. Analog Mode 0v -5V
  3. RC mode
  4. RC mode with TIMEOUT
  5.  I2C mode

recepteur-_rc.jpgRc mode permet l’utilisation d’un récepteur de modélisme pour piloter directement un moteur dans les 2 sens. Dans ce cas seul 3 fils seront utilisés. 0v(fil noir), 5v (fil rouge) et le signal pwm partiel (Modulation en largeur d’impulsion). Le fils blanc sera relié sur la borne sda

md03_rc.jpg brochage_rc_md03.jpg

Programme de test avec compilateur css et mplab.

dsc00094.JPG

ccs_compileur.gifProgramme de test

Afin de vérifier que la communication est bonne voici un mini programme de test qui permet de faire des phase d’accélération et décélération du moteur connecté sur la carte MD03 .

Le module est ici utilisé en mode i2c.

i2c.gif

Ce programme est chargé dans le pic grâce au programmateur /débugger icd2. (pour info)

Les broches présentes sur icd2 sont: PGD PGC GND Vcc Vpp

C’est bornes seront reliées comme ceci:

PGD sur la pin 40 (RB7)

PGC sur la pin 39 (RB6)

GND sur la masse du montage

Vcc sur le 5 VVpp sur la pin 1. (MCLR/)

Ce programme est réalisé pour un pic 16f877 à 20mhz. Il faudra relier SCL sur la pin 18 et SDA sur la pin 23.

void main(){
port_b_pullups(TRUE);
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);// setup_psp(PSP_DISABLED);
//setup_spi(FALSE);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
while (1){
output_D(255);//allumer une led pour vérifier que ça tourne
delay_ms(100);output_D(000);
delay_ms(100);//speed (2)
i2c_start();
i2c_write(176);
i2c_write(2);
i2c_write(250);
i2c_stop();//acceleration (3)
i2c_start();
i2c_write(176);
i2c_write(3);
i2c_write(250);
i2c_stop();//sens (0)
i2c_start();
i2c_write(176);
i2c_write(0);
i2c_write(2);
i2c_stop();
delay_ms(5000);//attendre que la phase d’accélération soit fini

//speed (2)
i2c_start();
i2c_write(176);
i2c_write(2);
i2c_write(128);
i2c_stop();

//acceleration (3)
i2c_start();
i2c_write(176);
i2c_write(3);
i2c_write(250);
i2c_stop();

//sens (0)
i2c_start();
i2c_write(176);
i2c_write(0);
i2c_write(2);

i2c_stop();

delay_ms(5000);//attendre la phase de décélération

}

}

Une valeur élevé dans le registre d’accélération permet une accélération progressive, une valeur faible une accélération très rapide.

L’adresse pour l’écriture est 176  et 177 pour lire la température ou un autre paramètre interne.(surintensité, température trop élevé, version software …)

 Les différents registres utilisables.

Register Address

Name

Read/Write

Description

0

Command

R/W

Write 01 Forwards - 02 Reverse
(00 for instant stop - Rev9 firmware only)

1

Status

Read only

Acceleration, Temperature and Current Status

2

Speed

R/W

Motor Speed 0-255 (0×00 - 0xFF)

3

Acceleration

R/W

Motor Acceleration 0-255 (0×00 - 0xFF)

4

Temperature

Read only

Module temperature

5

Motor Current

Read only

Motor Current

6

Unused

Read only

Read as zero

7

Software Revision

Read only

Software Revision Number- Currently

Si vous écrivez dans les registres vitesse ou accélération vous devez envoyer de nouveau le sens pour forcer les nouveaux paramètres.Avant de pouvoir démarrer votre moteur il est donc nécessaire d’écrire une valeurs dans les registres speed et accélération puis sens.

Lire la température

int temp;
temp= 0;
i2c_start();
i2c_write(176); //addresse de base en écriture
i2c_write(4); //registre température
i2c_start();
i2c_write(177); //adresse en lecture, r/w a 1
temp = i2c_read(0) ;

La valeur diminue avec la température. Le capteur est placé sous la résistance de 0.003 ohm. Il est possible de chauffer avec un fer à souder ce shunt afin de constater la diminution de la valeur de temp. 1 correspond 1.42 degré Celsius.

 Lire le courant moteur

int inten;
inten= 0;
i2c_start();
i2c_write(176); //adresse de base en écriture
i2c_write(5); //registre Motor Current
i2c_start();
i2c_write(177); //adresse en lecture, r/w a 1
inten = i2c_read(0) ;

La valeur maximum de 20A représenterais 186, par simple produit en croix on obtient par exemple 1.61A pour 15 (20 *15 /186 = 1.61)

Et voila vous pouvez maintenant passer a la puissance supérieure grâce a ce module qui permet une puissance théorique maximale de 50v x 20A soit 1000W, largement de quoi mouvoir votre robot.

Documentation:

http://www.robot-electronics.co.uk/htm/md03tech.htm

AVIS

+ Une sacré puissance disponible avec ce module (1000w)

+ Plusieurs mode de fonctionnement .

+ Facile à utiliser, documentation disponible.

- le prix, pas donné quant même.

Distributeur:

http://www.gotronic.fr/catalog/robotique/robframe.php?page_cible=commandes.htm

mai 24th, 2009 Posted by admin | Electronique, Tondeuse | 2 comments