Carte OOPIC et sonar SRF08
| OOPIC |
Nous avons vu dans un article précédent comment débuter avec la OOPIC, passons maintenant à l'utilisation des capteurs SRF08 avec cette carte. Pour commencer, nous allons voir comment connecter le capteur à la carte. Ensuite, il faudra adresser le capteur afin de lui donner un numéro unique permettant de le retrouver parmi plusieurs connectés sur le même bus I2c. Ensuite, nous verrons comment l'interroger.
Connecter la OOPIC-R au SRF08

. C'est assez important de le faire quand projète d'en brancher plusieurs car l'opération d'adressage peut être par la suite compliquée si vous avez soudé votre installation.Adresser le capteur SRF08
{geshibot lang="javascript"}
oI2C Srf08 = New oI2C; //Objet sonar
oByte Ver = New oByte;
Sub Void Main(Void)
{
Srf08.Node = 0; //On utilise l'adresse de BroadCast car on ne connait pas
//encore l'adresse du Sonar
Srf08.Mode = cv10Bit; //On passe en adressage 10-Bit
Srf08.NoInc = 1; //on demande de ne pas incrémenter apres l'envoi de données
Srf08.Width = cv8Bit; //On passe en adressage 8-Bit
Srf08.Location = 0; //On se place sur le registre 0
Srf08 = 160; //On envoie l'ensemble de commande permettant
//de spécifier l'adresse du capteur Hex A0
Srf08 = 170; //Hex AA
Srf08 = 165; //Hex A5
Srf08 = 224; //On met l'adresse souhaitée !
}
{/geshibot}
Dans mon cas j'ai choisit comme pour le sonar sur la photo l'adresse 224. En fait jous avez le choix entre 16 adresses :
| Adresse Hexadecimal | Adresse Numérique |
| E0 | 224 |
| E2 | 226 |
| E4 | 228 |
| E6 | 230 |
| E8 | 232 |
| EA | 234 |
| EC | 236 |
| EE | 238 |
| F0 | 240 |
| F2 | 242 |
| F4 | 244 |
| F6 | 246 |
| F8 | 248 |
| FA | 250 |
| FC | 252 |
| FE | 254 |
Lire les données du capteur SRF08
Voici le code qui permet de lire les données du capteur et de les envoyer en continu sur le port série !
oI2C Srf08 = New oI2C; //Objet Srf08
oByte Ver = New oByte;
oSerialPort portSerie = New oSerialPort;
Sub Void Main(Void)
{
portSerie.Mode = 0;
portSerie.Baud = cv9600;
portSerie.Operate = cvTrue;
Srf08.Node = 224/2; //On utilise l'adresse précédement définie
//le fonctionnement du Srf08 impose la division par deux
Srf08.Mode = cv10Bit;
Srf08.NoInc = 1;
Do{
Srf08.Location = 0; //On se place sur la position 0
Srf08.Width = cv8Bit;
Srf08 = 81;
portSerie.String = "START";
Do {
Ver = Srf08;
} While (Ver == 255);
Srf08.Location = 1; // On lit le capteur de lumiere
portSerie.String = Str$(Srf08)+";";
Srf08.Width = cv16Bit;
Srf08.Location = 2 ; //On lit la premiere distance
portSerie.String = Str$(Srf08)+";";
Srf08.Location = 4; //On lit la seconde distance
portSerie.String = Str$(Srf08)+";";
Srf08.Location = 6; //On lit la troisieme distance
portSerie.String = Str$(Srf08)+";";
Srf08.Location = 8; //On lit la quatrieme distance et on peut en lire d'autre
//si on le souhaite
portSerie.String = Str$(Srf08)+";";
portSerie.String = "END";
}
}
Et voila pour un programme plus avancé avec la OOPIC. Maintenant vous pouvez suivre la même démarche pour ajouter un capteur en changeant l'adresse spécifiée.
Bon OOPIC !
Code source
Télécharger
{jos_ri
OPIC}