Olá pessoal mais um mini projeto, vamos integrar o ruby e o arduino fazendo com que o ruby consiga ler e imprimir os dados enviados da serial port conforme os clicks em 2 botões (cima e baixo).
O que vamos utilizar no projeto:
– 2 botões
-Arduino Uno
-Protoboard mini
Fritzing:
Código arduino:
void setup() { Serial.begin(9600); //Disponibiliza o serial Monitor com velocidade de 9600 (Na janela da Serial Monitor coloque esta velocidade também) pinMode(2, INPUT); //Configura a entrada digital 2 do Arduino como entrada pinMode(3, INPUT); //Configura a entrada digital 2 do Arduino como entrada } void loop() { int sensorCima = digitalRead(2); //Faz a leitura da entrada digital 2 e armazena na variavel sensorCima if (sensorCima == 1) { Serial.println("cima"); //Mostra o valor da variável sensorValue no serial Monitor } int sensorBaixo = digitalRead(3); //Faz a leitura da entrada digital 3 e armazena na variavel sensorBaixo if (sensorBaixo == 1) { Serial.println("baixo"); //Mostra o valor da variável sensorValue no serial Monitor } }
Código Ruby: read.rb
require 'rubygems' #adiciona as bibliotecas rubygems require 'serialport' #adiciona a biblioteca serialport #parametros da serial port port_str = "/dev/cu.usbmodem621" baud_rate = 9600 data_bits = 8 stop_bits = 1 parity = SerialPort::NONE sp = SerialPort.new(port_str, baud_rate, data_bits, stop_bits, parity) #while para leitura da serial port while true do printf("%c", sp.getc) #imprime dados end sp.close
Video:
Resultado Final:
Olá, gostaria de saber como fazer para fazer uma verificação no ruby se chegou alguma coisa na serial..
Gostaria de saber se chegou algo na serial e so dps tomar uma atitude no ruby..
por exemplo, como que eu recebo na serial um numero tipo 2368764238 e faço um if para so dps de receber esse numero eu fazer alguma coisa no ruby??
Olá Rogerio, voce pode fazer sim com o ruby, eu optei por fazer a verificação no arduino e com o ruby eu apenas imprimo na tela o resultado.
Este é so um exemplo simples, mas a partir disso tem muitas possibilidades.