Humano: Nossos Scripts em Python
Nossa interface HID possui um botão do tipo on-off que tem a mesma função do botão esquerdo do mouse. Navegando no Google Street, quando mantemos pressionado esse botão, podemos girar as imagens com o mouse para os lados, ou para cima e para baixo.
Para conhecer o status de um botão on-off com Python no pino digital D0 do Arduino ProMicro, precisamos, antes, carregar um sketch (como é chamado um script no Arduino) que tenha acesso direto ao pino 20 do microcontrolador Atmega32U4, onde está o hardware da porta digital desse pino D0.
Tudo o que temos que fazer é conectar no Arduino ProMicro uma chave tipo push-button entre os seus pinos 2 (D0) e 3 (GND), depois nele carregar e executar o sketch abaixo; que deverá ler o estado do pino digital D0 e enviar para a porta serial (USB) um bit ‘1’ se o botão estiver pressionado (fechado), ou enviar um bit ‘0’ se o botão estiver solto (aberto).
# sketch para ler o pino digital D0
# by JAS – maio 2023
const int buttonPin = 0;
void setup() {
pinMode(buttonPin, INPUT_PULLUP);
Serial.begin(9600);
}
void loop() {
int buttonState = digitalRead(buttonPin);
if (buttonState == LOW) {
Serial.write(‘1’);
} else {
Serial.write(‘0’);
}
delay(100);
}
Nesse sketch, o pinodigital 0 é chamado de buttonPin. Dentro da função setup(), esse pino é configurado como entrada e com um resistor de pull-up para forçar seu estado lógico de saída para alto; a porta serial é setada para 9600 bps.
Já na função loop(), o estado de buttonPin é lido e, se seu estado lógico for baixo (botão pressionado), um bit ‘1’ é enviado para a porta serial; senão (botão solto) um bit ‘0’ é enviado. Esse ciclo é repetido a cada 100 milissegundos. Podemos ver isso acontecer clicando no ícone no topo à direita ‘Serial Monitor’ do IDE do Arduino.