RPi – Arduino via USB en C#

Estándar

Una desventaja que tiene la Raspberry Pi es que no esta pensada para proyectos que contengan mucha electrónica, y nos encontramos, que cuando tenemos que leer una señal analógica, debemos usar un conversor AC/DC externo o un Arduino. Si usamos un chip AC/DC (tutorial), se comunica con la RPi con el protocolo I2C, y si usamos el Arduino, tenemos la ventaja de poderlo hacer, vía USB. Voy a usar el Arduino via USB y programando (la RPi) en C#. (tutorial con codigo python)

Haremos lo básico: conectaremos un potenciómetro una entrada analógica del Arduino, y este enviara el valor a la Raspberry. El esquema es el siguiente:

arduino + pote

 

El código del Arduino es:

int potenciometre = 1;
int valor = 0;

int min = 0;
int max = 1023;

void setup () {
  Serial.begin(9600);
}

void loop () {

  if(Serial.available()) {
    char c = Serial.read();

    if(c=='p'){
        //envia valor del potenciometro entre 0 i 100
        valor = analogRead(potenciometre);
        valor = map(valor, min, max, 0, 100);
        Serial.println(valor);
    }else{
      //envia valor del potenciometro, entre 0 i 1023
        valor = analogRead(potenciometre);
        Serial.println(valor);
    }
  }
}

La función map() de la linea 19 es la que se usa para hacer el porcentaje del potenciómetro

Y el código de la Raspberry:

using System;
using System.IO;
using System.IO.Ports;

namespace ConsoleApplication1{

	class Program{

		public static void Main(string[] args){

			string comando ="";
			string leido = "";

			SerialPort sp = new SerialPort("/dev/ttyACM0", 9600, Parity.None, 8, StopBits.One);
			sp.Open();

			while (true) {
				Console.WriteLine ("envia comando (p, k): ");
				comando = Console.ReadLine ();
				sp.Write(comando);

				leido = sp.ReadLine ();
				Console.WriteLine (leido);
			}
			sp.Close();
		}
	}
}
Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s