Treinamento
Roteiro de aprendizagem
Engenheiro de borda de IA - Training
Este roteiro de aprendizagem tem o objetivo de explicar aos aprendizes como implantar a IA na borda usando os serviços do Azure.
Não há mais suporte para esse navegador.
Atualize o Microsoft Edge para aproveitar os recursos, o suporte técnico e as atualizações de segurança mais recentes.
Um ADC (conversor analógico-digital) é um dispositivo que pode ler um valor de tensão de entrada analógica e convertê-lo em um valor digital. Os ADCs são usados para ler valores de termistores, potenciômetros e outros dispositivos que alteram a resistência com base em determinadas condições.
Neste tópico, você usará o .NET para ler valores de um ADC enquanto modula a tensão de entrada com um potenciômetro.
Observação
Este tutorial foi escrito supondo que o dispositivo de destino seja o Raspberry Pi. No entanto, este tutorial pode ser usado para qualquer SBC baseado em Linux com suporte para .NET, como Orange Pi, ODROID e muito mais.
Verifique se o SBC está configurado para dar suporte aos seguintes serviços:
Para muitos dispositivos, nenhuma configuração adicional é necessária. Para Raspberry Pi, use o comando raspi-config
. Para obter mais informações sobre raspi-config
, consulte a Documentação do Raspberry Pi.
Use os componentes de hardware para criar o circuito, conforme ilustrado no seguinte diagrama:
O MCP3008 usa SPI (Serial Peripheral Interface) para se comunicar. Veja a seguir as conexões do MCP3008 com o Raspberry Pi e o potenciômetro:
Forneça 3.3 V e aterre os pinos externos do potenciômetro. A ordem não é importante.
Confira os seguintes diagramas de pinagem conforme necessário:
MCP3008 | GPIO do Raspberry Pi |
---|---|
Imagem cortesia da Raspberry Pi Foundation. |
Dica
Recomenda-se uma placa de fuga GPIO com uma placa de ensaio para simplificar as conexões com o cabeçalho GPIO.
Siga estas etapas em seu ambiente de desenvolvimento preferencial:
Crie um aplicativo de console .NET usando a CLI do .NET ou o Visual Studio. Defina o nome como AdcTutorial.
dotnet new console -o AdcTutorial
cd AdcTutorial
Adicione o pacote Iot.Device.Bindings ao projeto. Use a CLI do .NET no diretório do projeto ou no Visual Studio.
dotnet add package Iot.Device.Bindings --version 2.2.0-*
Substitua o conteúdo do Program.cs pelo seguinte código:
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);
}
No código anterior:
hardwareSpiSettings
é definido como uma nova instância de SpiConnectionSettings
. O construtor define os parâmetros busId
e chipSelectLine
como 0.SpiDevice
chamando SpiDevice.Create
e transmitindo hardwareSpiSettings
. Esse SpiDevice
representa o barramento SPI. A declaração using
garante que o objeto seja descartado e os recursos de hardware sejam liberados corretamente.using
cria uma instância de Mcp3008
e transmite SpiDevice
para o construtor.while
é executado indefinidamente. Cada iteração:mcp.Read(0)
.Crie o aplicativo. Ao usar a CLI do .NET, execute dotnet build
. Para criar no Visual Studio, pressione Ctrl+Shift+B.
Implante o aplicativo no SBC como um aplicativo autônomo. Para obter instruções, confira Implantar aplicativos .NET no Raspberry Pi . Dê a permissão de execução ao executável usando chmod +x
.
Execute o aplicativo no Raspberry Pi alternando para o diretório de implantação e executando o executável.
./AdcTutorial
Observe a saída conforme você gira o controle circular do potenciômetro. Isso se deve ao potenciômetro variar a tensão fornecida a CH0 no ADC. O ADC compara a tensão de entrada em CH0 com a tensão de referência fornecida a VREF para gerar um valor.
Encerre o programa pressionando Ctrl+C.
Parabéns! Você usou SPI para ler valores de um conversor analógico-digital.
A fonte deste tutorial está disponível no GitHub.
Comentários do .NET
O .NET é um projeto código aberto. Selecione um link para fornecer comentários:
Treinamento
Roteiro de aprendizagem
Engenheiro de borda de IA - Training
Este roteiro de aprendizagem tem o objetivo de explicar aos aprendizes como implantar a IA na borda usando os serviços do Azure.