[Programmation] Srf02 sur moway, MPLAB
Répondre à la discussion
Affichage des résultats 1 à 10 sur 10

Srf02 sur moway, MPLAB



  1. #1
    invitedad3b442

    Srf02 sur moway, MPLAB


    ------

    Bonjour a tous,

    Je vous expose mon problème, j'ai actuellement comme projet de faire un contournement d'obstacle avec le capteur à ultrason SRF02
    je travaille sur MPLAB je ne sais pas comment récupérer la valeur en cm du détecteur et l'utiliser dans une condition.
    Je galère vraiment.
    Si l'un d'entre vous a le temps de me venir en aide ca serait super.
    Bonne soirée à tous

    -----

  2. #2
    antek

    Re : Srf02 sur moway, MPLAB

    Avec la doc du capteur ça irait mieux.

  3. #3
    invitedad3b442

    Re : Srf02 sur moway, MPLAB

    https://www.robot-electronics.co.uk/htm/srf02techI2C.htm

  4. #4
    antek

    Re : Srf02 sur moway, MPLAB

    Il faut écrire d'81' dans le registre 0.
    MPLAB n'a rien à faire dans l'utilisation de ce module.

  5. A voir en vidéo sur Futura
  6. #5
    paulfjujo

    Re : Srf02 sur moway, MPLAB

    bonsoir,


    sur cette doc , on ne voit meme pas le Sensor ( sur la face cachée ?)

    Tu dois d'abord decider si tu vas utiliser une liaison serie ou I2C pour gerer ce module.
    Ensuite la doc est tres explicite pour récuperer les mesures en inches ou en centimetres .. ou en µS

    Donnes des details
    MPLAB => microchip
    Langage C ou ASM ?
    MPLABX ?
    Type de MCU ?
    FOSC ?
    Que fais-tu du resultat ?
    Affichage LCD, sur terminal ..autre

  7. #6
    invitedad3b442

    Re : Srf02 sur moway, MPLAB

    Cest une liaison I2C langage de programmation cest du C
    Je ne sais pas comment dire dans le programme principal si distance est inférieur à 15 alors le moway tourne à gauche
    Le sensor srf02 est bien déclaré
    Merci à tous pour votre aide

  8. #7
    antek

    Re : Srf02 sur moway, MPLAB

    Citation Envoyé par canascat Voir le message
    Je ne sais pas comment dire dans le programme principal si distance est inférieur à 15 alors le moway tourne à gauche
    Le sensor srf02 est bien déclaré
    Est-ce que la communication s'effectue correctement ?
    Tu utilises quel micro-contrôleur ?

  9. #8
    invitedad3b442

    Re : Srf02 sur moway, MPLAB

    c est programmation pic 18

  10. #9
    invitedad3b442

    Re : Srf02 sur moway, MPLAB

    Voila le code,
    seulement je ne sais pas comment programmer le robot et lui dire que si la distance entre le SRF02 est inferieur a 15 alors il tourne d'un quart vert la droite, encore merci pour votre aide
    Code:
    //********************************************************************************************
    //*                          Programme de mise en oeuvre du MOWAY                            *
    //********************************************************************************************
    //*                                                                                          *
    //********************************************************************************************
    //*    This program is free software; you can redistribute it and/or modify                  *
    //*    it under the terms of the GNU General Public License as published by                  *
    //*    the Free Software Foundation; either version 2 of the License, or                     *
    //*    (at your option) any later version.                                                   *
    //*                                                                                          *
    //*    This program is distributed in the hope that it will be useful,                       *
    //*    but WITHOUT ANY WARRANTY; without even the implied warranty of                        *
    //*    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                         *
    //*    GNU General Public License for more details.                                          *
    //*                                                                                          *
    //*    You should have received a copy of the GNU General Public License along               *
    //*    with this program; if not, write to the Free Software Foundation, Inc.,               *
    //*    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.                           *
    //********************************************************************************************
    // Fecha: 14/03/2011
    //********************************************************************************************
    //#include "p18f86j50.h"  		//Microcontrolador de Moway
    
    #include "lib_rf2gh4.h"			//Librería de rf
    #include "lib_cam_moway.h"		//Librería de cam
    #include "lib_mot_moway.h"		//Librería de motores
    #include "lib_sen_moway.h"		//Librería de sensores
    #include "i2c_problematiques.h"
    
    //****************************************************************************************************************//
    // SALTO DEL BOOTLOADER
    //****************************************************************************************************************//
    #define REMAPPED_RESET_VECTOR_ADDRESS			0x1000
    #define REMAPPED_HIGH_INTERRUPT_VECTOR_ADDRESS	0x1008
    #define REMAPPED_LOW_INTERRUPT_VECTOR_ADDRESS	0x1018
    
    void YourHighPriorityISRCode();
    void YourLowPriorityISRCode();
    
    	unsigned char data_in[8];
    	unsigned char data_in_dir;
    	
    extern void _startup (void);     
    #pragma code REMAPPED_RESET_VECTOR = REMAPPED_RESET_VECTOR_ADDRESS
    void _reset (void){
        _asm goto _startup _endasm
    }
    #pragma code REMAPPED_HIGH_INTERRUPT_VECTOR = REMAPPED_HIGH_INTERRUPT_VECTOR_ADDRESS
    void Remapped_High_ISR (void)	{
         _asm goto YourHighPriorityISRCode _endasm
    }
    #pragma code REMAPPED_LOW_INTERRUPT_VECTOR = REMAPPED_LOW_INTERRUPT_VECTOR_ADDRESS
    void Remapped_Low_ISR (void){
         _asm goto YourLowPriorityISRCode _endasm
    }
    	
    #pragma code
    	
    #pragma interrupt YourHighPriorityISRCode
    void YourHighPriorityISRCode()	{
    	RF_RECEIVE(&data_in_dir,data_in);
    }	
    
    #pragma interruptlow YourLowPriorityISRCode
    void YourLowPriorityISRCode()	{
    
    }	
    
    #pragma code
    
    
    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - //
    //                Tapez vos fonction ci-dessous                  //
    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - //
         
    unsigned int capteur_ultrasons(void)
    	{
    		unsigned int datah;
    		unsigned int datal;
    		unsigned int data;
    
    		Start_I2C1();
    		Write_I2C1(0xE0); // Adresse du SRF02 + mode écriture
    		IN_ACK_NACK1();  // Acquittement
    		Write_I2C1(0x00); // Ecriture dans le registre 0
    		IN_ACK_NACK1();  // Acquittement
    		Write_I2C1(0x51); // Resultat en cm
    		IN_ACK_NACK1();  // Acquittement
    		Stop_I2C1();
    
    		Delay10KTCYx(7); //Temporisation de 7 ms
    
    		Start_I2C1();
    		Write_I2C1(0xE0); // Adresse du SRF02 + mode écriture
    		IN_ACK_NACK1();  // Acquittement
    		Write_I2C1(0x02); // Ecriture dans le registre 2
    		IN_ACK_NACK1();  // Acquittement
    		Start_I2C1(); //Restart
    		Write_I2C1(0xE1); // Adresse du SRF02 + mode lecture
    		IN_ACK_NACK1();  // Acquittement
    		datah = Read_I2C1(); // Lecture octet poids fort
    		OUT_ACK1(); // Acquittement lecture
    		datal = Read_I2C1(); // Lecture octet poids faible
    		OUT_NACK1();
    		Stop_I2C1();
    
    		Delay10KTCYx(7); //Temporisation de 7 ms
    
    		data = ((datah<<8)|datal);
    		return(data); // Retourne la valeur data
    	}
    
    //*****************************************************
    //*     PAUSE_SECONDE(unsigned char)            
    //*****************************************************
    //* Attente d'un certain nombre de secondes
    //*****************************************************
    //*Input variables:			nb_secondes : 0 - 255        
    //*****************************************************
    
    void PAUSE_SECONDE(unsigned char nb_secondes)
    {
    	unsigned char i;
    	for (i=0;i<nb_secondes;i++)
    	{
    		Delay10KTCYx (100);		//pause de 1 seconde
    	}
    }
    
    
    //-------------------------------------------------------------//
    //			P R O G R A M M E	P R I N C I P A L	   		   //
    //-------------------------------------------------------------//
    
    
    /*** Le code exécutable commence ici ***/
    void main()            // 14 `Debut` (Appelé au RESET)

  11. #10
    paulfjujo

    Re : Srf02 sur moway, MPLAB

    et la suite du code ?

    A quel interval est acquis la mesure distance ?
    Quel est le module qui pilote/actionne le servomoteur de direction ?
    Y-a-il un LCD, un AURT ou autre element interface pour visualiser les donnees intermediares?
    Encore faut-il pouvoir "voir" , evaluer les resultat du capteur de distance ..

Discussions similaires

  1. Programation d'un moway sous MPLAB ( e/r Ultrason)
    Par invite93e22263 dans le forum Électronique
    Réponses: 0
    Dernier message: 09/02/2015, 11h35
  2. Moway
    Par invite549003a6 dans le forum Électronique
    Réponses: 5
    Dernier message: 01/02/2015, 21h05
  3. Projet Moway
    Par invite49c7957d dans le forum Électronique
    Réponses: 5
    Dernier message: 11/04/2014, 20h30
  4. Robot moway
    Par invite538cc627 dans le forum Électronique
    Réponses: 4
    Dernier message: 19/02/2012, 19h52
  5. Communication SRF02 avec processeur lpc2119
    Par invitebc911319 dans le forum Électronique
    Réponses: 0
    Dernier message: 28/07/2009, 17h10
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...