Formação
Percurso de aprendizagem
Engenharia de edge e IA - Training
Este caminho de aprendizagem tem como objetivo explicar aos alunos como implantar a IA na borda usando os serviços do Azure.
Este browser já não é suportado.
Atualize para o Microsoft Edge para tirar partido das mais recentes funcionalidades, atualizações de segurança e de suporte técnico.
Um conversor analógico para digital (ADC) é um dispositivo que consegue ler um valor de tensão de entrada analógico e convertê-lo num valor digital. Os ADCs são utilizados para ler valores de termómetros, potentiometers e outros dispositivos que alteram a resistência com base em determinadas condições.
Neste tópico, irá utilizar o .NET para ler valores de um ADC à medida que modula a tensão de entrada com um potentiometer.
Nota
Este tutorial é escrito partindo do princípio de que o dispositivo de destino é Raspberry Pi. No entanto, este tutorial pode ser utilizado para qualquer SBC baseado em Linux que suporte .NET, como Orange Pi, ODROID e muito mais.
Certifique-se de que o SBC está configurado para suportar os seguintes serviços:
Para muitos dispositivos, não é necessária qualquer configuração adicional. Para Raspberry Pi, utilize o raspi-config
comando . Para obter mais informações sobre raspi-config
, consulte a documentação do Raspberry Pi.
Utilize os componentes de hardware para criar o circuito, conforme descrito no diagrama seguinte:
O MCP3008 utiliza a Interface de Periférico de Série (SPI) para comunicar. Seguem-se as ligações do MCP3008 ao Raspberry Pi e ao potentiometer:
Forneça 3,3 V e desça aos pinos exteriores do potentiometer. A encomenda não é importante.
Veja os seguintes diagramas de pinout, conforme necessário:
MCP3008 | Raspberry Pi GPIO |
---|---|
![]() |
![]() Imagem cortesia Raspberry Pi Foundation. |
Gorjeta
Recomenda-se uma placa simultânea GPIO em conjunto com uma placa de pão para simplificar as ligações ao cabeçalho GPIO.
Conclua os seguintes passos no seu ambiente de desenvolvimento preferencial:
Crie uma nova Aplicação de Consola .NET com a CLI do .NET ou o Visual Studio. Dê-lhe o nome AdcTutorial.
dotnet new console -o AdcTutorial
cd AdcTutorial
Adicione o pacote Iot.Device.Bindings ao projeto. Utilize a CLI de .NET a partir do diretório do projeto ou do Visual Studio.
dotnet add package Iot.Device.Bindings --version 2.2.0-*
Substitua o conteúdo do ficheiro 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
está definido para uma nova instância de SpiConnectionSettings
. O construtor define o busId
parâmetro como 0 e o chipSelectLine
parâmetro como 0.SpiDevice
ao chamar SpiDevice.Create
e transmitir hardwareSpiSettings
. Isto SpiDevice
representa o barramento SPI. A using
declaração garante que o objeto é eliminado e que os recursos de hardware são libertados corretamente.using
declaração cria uma instância de Mcp3008
e transmite-a SpiDevice
para o construtor.while
ciclo é executado indefinidamente. Cada iteração:mcp.Read(0)
.Crie a aplicação. Se estiver a utilizar a CLI de .NET, execute dotnet build
. Para criar no Visual Studio, prima Ctrl+Shift+B.
Implemente a aplicação no SBC como uma aplicação autónoma. Para obter instruções, veja Implementar aplicações .NET no Raspberry Pi. Confirme que concede permissão de execução executável com chmod +x
.
Execute a aplicação no Raspberry Pi ao mudar para o diretório de implementação e executar o executável.
./AdcTutorial
Observe a saída à medida que roda o dial de potentiómetro. Isto deve-se ao potentiómetro que varia a tensão fornecida ao CH0 no ADC. O ADC compara a tensão de entrada no CH0 com a tensão de referência fornecida ao VREF para gerar um valor.
Termine o programa premindo Ctrl+C.
Parabéns! Utilizou o SPI para ler valores de um conversor analógico para digital.
A origem 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:
Formação
Percurso de aprendizagem
Engenharia de edge e IA - Training
Este caminho de aprendizagem tem como objetivo explicar aos alunos como implantar a IA na borda usando os serviços do Azure.