Os Arduinos geralmente aparecem como dispositivos seriais USB. As placas atuais usam o driver serial USB embutido no microprocessador principal, mas os Arduinos mais antigos (e clones) usavam chips USB-serial de terceiros separados.
Para simplesmente receber Serial.print
dados do Raspberry Pi do Arduino, eu uso o programa GNU Screen como um terminal básico: screen [serial-port] [baud-rate]
(por exemplo screen /dev/ttyACM0 9600
).
Eu testei três Arduinos diferentes e um clone bastante diferente. Todas as variantes mais recentes apareceram como /dev/ttyACM0
portas e as mais antigas /dev/ttyUSB0
. Foi o que eu encontrei no Raspbian:
O Raspberry Pi pode não fornecer energia suficiente para acionar um Arduino, portanto você pode precisar de energia externa. Para completar, também testei um Prolific PL2303 , mesmo que não esteja em nenhum Arduino que eu conheça. Pareceu muito feliz como /dev/ttyUSB0
.
Para comunicações mais complexas com sensores, considere o Firmata , "um protocolo genérico para comunicação com microcontroladores a partir de software em um computador host". Possui implementações para as bibliotecas Arduino e Python para execução no lado do Raspberry Pi.
Aqui está um pequeno exemplo usando pyFirmata para ler um LM35 e alterar o brilho de um LED:
#!/usr/bin/python
# -*- coding: utf-8 -*-
# simple test of pyfirmata and Arduino; read from an LM35 on A0,
# brighten an LED on D3 using PWM
# scruss, 2012-08-14 - tested on Arduino Uno & Raspberry Pi (Raspbian)
import pyfirmata
# Create a new board, specifying serial port
board = pyfirmata.Arduino('/dev/ttyACM0')
# start an iterator thread so that serial buffer doesn't overflow
it = pyfirmata.util.Iterator(board)
it.start()
# set up pins
pin0=board.get_pin('a:0:i') # A0 Input (LM35)
pin3=board.get_pin('d:3:p') # D3 PWM Output (LED)
# IMPORTANT! discard first reads until A0 gets something valid
while pin0.read() is None:
pass
for i in range(10):
pin3.write(i/10.0) # set D3 to 0, 10%, 20%, ... brightness
print "PWM: %d %% Temperature %.1f °C" % (i * 10, pin0.read() * 5 * 100)
board.pass_time(1) # pause 1 second
pin3.write(0) # turn LED back off
board.exit()
Existem algumas advertências ao usar pyFirmata:
- As leituras analógicas e as gravações PWM são normalizadas para um intervalo de 0 .. 1, e não para o Arduino padrão 0 .. 255 e 0 .. 1023.
- Você realmente precisa iniciar um encadeamento de iterador separado para impedir que leituras antigas excedam o buffer serial
- Como o Arduino é lido de forma assíncrona, verifique se a conexão pyFirmata está totalmente inicializada antes de ler das portas. Caso contrário, os
None
valores se seguirão.
Caso não esteja claro, com o Raspbian Wheezy , você pode executar o Arduino IDE e carregar esboços no Arduino quando conectado à porta USB do Raspberry Pi. Para instalar no Raspbian, basta digitar no shell (também conhecido como linha de comando):
Ele fará o download e instalará todos os pacotes necessários. Tenho algumas fotos do IDE do Arduino no Raspbian aqui:
http://www.element14.com/community/groups/raspberry-pi/blog/2012/07/03/review-of-raspberry-pi-images
(como outras pessoas descreveram acima, o Raspberry Pi também pode programar o Arduino através dos pinos da porta serial (UART) no cabeçalho GPIO. Nesse caso, você não precisaria "desperdiçar" uma porta USB, mas exigiria configuração adicional )
Saúde, Drew
fonte
Pode-se optar por conectar o rpi ao arduino usando uma porta USB ou usando os pinos GPIO. Pode-se usar o Wiringpi para fazer a comunicação entre as placas.
Atualmente, também está sendo desenvolvida uma ponte chamada Ponte .
Um mundo básico de olá pode ser encontrado aqui .
fonte
O modo à la
Anunciado como a maneira correta de colocar um Arduino em um Raspberry Pi pela Hack A Day, o modo à la é um clone empilhável do Arduino, projetado por Anool Mahidharia, Justin Shaw e Kevin Osborn da Wyolum.com OSHW. Hack A Day descreveu o seguinte
Kevin dá um pouco mais de detalhes em seu blog :
Beta limitado
Atualmente, o conselho está na versão beta limitada, mas merece ser mencionado como um clone bem pensado, anunciado por um grupo com forma anterior .
Referências
fonte
Você pode considerar a placa Gert, que agora é baseada no Arduino, se desejar uma plataforma de interface de hardware de uso geral. Uma vantagem é que existe uma extensa documentação sobre a interação com o RPi. Disponível para pré-encomenda da Element14 a partir de 8/8/12.
fonte
Existe um RaspberryPi HAT que se comporta como o Arduino e pode ser programado através de sua interface da Web a partir de qualquer navegador. Projeto chamado CoPiino . Ele vem completamente com o software instalado e funcionando. Basta digitar o Arduino Sketch na interface do usuário do navegador e clicar em "compilar e executar" - é isso.
fonte