0% acharam este documento útil (0 voto)
36 visualizações19 páginas

Python-com-Arduino - Cleiton Bueno

Enviado por

edutobiaslopes
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
36 visualizações19 páginas

Python-com-Arduino - Cleiton Bueno

Enviado por

edutobiaslopes
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 19

Python com Arduino

Um mundo de possibilidades
Cleiton Bueno
Engenheiro e entusiasta open-source
Sistemas Embarcados | Firmwares | Linux | Linux Embedded | C |
Python | Shell Script | Tuning | Security | Hardening | Profiling

● [Link]
● [Link]
● [Link]
● [Link]

git clone git@[Link]:cleitonbueno/[Link]


Compartilhar — copiar e redistribuir o material em qualquer suporte
ou formato
Adaptar — remixar, transformar, e criar a partir do material para
qualquer fim, mesmo que comercial.

Você deve dar o crédito apropriado, prover um link para a


licença e indicar se mudanças foram feitas.

Se você remixar, transformar, ou criar a partir do material, tem


de distribuir as suas contribuições sob a mesma licença que o
original.

Licença: [Link]

git clone git@[Link]:cleitonbueno/[Link]


Arduino
Projeto de origem italiana, da ideiologia hardware-livre em uma única placa,
com fácil acesso para prototipar ideias e brincadeiras.

Disponibiliza uma IDE completa para programar em C/C++, compilar e gravar na


placa utilizando apenas um cabo USB conectado, para gravação e debug.

Atualmente com mais de 10 modelos no mercado, iremos abordar e comentar


sobre Arduino UNO, onde possui interfaces de IO(Entrada e Saida)
configuraveis, UART(interface serial), I2C, SPI, PWM entre outros modos.

Alimentação de 7V a 12V para não ter problemas e operação interna e IO's a


5V.

git clone git@[Link]:cleitonbueno/[Link]


git clone git@[Link]:cleitonbueno/[Link]
Python
Linguagem criada por Guido Van, interpretada, tipagem forte e dinamica,
orientada a objetos, prioridade da legibilidade do codigo sobre a velocidade.

Torna-se poderosa por suas bibliotecas nativas e modulos de terceiros, grande


uso em soluções Web utilizando Django, Flask, Tornado, Twisted, além de
grande presença em aplicações matematicas usando Numpy, SciPy e Mineração
de Dados e BigData com Scrapy, BeautifulSoap entre outros.

Com poucas linhas e recursos você realiza comunicação serial, server/client


TCP e UDP, MQTT entre outras formas de comunicações.

Aplicações multi-plataforma, com GUI ou CLI.

git clone git@[Link]:cleitonbueno/[Link]


Firmata
Protocolo genérico que permite a comunicação de um equipamento e um
microcontrolador via software.

O firmware estabelece um protocolo de comunicação via software, do


computador para o Arduino.

Na IDE do Arduino, clique em File > Examples > Firmata > StandardFirmata

Em seguida, Sketch > Verify / Compile ou [Ctrl+R] e depois gravar a aplicação


no Arduino File > Upload [Ctrl+U]

git clone git@[Link]:cleitonbueno/[Link]


Pingo
API em Python, para programar diversos devices entre
eles o Arduino, feito pelo Garoa Hacker Clube.

$ git clone [Link]


$ cd pingo-py
$ cat Makefile
$ pip install -r [Link]
$ sudo python [Link] install
$ [Link] pingo

git clone git@[Link]:cleitonbueno/[Link]


Hello World Arduino
Pisca Led!
import pingo
from time import sleep

board = [Link].get_board()
led_pin = [Link][13]
led_pin.mode = [Link]

while True:
led_pin.hi()
sleep(1)
led_pin.lo()
sleep(1)

git clone git@[Link]:cleitonbueno/[Link]


Lendo botões
Lendo status botão!
import pingo
from time import sleep

board = [Link].get_board()
botao_pin = [Link][12]
botao_pin.mode = [Link]

while True:
status_botao = botao_pin.state
if status_botao == "HIGH":
print "Botao pressionado!"
sleep(1)

git clone git@[Link]:cleitonbueno/[Link]


Interagindo com Web
Pisca Led!
import SimpleHTTPServer
import SocketServer
import pingo
from time import sleep

PORT = 80

class my_arduino():
...

class my_handler([Link]):
...

git clone git@[Link]:cleitonbueno/[Link]


Comunicação Serial
Codigo Arduino (código parcial!)
void loop(){
if ([Link]() > 0) {
unsigned char cmd_rx = [Link]();
if (cmd_rx == CMD_LIGA_LED) { // letra l -> LIGAR
digitalWrite(PINLED, HIGH);
}
else if (cmd_rx == CMD_DESLIGA_LED) { // letra d -> DESLIGAR
digitalWrite(PINLED, LOW);
}
}
}

git clone git@[Link]:cleitonbueno/[Link]


Comunicação Serial
Codigo Python (código parcial!)
comport = [Link]('/dev/ttyACM0', 115200)

try:
while True:
print "Led ON"
[Link](LED_ON)
[Link](1)
print "Led OFF"
[Link](LED_OFF)
[Link](1)

git clone git@[Link]:cleitonbueno/[Link]


O que mais
Arduino:
Comunicação Ethernet
Comunicação Wifi
Comunicação Bluetooth
Comunicação GPRS
GPS, RFID, Sensores Temperatura, Umidade, Acelerometro, Barometro,
Servomotor, motor de passo, LDR, RTC, Display LCD e muito mais

git clone git@[Link]:cleitonbueno/[Link]


O que mais++
Python:
Comunicação Ethernet
Comunicação Bluetooth
Armazenar em banco de dados
Integrar com API do Twitter
Integrar com API do Google
Integrar com Protocolo de Troca de Mensagens, Ex: MQTT
Middleware para computadores e outras placas como Beaglebone Black,
Raspberry PI entre outras com o Arduino
Envio de e-mails/mensagens XMPP
Webserver ...

git clone git@[Link]:cleitonbueno/[Link]


O que mais++
Avançado:
Interrupções no Arduino
SD-CARD
Programação baremetal
AVR-GCC
AVR Studio

git clone git@[Link]:cleitonbueno/[Link]


git clone git@[Link]:cleitonbueno/[Link]
Referências
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]

git clone git@[Link]:cleitonbueno/[Link]


Fim

Você também pode gostar