Sommaire
- LE MATERIEL
- Devantech SRF08 UltraSonic Ranger
- Les cartes Netduino
- Les cartes FEZ
- LE LOGICIEL
- LIENS
1. LE MATERIEL
1.1 Devantech SRF08 UltraSonic Ranger
- Présentation
-
Diagramme de rayonnement
- Alimentation : 5V (15mA Typ. 3mA Standby).
- Possibilités : Il est possible d'adresser jusqu'à 16 modules différents par le bus I2C™.
- Dimensions : 43mm w x 20mm d x 17mm h
- Documentation : Devantech SRF08 UltraSonic Ranger
- Distributeur : Lextronic
Ce module est conçu pour les applications de télémétrie pour robotique ludique. Il est capable de déterminer la distance qui le sépare d'un obstacle se présentant devant lui (entre 3 cm et 6 m). Doté de 2 cellules à ultrasons, son principe de fonctionnement repose sur celui des "sonars". Il s'interface à l'aide de son bus I²C™ et se pilote à la manière d'une mémoire EEPROM type 24xx . Il peut retourner la valeur de la distance en " cm", en "inch" ou sous la forme d'une durée (en µs) liée à l’écho de l'émetteur à ultrasons.
1.2 Les cartes Netduino
Secret Labs
- Microcontrôleur : STM32F405RG 32 bits à architecture Cortex-M4 cadencé à 168 MHz.
- RAM : 164KB+.
- Flash : 1408KB.
- Port Ethernet : 10/100Mbps (Wifi:802.11b/g/n)*.
- E/S numériques : 22
- Entrées analogiques : 6
- Stockage: carte µSD
- IDE : Microsoft Visual Studio
- Framework : .NETMF 4.3
- Langages de programmation : C#, VB
- Compatibilité : shield Arduino, Gadgeteer
Netduino 3 Ethernet | Netduino 3 wifi* |
- Sites à consulter : Netduino
- Distributeurs : Mouser Electronics
1.3 Les cartes FEZ
GHI Electonics (Extrait)
- Microcontrôleur : 180 MHz 32-bit ARM Cortex-M4.(120 MHz 32-bit ARM Cortex-M3 )*
- SoC(SoM)* : G80 G120*
- RAM : 156 KB(2.87 MB)*.
- Flash : 256 KB (13.67 MB)*.
- E/S numériques : 53(60)*
- Entrées analogiques : 16(8)*
- Réseaux : Ethernet TCP/IP, WiFi, and SSL.
- Stockage: carte µSD
- IDE : Microsoft Visual Studio
- Framework : .NETMF 4.3
- Langages de programmation : C#, VB
PANDA III | COBRA III* (compatible Gadgeteer) |
- Sites à consulter : GHI ELECTRONICS
- Distributeurs : Mouser Electronics
- Schémas : Panda III, Cobra III
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:
- Du projet SRF08 : le code source de la classe SRF08.
- Du projet Netduino : un exemple d'utilisation de cette classe avec une carte Netduino.
- Du projet FezPanda : un exemple d'utilisation de cette classe avec une carte Fez Panda III.
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
-
Un wiki est dédié au
microframework .Net v4.3. Il propose au téléchargement :
- Des exemples de code pour les cartes Netduino, GHI FEZ (Panda 3, BrainPad, etc.) . [lien]
2.4 Description et utilisation de la classe SRF08
- Rôle: Contrôler un télémètre à ultrasons SRF08 via un bus I²C.
- Assembly: MicroToolsKit (disponible sur nuget.org)
- Espace de noms: Microtoolskit.Hardware.Sensors
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 :
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 inchescentimeters_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 inchescentimeters_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). |