top of page
Foto do escritorAmanda Nascimento

Utilizar biblioteca firmata (python) no arduíno

Com a IDE do arduíno instalada e python instalado na máquina, na IDE clique em Ferramentas, Gerenciar bibliotecas... e clique em instalar.

Digite firmata e instale.



Após a instalação da biblioteca firmata, clique em Arquivos, Exemplos e irá aparecer Firmata e algumas opções, selecione StandartFirmata


Automaticamente irá abrir uma nova IDE com o código fonte, selecione a porta USB que esta conectado o arduíno, selecione na lista o modelo do arduíno e clique na setinha --> para carregar.



Agora precisamos instalar o módulo pyFirmata, a instalação poderá ser pelo cmd ou outra IDE (utilizei o vscode), só não escolha a IDE do arduíno pois lá não é possível instalar.


  • Pressione Win + R, digite cmd e pressione Enter.

  • Isso abrirá o Prompt de Comando

  • Digite no terminal: pip install pyFirmata



Como estou utilizando python 3.12 e já estamos em 3.13 o pyfirmata pelo menos ate a data deste post, apresentou alguns probleminhas com as versões mais novas, por este motivo o próprio chat gpt me orientou e deu super certo asubstituir uma linha de código deste módulo no arquivo original:


No meu caso, o caminho do arquivo:


C:\Users\amand\AppData\Local\Programs\Python\Python312\Lib\site-packages\pyfirmata\pyfirmata.py


Na linha: inspect.getargspec(func)[0]

substituí por: len_args = len(inspect.getfullargspec(func).args)

Executei o programa abaixo, e deu super certo! :D


Circuito para ligar o led


O led lado positivo14e conectando com o arduíno 13. Resistor 220: Vermelho, Vermelho, Preto, Preto e marrom.

Script utilizando qualquer IDE (no meu caso, utilizei o vs code)


from pyfirmata import Arduino, util

# Substitua 'COM5' pela porta USB onde seu ArduÍno está conectado
porta = 'COM5'

# Conecta ao Arduino
arduino = Arduino(porta)

# Define a porta digital 13 como saída
arduino.digital[13].mode = 1  # 1 = OUTPUT

print("Começando a piscar o LED na porta 13...")

try:
    while True:
        # Liga o LED                                                                                                             
        arduino.digital[13].write(1)
        arduino.pass_time(0.5)  # Aguarda 0,5 segundos
        
        # Desliga o LED
        arduino.digital[13].write(0)
        arduino.pass_time(0.5)  # Aguarda 0,5 segundos
except KeyboardInterrupt:
    print("Interrompido pelo usuário.")
    arduino.exit()

bottom of page