Ejemplo Sensor Ultrasonidos SR04

En este ejemplo vamos a utilizar el sensor de distancia por ultrasonidos SR04.

sr04

Lo primero será conectar el Motor Shield MIOIO a la tajeta mioio.

shield_sr04

Una vez tengas las tarjetas conectadas entre sí, conectas el sensor al Motor Shield mioio como te indica la siguiente figura:

Despues, conectas la tarjeta mioio al teléfono.

Y por último a la alimentación externa.

mioio ultrasonidos

 

Una vez tengamos esto puedes instalar la aplicación directamente, que te la puedes descargar desde aquí, o descargar el proyecto completo y compilarlo tu mismo para hacer las modificaciones que quieras.

El código que presenta el main es el siguiente:

package ioio.examples.ultrasonic;
 import ioio.lib.api.PulseInput;
 import ioio.lib.api.DigitalOutput;
 import ioio.lib.api.PulseInput.PulseMode;
 import ioio.lib.api.exception.ConnectionLostException;
 import ioio.lib.util.AbstractIOIOActivity;
 import android.os.Bundle;
 import android.widget.ProgressBar;
 import android.widget.TextView;
public class IOIOUltrasonicSensorActivity extends AbstractIOIOActivity {
 /* ultrasonic sensor */
 private ProgressBar progressBar1_;
 private TextView textView2_;
 private int echoSeconds;
 private int echoDistanceCm;
/**
 * Called upon creation for initialization
 */
 @Override
 public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.main);
 /* ultrasonic sensor */
 progressBar1_ = (ProgressBar) findViewById(R.id.progressBar1);
 textView2_ = (TextView) findViewById(R.id.textView2);
 }
/**
 * Primary thread...runs until interrupted
 */
 class IOIOThread extends AbstractIOIOActivity.IOIOThread {
 /**
 * define pin
 */
 /* ultrasonic sensor */
 private DigitalOutput triggerPin_;
 private PulseInput echoPin_;
/**
 * Called every time a connection with IOIO has been established. (opens
 * pins)
 *
 * @throws ConnectionLostException
 *             (if IOIO connection is lost)
 */
public void setup() throws ConnectionLostException {
 try {
 /* ultrasonic sensor */
 echoPin_ = ioio_.openPulseInput(6, PulseMode.POSITIVE);
 triggerPin_ = ioio_.openDigitalOutput(7);
} catch (ConnectionLostException e) {
 throw e;
 }
 }
/**
 * Loop section
 */
public void loop() throws ConnectionLostException {
 try {
 // read HC-SR04 ultrasonic sensor
 triggerPin_.write(false);
 sleep(5);
 triggerPin_.write(true);
 sleep(1);
 triggerPin_.write(false);
 echoSeconds = (int) (echoPin_.getDuration() * 1000 * 1000);
 echoDistanceCm = echoSeconds / 29 / 2;
 /* update UI */
 updateViews();
sleep(20);
 } catch (InterruptedException e) {
 ioio_.disconnect();
} catch (ConnectionLostException e) {
 throw e;
}
 }
 }
/**
 * A method to create our IOIO thread.
 */
@Override
 protected AbstractIOIOActivity.IOIOThread createIOIOThread() {
 return new IOIOThread();
 }
private void updateViews() {
 runOnUiThread(new Runnable() {
 @Override
 public void run() {
 textView2_.setText(String.valueOf(echoDistanceCm));
 progressBar1_.setProgress(echoDistanceCm);
 }
 });
 }
 }

Puedes descargar el proyecto completo desde aquí:

MIOIOUltrasonicSensor_v01

Deja un comentario

Tu dirección de correo electrónico no será publicada.