Los arduinos suelen aparecer como dispositivos serie USB. Las placas actuales usan el controlador serie USB integrado en el microprocesador principal, pero los Arduinos (y clones) más antiguos usaban chips serie USB de terceros.
Para recibir simplemente Serial.print
datos sobre la Raspberry Pi del Arduino, utilizo el programa GNU Screen como terminal básico: screen [serial-port] [baud-rate]
(por ejemplo screen /dev/ttyACM0 9600
).
Probé tres Arduinos diferentes y un clon bastante diferente. Todas las variantes más nuevas aparecieron como /dev/ttyACM0
puertos, y las más antiguas /dev/ttyUSB0
. Esto es lo que encontré, debajo de Raspbian:
Es posible que Raspberry Pi no proporcione suficiente energía para conducir un Arduino, por lo que es posible que necesite alimentación externa. Para completar, también probé un Prolific PL2303 , aunque no conozco ningún Arduino. Parecía bastante feliz como /dev/ttyUSB0
.
Para comunicaciones más complejas con sensores, puede considerar Firmata , "un protocolo genérico para comunicarse con microcontroladores desde software en una computadora host". Tiene implementaciones para las bibliotecas Arduino y Python para ejecutarse en el lado de Raspberry Pi.
Aquí hay un pequeño ejemplo usando pyFirmata para leer un LM35 y cambiar el brillo de un 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()
Hay algunas advertencias al usar pyFirmata:
- Las lecturas analógicas y las escrituras PWM se normalizan a un rango de 0 .. 1, y no el Arduino estándar 0 .. 255 y 0 .. 1023.
- Realmente necesita comenzar un hilo iterador separado para detener las lecturas antiguas que desbordan el búfer en serie
- Dado que Arduino se lee de forma asincrónica, asegúrese de que la conexión pyFirmata esté completamente inicializada antes de leer desde los puertos. De lo contrario,
None
se producen valores.
En caso de que no esté claro, con Raspbian Wheezy , puede ejecutar el IDE de Arduino y cargar bocetos al Arduino cuando esté conectado al puerto USB de la Raspberry Pi. Para instalar en Raspbian, simplemente escriba en el shell (también conocido como línea de comando):
Descargará e instalará todos los paquetes necesarios. Tengo un par de fotos del IDE Arduino en Raspbian aquí:
http://www.element14.com/community/groups/raspberry-pi/blog/2012/07/03/review-of-raspberry-pi-images
(como otras personas han descrito anteriormente, la Raspberry Pi también podría programar el Arduino a través de los pines del puerto serie (UART) en el encabezado GPIO. En este caso no tendría que "desperdiciar" un puerto USB, pero requeriría una configuración adicional )
Saludos, Drew
fuente
Uno puede optar por conectar el rpi al arduino usando un puerto usb o usando los pines GPIO. Uno puede usar Wiringpi para hacer la comunicación entre los tableros.
Actualmente también se está desarrollando un puente llamado Ponte .
Un mundo hola básico se puede encontrar aquí .
fuente
El à la mode
Considerado como la forma correcta de poner un Arduino en una Raspberry Pi por Hack A Day, el modo a la moda es un clon de Arduino apilable diseñado por Anool Mahidharia, Justin Shaw y Kevin Osborn de la colaboración de Wyolum.com OSHW. Hack A Day lo describió de la siguiente manera
Kevin da un poco más de detalles en su blog :
Beta limitada
El tablero está actualmente en beta limitada, pero merece ser mencionado como un clon bien pensado, que ha sido anunciado por un grupo con forma previa .
Referencias
fuente
Puede considerar la Gert Board que ahora está basada en Arduino si desea una plataforma de interfaz de hardware de uso general. Una ventaja es que existe una amplia documentación sobre la interacción con el RPi. Disponible para pre-pedido de Element14 a partir del 8/8/12.
fuente
Hay un SOMBRERO RaspberryPi que se comporta como Arduino y se puede programar a través de su interfaz de usuario web desde cualquier navegador. Proyecto llamado CoPiino . Viene completamente con el software en funcionamiento. Simplemente ingrese el Arduino Sketch en la interfaz de usuario del navegador y presione "compilar y ejecutar", eso es todo.
fuente