Školení
Postup výuky
Inženýr umělé inteligence a hraničních zařízení - Training
Cílem tohoto studijního programu je vysvětlit, jak nasadit AI na hraničních zařízeních pomocí služeb Azure.
Tento prohlížeč se už nepodporuje.
Upgradujte na Microsoft Edge, abyste mohli využívat nejnovější funkce, aktualizace zabezpečení a technickou podporu.
Knihovny .NET IoT se běžně používají k vývoji kódu pro Raspberry Pi a další zařízení IoT. Můžete je ale použít také k vývoji kódu pro počítače s Windows, Linuxem a macOS pomocí adaptéru USB na sériový, jako je FTDI FT232H. V tomto článku se dozvíte, jak pomocí knihoven IoT .NET komunikovat se zařízeními připojenými k adaptéru FT232H.
Tip
Tento článek používá adaptér FTDI FT232H, ale můžete použít libovolný adaptér USB-to-serial, který podporuje knihovny .NET IoT, jako jsou FT2232H, FT4232H a FT4222. Další informace najdete v seznamu podporovaných vazeb zařízení.
Ujistěte se, že jste nainstalovali ovladače D2XX pro váš adaptér USB-to-serial, který najdete na webu FTDI.
Poznámka
Zařízení s Windows můžou ovladače automaticky instalovat, když adaptér připojíte. Zkontrolujte, Správce zařízení zařízení s názvem USB Serial Converter uvedené v části Řadiče univerzální sériové sběrnice. Poskytovatel ovladače zařízení by měl být FTDI.
Než budete moct vytvořit zařízení GPIO, I2C nebo SPI, musíte identifikovat připojený adaptér USB-to-serial. Následující kód uvádí připojená zařízení FTDI:
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;
}
V předchozím kódu FtCommon.GetDevices()
vrátí metoda seznam všech připojených zařízení FTDI.
Zde je hardwarová implementace Blink an LED tutoriál, který používá FTDI FT232H adaptér k ovládání LED:
Na předchozím obrázku je led obvod velmi podobný původnímu kurzu. Jediným rozdílem je, že LED dioda je připojena ke kolíku D7 na adaptéru FT232H místo pinu 18 na Raspberry Pi.
Kód pro kurz je také podobný původnímu kurzu:
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;
}
V předchozím kódu:
Ft232HDevice
se vytvoří předáním prvního ID zařízení vráceného FtCommon.GetDevices()
konstruktorem.GpioController
kontroleru je vytvořena voláním CreateGpioController()
instance Ft232HDevice
. Tato GpioController
instance provádí stejné funkce jako GpioController
instance v původním kurzu.GetPinNumberFromString()
instance Ft232HDevice
a předáním alfanumerického pin kódu s názvem D7.Pro komunikaci I2C se pro linky SDL a SCA používají kolíky D0 a D1 na adaptéru FT232H. Přepínač selektoru I2C na adaptéru FT232H musí být nastavený na Zapnuto.
Tady je hardwarová implementace podmínek čtení prostředí ze senzoru kurzu, který používá adaptér FTDI FT232H ke čtení teploty, vlhkosti a barometrického tlaku ze senzoru BME280:
Na předchozím obrázku:
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);
}
V předchozím kódu:
Ft232HDevice
se vytvoří předáním prvního ID zařízení vráceného FtCommon.GetDevices()
konstruktorem.I2cDevice
je vytvořena voláním CreateI2cDevice()
instance Ft232HDevice
. Tato I2cDevice
instance provádí stejné funkce jako I2cDevice
instance v původním kurzu.Pro komunikaci SPI se pro linky SCK, MOSI, MISO a CS používají kolíky D0, D1, D2 a D3 na adaptéru FT232H. Přepínač selektoru I2C na adaptéru FT232H musí být nastaven na Vypnuto.
Tady je hardwarová implementace hodnot čtení z kurzu analog-to-digital converter , který používá adaptér FTDI FT232H ke čtení hodnot z MCP3008 ADC:
Na předchozím obrázku:
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);
}
V předchozím kódu:
Ft232HDevice
se vytvoří předáním prvního ID zařízení vráceného FtCommon.GetDevices()
konstruktorem.SpiDevice
je vytvořena voláním CreateSpiDevice()
instance Ft232HDevice
. Tato SpiDevice
instance provádí stejné funkce jako SpiDevice
instance v původním kurzu.Kód pro tento kurz je k dispozici na GitHubu.
Zpětná vazba k produktu .NET
.NET je open source projekt. Vyberte odkaz pro poskytnutí zpětné vazby:
Školení
Postup výuky
Inženýr umělé inteligence a hraničních zařízení - Training
Cílem tohoto studijního programu je vysvětlit, jak nasadit AI na hraničních zařízeních pomocí služeb Azure.