Ligar o Raspberry Pi eo Arduino

Algumas pessoas vêem o Arduino e Raspberry Pi como placas rivais, mas este não é o caso em tudo. Se alguma coisa, eles são complementares - a fragilidade de um é a força do outro. Aqui estão três maneiras de conectar um Arduino e um Pi Raspberry.

USB

Basta ligar o conector USB do Raspberry Pi ao conector USB no Arduino. Isso é tudo que você precisa fazer. Há uma ligeira bola curva em que o Pi pode potencialmente atribuir o Arduino uma das duas portas, por isso, ao abrir-se a porta serial para o Arduino, use o seguinte trecho de código:

importação serialtry: ser = serial.Serial ( '/ dev / ttyACM0', 115200, timeout = 2), exceto: ser = serial.Serial ( '/ dev / ttyACM1', 115200, timeout = 2)

Isso pressupõe que você tenha configurado o código no Arduino para usar a porta serial, ao mesmo 115200 taxa de transmissão com um comando de começar:

Serial.begin (115200)

Você pode usar qualquer taxa de transmissão que os dois sistemas podem usar, mas eles têm que corresponder. No lado do Pi, use ser.write () para enviar o que está nos suportes ao Arduino e back = ser.read (1) para obter um byte de volta. Se não houve nada recebidas após o período de tempo limite definido quando abrir a porta, a chamada retorna. Você pode obter o maior número de bytes de volta a partir desta chamada como você colocar nos suportes.

Serial

Isso funciona no software muito parecido com USB, mas aqui você conectar os pinos GPIO no Raspberry Pi aos pinos TX e RX no Arduino. Este método pode ser útil se você tem um Arduino com mais de uma porta serial, como o Arduino Mega. O único problema é que se você estiver usando um 5V Arduino, você precisa de alguns circuitos nível movediças. Para receber um sinal de 5V para o Pi, um divisor resistivo simples será suficiente, mas em ir de 3V3 até 5V você precisa de um transistor.

image0.jpg

Tanto para uso geral transistor NPN podem ser usados ​​aqui. Você pode se comunicar da mesma forma como a série USB, exceto que você sempre obter a porta ttyACM0.

Para ambos os métodos de série, você está transferindo não bytes números. Se você tiver problemas com isso, talvez algum outro software de instalação mudou o funcionamento padrão do seu porta serial no lado do Pi. Se assim for, pesquisa on-line para os sintomas de seu problema específico.

Eu2C

a I2C (pronuncia-se # 147-I ao quadrado C # 148- mas I2C muitas vezes escritos) pode ser usado para conectar os dois juntos. a I2sistema C é um arranjo mestre / escravo - apenas o mestre envia ou solicita dados. A framboesa Pi não é muito bem adequado para ser um I2C escravo, então você tem que fazê-lo o mestre. O ônibus requer pull-up resistores, que já estão em GPIO pinos 2 e 3 no Raspberry Pi. Infelizmente, o 5V Arduino tem seu interna resistor pull-up habilitado se você estiver usando o I padrão2biblioteca C chamada # 147-Wire # 148-- porque este é puxando as linhas até 5V, que poderia danificar o seu Pi. Então você vai ter que cortar a biblioteca fio (aquele usado para I2C) ou, melhor ainda, usar uma biblioteca que permite o controle das resistências internas pull-up, como o encontrado em Github.com. A conexão é então simples. Note-se que há um exemplo da utilização do Arduino como um I2escravo C na secção de exemplos do IDE Arduino.

image1.jpg

Se você não quiser alterar o software, você terá que usar um I2nível C deslocando circuito.

menu