Mardi 19 janvier 2 19 /01 /Jan 21:00

Le petit programme ci-dessous est écrit en c pour compilateur ccs.
La cible est un 16F877, la lecture se fait sur la liaison série.

Il ne faut pas faire d'erreur sur la programmation de la liaison série, sinon pas de lecture cohérente.
Il ne faut pas non plus fair d'erreur sur la fréquence programmée et celle du quartz, sinon le timing du capteur est erroné.

L'adresse du capteur ci-dessous est E00 comme généralement programmé lors de l'achat du capteur.


#include <16f877.h>
#fuses HS,NOPROTECT,NOWDT,BROWNOUT,PUT,NOLVP
#ORG 0x1F00,0x1FFF {} /* Reserve memory for bootloader for the 8k 16F876/7 */
#use delay(clock=20000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)

#use i2c (master, sda=PIN_C4, scl=PIN_C3)
 
main()
{
long range;
while(1)
 {
  i2c_start();                    //initate start condition
  i2c_write(0xE0);                //device address
  i2c_write(0x00);                //register address
//  i2c_write(0x50);                //set units to inches
  i2c_write(0x51);                //set units to centimeters
  i2c_stop();
 
  delay_ms(105);                   //wait for returning ping
 
  i2c_start();                    //initiate a new start condition
  i2c_write(0xE0);                //device address
  i2c_write(0x02);                //address of high byte register
  i2c_start();
  i2c_write(0xE1);                //device address but read

  range = i2c_read(1);         //read first byte and shift left
  range = range << 8;
  range += i2c_read(0);
  i2c_stop();

//  printf("range in inches = %lu\n\r", range[i]);
  printf("range in centimeters = %4lu\n\r", range);
    printf(" \n\r");
  delay_ms(100);
 }
}

Bonne chance

Par Alain CROSET - Publié dans : Logiciel - Communauté : Les robots
Ecrire un commentaire - Voir les 2 commentaires
Dimanche 8 novembre 7 08 /11 /Nov 18:10
Par Alain CROSET - Publié dans : Mécanique - Communauté : Les robots
Ecrire un commentaire - Voir les 2 commentaires
Lundi 24 novembre 1 24 /11 /Nov 13:47

Pour ceux qui ne veulent pas (ou ne peuvent pas) programmer en C, Flowcode 3 permet de générer du code à partir d'un interface graphique plus proche de l'automastisme que de l'informatique :

 

http://www.matrixmultimedia.com/Flowcode3a-X.php

Par Alain CROSET - Publié dans : Liens amis
Ecrire un commentaire - Voir les 3 commentaires
Dimanche 16 novembre 7 16 /11 /Nov 19:05

Comme certains me l'ont fait remarquer, je n'avais rien publié sur la lame de tonte ... roooo, po bien ...
Bon, pour réparer cette erreur, voici une petite description :

J'ai réalisé la partie tonte à partir d'un moteur de ventilateur de voiture, moteur 12V alimenté par mes batteries 24V en jouant sur la MLI (modulation de largeur d'impulsion) et donc sur la tension moyenne, pour ainsi régler la vitesse.
Mécaniquement, j'ai fixé des fils de 2,4 mm de débrouissailleuse sur un disque. Le disque permet d'équilibrer les forces sur le moteur sans trop d'impact de puissance quand les fils de tonte rencontre de l'herbe dense. Et ce disque est un disque de ... stationnement interdit ... Et oui, je continue à tout recycler.
La vitesse élevée de rotation permet un bon broyage de l'herbe et donc un bon mulching. Le défaut de ce système est une coupe médiocre des brins d'herbe. Rien ne vaut une bonne lame bien affutée ...

Par Alain CROSET - Publié dans : Mécanique
Ecrire un commentaire - Voir les 5 commentaires
Samedi 13 septembre 6 13 /09 /Sep 19:26

Principes de quart de tour sans collision :

*      A la suite d’une détection d’obstacle frontale, 2 quarts de tour sont possibles :

*      les quarts de tour de type 1 permettent de pivoter au plus près de l’obstacle, mais nécessitent toutefois de s’assurer d’avoir une marge en face de l’obstacle. Avec ce principe, une fois le quart de tour effectué, le robot se trouve plus porche de la zone de détection, la zone non tondue est la plus étroite.

*      les quarts de tour de type 2 permettent de pivoter en étant sûr de ne pas empiéter sur la zone de détection frontale, cependant, à la suite du quart de tour, le robot se trouve éloigné de la zone détectée. En utilisant ce principe, pour une tonte en bord de détection, il reste une zone non tondue.

*      Méthode pour réaliser les quarts de tour :

*      Le type 1 est obtenu en générant une marche avant de la roue gauche égale à la marche arrière de la roue droite de p/2 x l.

*      Le type 2 est obtenu en générant un ordre d’arrêt sur la roue gauche et une marche arrière sur la roue droite de  p/2 x l.

*      Lors du quart de tour, il est nécessaire d’enclencher la détection de collision latérale du coté où l’on effectue le quart de tour, de manière à éviter les obstacles qui n’étaient pas visibles avant la détection frontale et le quart de tour.

*      Dans le cas de GreenBot, le couple moteur étant important, il vaut mieux effectuer le quart de tour à vitesse lente (Vmax / 4) pour que GreenBot ne pas être emporté par son élan et ne s’arrête pas à temps si détection latérale.

Dimensions de GreenBot :

Soit la longueur L = 105 mm

Soit la largeur l = 465 mm

 

Principes de demi tour sans collision :

*      Par analogie 2 type de demi tour sont possibles :

*      demi tour de type 1, marche avant roue gauche = marche arrière roue droite de p x l. Il s’agit alors d’un demi tour exact, GreenBot repart dans ses traces.

*      demi tour de type 2, arrêt roue droite et marche avant roue gauche =  de p x l. Il s’agit alors d’un demi tour parallèle, GreenBot repart dans une trace parallèle à sa trace aller.

*      De la même manière que pour les quarts de tour, il est nécessaire d’enclencher la détection de collision latérale et de diminuer la vitesse de rotation à Vmax / 4

 

Par Alain CROSET - Publié dans : Logiciel - Communauté : Les robots
Ecrire un commentaire - Voir les 4 commentaires

Présentation

Images aléatoires

  • carter2.jpg
  • PontsHetCPU.jpg
  • p8120698.jpg
  • p8120697.jpg
  • dscn0498.jpg
  • avec-capot1.jpg

Recommander

Recherche

W3C

  • Flux RSS des articles

Widget Viadeo

Créer un blog gratuit sur over-blog.com - Contact - C.G.U. - Rémunération en droits d'auteur - Signaler un abus