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.
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.
Se você não quiser alterar o software, você terá que usar um I2nível C deslocando circuito.