View on GitHub

Télémètre à ultrasons SRF08 (I²C)

Description de la classe SRF08 développée en C# sous .NETMF 4.3 pour les cartes Netduino et FEZ (PANDA, COBRA...)

Download this project as a .zip file Download this project as a tar.gz file

Sommaire

  1. LE MATERIEL
    1. Devantech SRF08 UltraSonic Ranger
    2. Les cartes Netduino
    3. Les cartes FEZ
  2. LE LOGICIEL
    1. Contenu du répertoire proposé au téléchargement
    2. Le NuGet MicroToolsKit
    3. Le wiki .NetMF v4.3
    4. Description et utilisation de la classe SRF08
  3. LIENS
    1. Exemples codés en C# pour les cartes Netduino et Fez (Panda 3, BrainPad)
    2. La page du projet MicroToolsKit

1. LE MATERIEL


1.1 Devantech SRF08 UltraSonic Ranger



1.2 Les cartes Netduino

Secret Labs

Netduino plus 2 Netduino 3 wifi
Netduino 3 Ethernet Netduino 3 wifi*

1.3 Les cartes FEZ

GHI Electonics (Extrait)

PANDA III COBRA III
PANDA III COBRA III* (compatible Gadgeteer)

2. LE LOGICIEL


2.1 Contenu du répertoire proposé au téléchargement


Le répertoire proposé au téléchargement (au format zip ou tar.gz) contient la solution SRF08 composée:


2.2 Le NuGet MicroToolsKit

La dernière version compilée de la classe SRF08 se situe dans la bibliothèque MicroToolsKit disponible sur nuget.org.

Organisation des classes contenues dans MicroToolsKit [lien]

Note : Installer cette bibliothèque dans le projet simplifie l'utilisation de cette classe.


2.3 Le wiki .NetMF v4.3


2.4 Description et utilisation de la classe SRF08


Création d'un projet avec l'IDE Visual Studio

    • Créer un nouveau projet en suivant la démarche décrite dans le chapitre "Premier programme en C# étape par étape" avec une carte Netduino ou avec une carte Fez (Panda 3, BrainPad, etc.). [lien]
    • Utiliser le gestionnaire de paquets NuGet pour ajouter l'assembly MicroToolsKit (disponible sur nuget.org) dans le répertoire Références du projet.(clic droit sur Références puis Gérer les packages NuGet...)
    • Ajouter l'espace de noms Microtoolskit.Hardware.Sensors dans l'en-tête du fichier source.
    • Créer un objet en utilisant un des constructeurs SRF08.
    • Utiliser la méthode ReadRange pour déclencher et lire la distance en une seule opération.

Exemple
using System.Threading;
using Microtoolskit.Hardware.Sensors;

namespace FezPanda
{
    public class Program
    {
        public static void Main()
        {
			SRF08 I2CTelemeter = new SRF08();

			while(true)
			{
				Debug.Print("Distance: " + I2CTelemeter.ReadRange(SRF08.MeasuringUnits.centimeters_InRangingMode) + "cm");
				Thread.Sleep(3000);
			}
		}
	}
}
			

Constructeurs

Syntaxe Description
SRF08()

Instancie un objet "SRF08" avec les paramètres :
Adresse SLA du module = 0x70
Fréquence du bus: 100kHz

Remarque : Bien pratique en cas d'oubli ! A la mise sous tension, le module délivre son adresse sous la forme d'un code lumineux. Voir la documentation.

SRF08( byte SLA) Instancie un objet "SRF08".
SLA est l'adresse I2C sur 7 bits attribuée au module. Elle doit être comprise entre 0x70 et 0x7F
Fréquence du bus: 100kHz.
SRF08( byte SLA, UInt16 Frequency) Instancie un objet "SRF08".
SLA est l'adresse I2C sur 7 bits attribuée au module. Elle doit être comprise entre 0x70 et 0x7F.
Frequency est à définir dans l'intervalle [100kHz,400kHz].

Enumérations

Syntaxe Description
MeasuringUnits

Mode "Ranging"

inches_InRangingMode: résultat de la mesure en inches
centimeters_InRangingMode: résultat de la mesure en centimètres
microseconds_InRangingMode: résultat de la mesure en microsecondes

Mode "ANN"

inches_InANNMode: résultat de la mesure en inches
centimeters_InANNMode: résultat de la mesure en centimètres
microseconds_InANNMode: résultat de la mesure en microsecondes

Propriétés

Syntaxe Description
FirstEchoHighByte Retourne l'octet de poids fort du mot représentatif de la réception du premier écho.
FirstEchoLowByte Retourne l'octet de poids faible du mot représentatif de la réception du premier écho.
LightSensor Retourne un octet représentatif de la luminosité mesurée par la LDR.
Mode Retourne sous la forme d'une chaîne de caractères le mode de fonctionnement du module:
- Ranging
- ANN
VerSoft Retourne le numéro de version du logiciel du module SRF08. Octet non signé.

Méthodes

Syntaxe Description
UInt16 ReadRange( MeasuringUnits units)

Déclenche la mesure de distance et renvoie le résultat sous la forme d'un entier non signé sur 16 bits dans le format demandé.

Remarque: La méthode effectue une mesure en 75ms

units: unité du résultat de la mesure (centimètres, inches, microsecondes).

void TrigShotUS( MeasuringUnits units)

Déclenche la mesure de distance.

Le temps d'attente et la lecture du registre contenant le résultat de la mesure sont à la charge du programmeur.

units: unité du résultat de la mesure (centimètres, inches, microsecondes).