Entrainement
Parcours d’apprentissage
Ingénieur IA de périphérie - Training
Ce parcours d’apprentissage explique comment déployer l’IA à la périphérie à l’aide des services Azure.
Ce navigateur n’est plus pris en charge.
Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.
Les bibliothèques IoT .NET sont couramment utilisées pour développer du code pour Raspberry Pi et d’autres appareils IoT. Toutefois, vous pouvez également les utiliser pour développer du code pour des PC Windows, Linux et macOS à l’aide d’un adaptateur USB vers série tel que FTDI FT232H. Cet article explique comment utiliser les bibliothèques IoT .NET pour communiquer avec des appareils connectés à l’adaptateur FT232H.
Conseil
Cet article utilise un adaptateur FTDI FT232H, mais vous pouvez utiliser n’importe quel adaptateur USB vers série pris en charge par les bibliothèques IoT .NET (par exemple, FT2232H, FT4232H ou FT4222). Pour plus d’informations, consultez la liste des liaisons d’appareils prises en charge.
Vérifiez que vous avez installé les pilotes D2XX, disponibles sur le site web de FTDI, pour votre adaptateur USB vers série.
Notes
Les appareils Windows peuvent installer automatiquement les pilotes lorsque vous connectez l’adaptateur. Recherchez dans le Gestionnaire de périphériques un appareil nommé Convertisseur USB série répertorié sous Contrôleurs USB. Le fournisseur du pilote de l’appareil doit être FTDI.
Avant de pouvoir créer un appareil GPIO, I2C ou SPI, vous devez identifier l’adaptateur USB vers série connecté. Le code suivant répertorie les appareils FTDI connectés :
using Iot.Device.FtCommon;
var devices = FtCommon.GetDevices();
Console.WriteLine($"{devices.Count} available device(s)");
foreach (var device in devices)
{
Console.WriteLine($" {device.Description}");
Console.WriteLine($" Flags: {device.Flags}");
Console.WriteLine($" Id: {device.Id}");
Console.WriteLine($" LocId: {device.LocId}");
Console.WriteLine($" Serial number: {device.SerialNumber}");
Console.WriteLine($" Type: {device.Type}");
}
if (devices.Count == 0)
{
Console.WriteLine("No device connected");
return;
}
Dans le code précédent, la méthode FtCommon.GetDevices()
retourne une liste de tous les appareils FTDI connectés.
Voici une implémentation matérielle du tutoriel Faire clignoter une LED qui utilise l’adaptateur FTDI FT232H pour contrôler une LED :
Dans l’image précédente, le circuit LED est très similaire à celui du tutoriel d’origine. La seule différence est que la LED est connectée à la broche D7 de l’adaptateur FT232H au lieu de la broche 18 du Raspberry Pi.
Le code du tutoriel est également similaire à celui du tutoriel d’origine :
using System.Device.Gpio;
using Iot.Device.Ft232H;
using Iot.Device.FtCommon;
Console.WriteLine("Blinking LED. Press Ctrl+C to end.");
Ft232HDevice ft232h = new Ft232HDevice(FtCommon.GetDevices()[0]);
GpioController controller = ft232h.CreateGpioController();
int pin = Ft232HDevice.GetPinNumberFromString("D7");
controller.OpenPin(pin, PinMode.Output);
bool ledOn = true;
while (true)
{
controller.Write(pin, ledOn ? PinValue.High : PinValue.Low);
Thread.Sleep(1000);
ledOn = !ledOn;
}
Dans le code précédent :
Ft232HDevice
est créée en passant le premier ID d’appareil retourné par FtCommon.GetDevices()
au constructeur.GpioController
nommée controller est créée en appelant CreateGpioController()
sur l’instance Ft232HDevice
. Cette instance GpioController
remplit les mêmes fonctions que l’instance GpioController
du tutoriel d’origine.GetPinNumberFromString()
sur l’instance Ft232HDevice
et en passant le nom alphanumérique de la broche D7.Pour la communication I2C, les broches D0 et D1 sur l’adaptateur FT232H sont utilisées respectivement pour les lignes SDL et SCA. Le sélecteur I2C de l’adaptateur FT232H doit être réglé sur On.
Voici une implémentation matérielle du tutoriel Lire les conditions environnementales d’un capteur qui utilise l’adaptateur FTDI FT232H pour lire la température, l’humidité et la pression barométrique à partir d’un capteur BME280 :
Dans l’image précédente :
using System.Device.I2c;
using Iot.Device.Bmxx80;
using Iot.Device.Bmxx80.PowerMode;
using Iot.Device.Ft232H;
using Iot.Device.FtCommon;
Ft232HDevice ft232h = new Ft232HDevice(FtCommon.GetDevices()[0]);
I2cConnectionSettings i2cSettings = new I2cConnectionSettings(0, Bme280.SecondaryI2cAddress);
using I2cDevice i2cDevice = ft232h.CreateI2cDevice(i2cSettings);
using Bme280 bme280 = new Bme280(i2cDevice);
int measurementTime = bme280.GetMeasurementDuration();
while (true)
{
Console.Clear();
bme280.SetPowerMode(Bmx280PowerMode.Forced);
Thread.Sleep(measurementTime);
bme280.TryReadTemperature(out var tempValue);
bme280.TryReadPressure(out var preValue);
bme280.TryReadHumidity(out var humValue);
bme280.TryReadAltitude(out var altValue);
Console.WriteLine($"Temperature: {tempValue.DegreesCelsius:0.#}\u00B0C");
Console.WriteLine($"Pressure: {preValue.Hectopascals:#.##} hPa");
Console.WriteLine($"Relative humidity: {humValue.Percent:#.##}%");
Console.WriteLine($"Estimated altitude: {altValue.Meters:#} m");
Thread.Sleep(1000);
}
Dans le code précédent :
Ft232HDevice
est créée en passant le premier ID d’appareil retourné par FtCommon.GetDevices()
au constructeur.I2cDevice
est créée en appelant CreateI2cDevice()
sur l’instance Ft232HDevice
. Cette instance I2cDevice
remplit les mêmes fonctions que l’instance I2cDevice
du tutoriel d’origine.Pour la communication SPI, les broches D0, D1, D2 et D3 de l’adaptateur FT232H sont utilisées respectivement pour les lignes SCK, MOSI, MISO et CS. Le sélecteur I2C de l’adaptateur FT232H doit être réglé sur Off.
Voici une implémentation matérielle du tutoriel Lire les valeurs d’un convertisseur analogique-numérique qui utilise l’adaptateur FTDI FT232H pour lire les valeurs à partir d’un ADC MCP3008 :
Dans l’image précédente :
using System.Device.Gpio;
using System.Device.Spi;
using Iot.Device.Adc;
using Iot.Device.Ft232H;
using Iot.Device.FtCommon;
var devices = FtCommon.GetDevices();
var ft232h = new Ft232HDevice(devices[0]);
var hardwareSpiSettings = new SpiConnectionSettings(0, 3) { ClockFrequency = 1_000_000, DataBitLength = 8, ChipSelectLineActiveState = PinValue.Low };
using SpiDevice spi = ft232h.CreateSpiDevice(hardwareSpiSettings);
using var mcp = new Mcp3008(spi);
while (true)
{
Console.Clear();
double value = mcp.Read(0);
Console.WriteLine($"{value}");
Console.WriteLine($"{Math.Round(value/10.23, 1)}%");
Thread.Sleep(500);
}
Dans le code précédent :
Ft232HDevice
est créée en passant le premier ID d’appareil retourné par FtCommon.GetDevices()
au constructeur.SpiDevice
est créée en appelant CreateSpiDevice()
sur l’instance Ft232HDevice
. Cette instance SpiDevice
remplit les mêmes fonctions que l’instance SpiDevice
du tutoriel d’origine.Le code de ce tutoriel est disponible sur GitHub.
Commentaires sur .NET
.NET est un projet open source. Sélectionnez un lien pour fournir des commentaires :
Entrainement
Parcours d’apprentissage
Ingénieur IA de périphérie - Training
Ce parcours d’apprentissage explique comment déployer l’IA à la périphérie à l’aide des services Azure.