Conexión del pi frambuesa y el arduino
Algunas personas ven el Arduino y Raspberry Pi como tableros rivales, pero este no es el caso en absoluto. En todo caso, son complementarias - la debilidad de uno es la fuerza de la otra. Aquí hay tres maneras de conectar un Arduino y Raspberry Pi.
USB
Simplemente conecte el conector USB de la Raspberry Pi al conector USB del Arduino. Eso es todo lo que necesita hacer. Hay una ligera curva en la que el Pi potencialmente puede asignar el Arduino uno de los dos puertos, por lo que al abrir el puerto serie al Arduino, utilice el siguiente fragmento de código:
serialtry importación: ser = serial.Serial ('/ dev / ttyACM0', 115200, timeout = 2), excepto: ser = serial.Serial ('/ dev / ttyACM1', 115200, timeout = 2)
Esto supone que ha configurado el código en el Arduino para utilizar el puerto serie al mismo 115.200 velocidad de transmisión con un comando de comenzar:
Serial.begin (115200)
Se puede utilizar cualquier velocidad de transmisión que los dos sistemas pueden utilizar, pero tienen que coincidir. En el lado Pi, utilizar ser.write () para enviar lo que está en los soportes a la Arduino y back = ser.read (1) para reducir distancias de bytes. Si no ha habido nada recibida después del período de tiempo de espera se establece al abrir el puerto, la llamada vuelve. Puede solicitar tantos bytes de vuelta de esta llamada y cuando se pone entre paréntesis.
Serial
Esto funciona en el software muy parecido USB, pero aquí se conectan los pines GPIO en la Raspberry Pi a los pines TX y RX en el Arduino. Este método puede ser útil si usted tiene un Arduino con más de un puerto serie, como el Mega Arduino. La única pega es que si usted está utilizando una 5V Arduino, necesita algunos circuitos de cambio de nivel. Para recibir una señal de 5V en el Pi, un simple divisor resistivo es suficiente, pero al pasar de 3V3 hasta 5V que necesita un transistor.
Cualquier de propósito general transistor NPN se puede utilizar aquí. Usted se comunica de la misma forma que la serie USB, excepto que siempre obtenga el puerto ttyACM0.
Para ambos métodos de serie, que está transfiriendo no bytes números. Si tiene problemas con esto, tal vez algún otro software de instalación ha cambiado el funcionamiento por defecto de su puerto serie en el lado de Pi. Si es así, buscar en línea para los síntomas de su problema específico.
yo2C
El I2C (pronunciado " I cuadrado C " pero I2C menudo escrito) puede ser utilizado para conectar los dos juntos. El I2Sistema C es un acuerdo maestro / esclavo - sólo el maestro envía o solicita datos. El Raspberry Pi no es muy adecuado para ser un me2Esclavo C, por lo que tiene para que sea el maestro. El autobús requiere resistencias de pull-up, que ya están en los pines GPIO 2 y 3 en la Raspberry Pi. Por desgracia, el 5V Arduino tiene su resistencia pull-up interna habilitada si usted está utilizando el estándar I2C biblioteca llama " alambre " - porque esto está tirando de las líneas hasta 5V, podría dañar su Pi. Así que tendrás que hackear la biblioteca de alambre (la utilizada para I2C) o, mejor aún, utilizar una biblioteca que permite el control de las resistencias pull-up internas como la que se encuentra en Github.com. La conexión es entonces simple. Tenga en cuenta que hay un ejemplo del uso de la Arduino como un I2C esclavo en la sección de ejemplos del Arduino IDE.
Si no desea cambiar el software, usted tendrá que usar un I2Nivel C circuito de desplazamiento.