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.
Un convertisseur analogique-numérique (ADC, Analog-to-Digital Converter) est un appareil qui peut lire une valeur de tension d’entrée analogique et la convertir en une valeur numérique. Les ADC sont utilisés pour lire des valeurs auprès de thermistors, de potentiomètres et d’autres appareils dont la résistance change en fonction de certaines conditions.
Dans cette rubrique, vous allez utiliser .NET pour lire les valeurs d’un ADC quand vous modulez la tension d’entrée avec un potentiomètre.
Notes
Ce tutoriel est écrit en supposant que l’appareil cible est Raspberry Pi. Toutefois, ce tutoriel peut être utilisé pour n’importe quel SBC Linux qui prend en charge .NET, comme Orange Pi, ODROID, etc.
Vérifiez que votre SBC est configuré pour prendre en charge les services suivants :
Pour de nombreux appareils, aucune configuration supplémentaire n’est requise. Pour Raspberry Pi, utilisez la commande raspi-config
. Pour plus d’informations sur raspi-config
, reportez-vous à la documentation sur Raspberry Pi.
Utilisez les composants matériels pour générer le circuit, comme illustré dans le diagramme suivant :
Le MCP3008 utilise SPI (Serial Peripheral Interface) pour communiquer. Voici les connexions du MCP3008 au Raspberry Pi et au potentiomètre :
Fournissez du courant à 3,3V et mettez à la terrer les broches externes sur le potentiomètre. L’ordre n’a pas d’importance.
Si nécessaire, reportez-vous aux diagrammes de brochage suivant :
MCP3008 | Raspberry Pi GPIO |
---|---|
Image avec la permission de Raspberry Pi Foundation. |
Conseil
Un circuit imprimé GPIO conjointement avec un tableau de navigation est recommandé pour simplifier les connexions à la tête du GPIO.
Effectuez les étapes suivantes dans votre environnement de développement préféré :
Créez une application console .NET à l’aide de l’interface CLI .NET ou de Visual Studio. Nommez-le AdcTutorial.
dotnet new console -o AdcTutorial
cd AdcTutorial
Ajoutez le package Iot.Device.Bindings au projet. Utilisez l’interface CLI .NET du répertoire du projet ou Visual Studio.
dotnet add package Iot.Device.Bindings --version 2.2.0-*
Remplacez le contenu du fichier Program.cs par le code suivant :
using System;
using System.Device.Spi;
using System.Threading;
using Iot.Device.Adc;
var hardwareSpiSettings = new SpiConnectionSettings(0, 0);
using SpiDevice spi = SpiDevice.Create(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 :
hardwareSpiSettings
est défini sur une nouvelle instance de SpiConnectionSettings
. Le constructeur définit le paramètre busId
sur 0 et le paramètre chipSelectLine
sur 0.SpiDevice
en appelant SpiDevice.Create
et en transférant à hardwareSpiSettings
. Ce SpiDevice
représente le bus SPI. La déclaration using
garantit que l’objet est supprimé et que les ressources matérielles sont correctement libérées.using
crée une instance de Mcp3008
et passe le SpiDevice
dans le constructeur.while
s’exécute indéfiniment. Chaque itération :mcp.Read(0)
.Générez l'application. Si vous utilisez l’interface CLI .NET, exécutez dotnet build
. Pour générer dans Visual Studio, appuyez sur Ctrl+Maj+B.
Déployez l’application sur le SBC en tant qu’application autonome. Pour obtenir des instructions, consultez Déployer des applications .NET sur Raspberry Pi. Veillez à accorder à l’exécutable l’autorisation exécuter à l’aide de chmod +x
.
Exécutez l’application sur le Raspberry Pi en basculant vers le répertoire de déploiement et en exécutant l’exécutable.
./AdcTutorial
Observez la sortie quand vous faites pivoter le bouton du potentiomètre. Ceci est dû au potentiomètre qui fait varier la tension fournie à CH0 sur l’ADC. L’ADC compare la tension d’entrée sur CH0 à la tension de référence fournie à VREF pour générer une valeur.
Terminez le programme en appuyant sur Ctrl+C.
Félicitations ! Vous avez utilisé SPI pour lire des valeurs auprès d’un convertisseur analogique-numérique.
La source 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.