Ryerson MEC830 Mechbot Custom comunicación Serial (3 / 4 paso)

Paso 3: Algoritmo para la recepción y transmisión de datos

Para transmitir datos, he escrito dos funciones para llevar a cabo este proceso, son: send_data(int num) y completion_Scan().

He asignado las variables con el código correspondiente a mi mesa para los 2 primeros escenarios llamado derecha e izquierda. Este ejemplo nos centraremos solamente en comunicar que la pelota está en el lado izquierdo o derecho. Cuando se determina la ubicación de la bola, el valor se envía a la función send_data donde el entero se divide en una matriz y los valores high(1) pulsado o low(0). Cuando se pulsan todos los valores, la función completion_Scan() se llama y solo sale cuando se envía una señal de terminación de la Arduino original que recibió el mensaje.

pseudo código:

 int right=10100; int left = 10010; if (ball is on left side){ send_data(right); completion_Scan(); } if (ball is on the right side){ send_data(left); completion_Scan(); } 

Cuando se llama send_Data, el entero pasado es picado en una matriz de 5 bits mediante el algoritmo siguiente:

 int send_data(int num){ data[4] = num % 10; data[3] = (num % 100 - data[4])/10; data[2] = (num % 1000 - data[3] - data[4])/100; data[1] = (num % 10000 - data[2] - data[3] - data[4])/1000; data[0] = (num % 100000 - data[1] - data[2] - data[3] - data[4])/10000; 

Utilizando el modulo función, he creado un algoritmo para almacenar los bits individuales en una posición de selección única llamada datos. Por ejemplo, si se envía 10100 send_data, datos [4] almacenará el resto de 10100 dividido por 10.

datos [4] = (10100 mod 10) = 0;

datos [3] = ((10100 mod 100) - 0) / 10 = 0

datos [2] = 1

datos [1] = 0

datos [0] = 1

La matriz de todos los datos es procesada a través de una declaración "a favor" y cuando se detecta un valor de 1, una señal de alto es pulsada a través del cable de 200ms. Por el contrario, cuando se detecta un valor de 0, baja de la señal es pulsada a través del cable para la misma cantidad de tiempo.

 for (y=0; y<5; y++){ //send high or low if (data[y]==1){ turn PC5 HIGH } else{ turn PC5 LOW } delay(200); } 

Para recibir datos, Arduino receptor está siempre esperando una señal alta inicial. Inmediatamente después que se detecta, el mensaje se almacena en un array de una manera similar. El código final recibido se compara para determinar la salida deseada.

He incluido el código completo para Mechbot y EVShield. La única diferencia es que he incluido Serial.prints para la depuración, botones para enviar o terminar la comunicación y un LED que parpadea durante la transmisión. Nota: puede descargar ambos archivos o haga clic derecho y seleccionar "abrir en Nueva pestaña" para ver el código de.

Artículos Relacionados

Comunicación serial - Arduino y Linkit uno

Comunicación serial - Arduino y Linkit uno

En este instructable voy mostrarle cómo establecer una comunicación serial entre arduino y Linkit uno. Esto ayudaría a hacer un proyecto más complejo con estas dos placas.Paso 1: componentesAquí está una lista de todos los componentes necesarios para
Arduino y Matlab: deje que ellos hablan utilizando comunicación serial!

Arduino y Matlab: deje que ellos hablan utilizando comunicación serial!

Hola todo el mundo!desde cuando he empezado a jugar con Arduino, he siempre sido vagando como hacerlo hablar e interactuar con el entorno de Matlab de una forma fácil y eficaz. Golpea en muchos Instructables y tutoriales sobre Arduino bibliotecas y a
Moviendo un Motor utilizando Arduino y comunicación Serial

Moviendo un Motor utilizando Arduino y comunicación Serial

te has preguntado ¿cómo mover robots?  ¿Que siempre quisiste escribir un programa para controlar un robot?  Si es así, este tutorial será un excelente lugar partido para aprender controles electrónicos con el Arduino Microcontroller.  Usted estará ha
Comunicación Serial una partícula fotón y Linkit

Comunicación Serial una partícula fotón y Linkit

El Linkit uno es un gran Consejo y la mejor parte de él es es portable y ser portable, es genial para el diseño de dispositivos portátiles con el microcontrolador. Otro microcontrolador fresco que con la que trabajo es el fotón partícula, esto es sim
Arduino para procesamiento: comunicación Serial sin una firmado

Arduino para procesamiento: comunicación Serial sin una firmado

este instructivo está diseñado para que cualquiera pueda enviar directamente los valores de entrada leídos por Arduino a procesamiento. Se utiliza mejor para pasar de uno a varios valores, como unos botones, joystick o acelerómetro.  Para el total co
Comunicación serial entre Arduino, HTML y cromo

Comunicación serial entre Arduino, HTML y cromo

Es fácil trabajar con Arduino, pero la creación de proyecto que consiste en software requiere más habilidades de programación. A diferencia de otras soluciones de mi proyecto es la forma de crear HTML offline la aplicación - sin cosas como Yun, shiel
Menos comunicación Serial del alambre

Menos comunicación Serial del alambre

Este proyecto es para un protocolos de comunicación. CTIJ.Paso 1: DescripciónEste proyecto contiene información sobre cómo realizar una comunicación serial entre dos controladores micro utilizando un sensor infrarrojo, comunicación inalámbrica.Paso 2
Comunicación serial entre android y arduino a través de telnet

Comunicación serial entre android y arduino a través de telnet

ObligatorioSoftware Python 2.7 con pyserial paqueteAplicación android móvil TelnetSoftware de ArduinoPaso 1: introducciónAquí, en este instructable describí sobre comunicación serial entre el teléfono android y arduino a través de telnet. Para probar
Proceso de comunicación serial en Arduino

Proceso de comunicación serial en Arduino

El hardware de Arduino tiene soporte incorporado para la comunicación serial en los pines 0 y 1 (que también va a la computadora vía la conexión USB). El soporte nativo de la serie pasa a través de una pieza de hardware (integrado en el chip) llamada
MSP430 Procesamiento y comunicación SERIAL usando ENERGIA

MSP430 Procesamiento y comunicación SERIAL usando ENERGIA

Hola todo el mundo. soy vigneshraja. Aquí he hecho el variar el color dependiendo del valor analógico leído de 10 k potenciómetro utilizando MSP430G2231. estoy usando software de Energia para el programa de comunicación serial. para variar el color d
Comunicación serial entre android y arduino a través de bluetooth de la laptop

Comunicación serial entre android y arduino a través de bluetooth de la laptop

Acerca de:Es este instructable sobre comunicación serial entre android y arduino a través de built-in del ordenador portátil Bluetooth. no tengo separado el módulo Bluetooth. así que he decidido usar mi portátil Built-in Bluetooth para comunicación s
ATtiny85 & ATtiny84 analógico pines, comunicación Serial, etc.

ATtiny85 & ATtiny84 analógico pines, comunicación Serial, etc.

me gusta usar un ATtiny84 o ATtiny85 en mis proyectos. Se puede ahorrar unos centavos y hacer el diseño un poco más pequeño. La mejor instrucción para configurar estos chips para ser utilizado con el IDE de Arduino está en el sitio web MIT, alta tecn
Arduino Wireless comunicación Serial

Arduino Wireless comunicación Serial

hay muchas maneras de comunicarse con remoto Arduinos. He encontrado que muchos de ellos golpeó un punto de precio ligeramente más alto que lo que me gustaría. También, escudos de ethernet (y wifi dito?) consumen muchos pins hardware valiosos. Voy a
PyDuino, interfaz Arduino con Python a través de comunicación serial

PyDuino, interfaz Arduino con Python a través de comunicación serial

Aprender a interfaz arduino a través de comunicación serial con python usando la librería pyduino. Hay algunos otros tutoriales que hay en instructables en cómo interfaz arduino con python, pero no demuestran cómo hacerlo todo, donde esperamos que es