Controlando um Servo por PWM usando Orange PI One e Python
Esse artigo foge um pouco do micropython, mas achei interessante fazer um tutorial do GPIO do Orange PI One. Antes de começar o tutorial preciso falar um pouco sobre o Orange PI que é uma alternativa ao famoso Raspberry PI. Existem varias versões do Orange PI e não vou falar sobre todas aqui falarei apenas da versão One. O Orange PI One Possui um processador Allwinner H3 e possui versões de 512MB e 1GB de RAM, possui uma conexão Ethernet, uma usb, uma micro usb que funciona apenas para OTG. O armazenamento é feito através de um micro SD. Agora veja uma imagem do Orange PI.
Para controlar o Servo iremos utilizar três pinos (VCC-5V, GND e PWM1) Pinos 02, 09 e 07 respectivamente. O Orange PI One possui uma seta para ajudar a identificar o pino 1.
depois de atualizar o sistema vamos instalar as dependências necessárias digite o comando: sudo apt install python3-pip python3-dev python3-setuptools python3-wheel -y
Agora vamos instalar o modulo do python responsável por controlar o GPIO do Orange PI digite o comando: sudo pip3 install OrangePi.GPIO
O modulo OrangePi.GPIO é baseado no RPI.GPIO e por isso é possível adaptar tutorias do Raspberry PI para o Orange PI. Depois de ter instalado o OPi.GPIO vamos instalar uma IDE que vai nos ajudar a criar e editar nosso código. Eu estou utilizando o Thonny, mas você pode usar qualquer um.
Agora vamos começar nosso código. Primeiro precisamos importar o modulo OPi.GPIO.
Como você deve ter visto na imagem definimos nossa placa como GPIO.ZERO isso acontece, pois em nossos testes se eu colocasse GPIO.ONE o python retorna um erro. O GPIO.ZERO funcionou perfeitamente. No setmode coloquei GPIO.BOARD, mas existem outras opções por exemplo GPIO.SOC. Eu utilizei o GPIO.BOARD, pois foi o único que tentei e funcionou perfeitamente. A diferença entre o GPIO.BOARD e o GPIO.SOC é a nomenclatura dos pinos. Já no setup coloquei o pino 7 como pino de saída por isso GPIO.OUT. Agora vamos definir nosso pino 7 como pino de PWM.Nessa parte do código eu defino o pino 7 como PWM e defino a frequência para 50Hz. Agora precisamos criar um loop para receber um input e para definir a posição do micro servo.
Iniciei o loop usando while True: então enquanto for verdadeiro ele vai executar o código. Criei uma variável para armazenar o input do usuário. O valor do input dever ser entre 2 e 12. Depois eu mudo a posição do eixo do servo usando o servo.ChangeDutyCycle() dentro do parênteses eu coloco o nome da minha variável. O micro servo utilizado foi um SG90. Depois de terminar o código é só salvar e executar o código com o python como root. O código final deverá ficar assim.
Vídeo de teste:
referencias:
https://github.com/Jeremie-C/OrangePi.GPIO
https://github.com/Jeremie-C/OrangePi.GPIO/commit/1ee758716799c57ec6179ab93d0bbfa8f25ac18d





Comentários
Postar um comentário