Ingeniería inversa = Uzzors2k = Bluecar Android aplicación Amarino cosas también. (2 / 3 paso)

Paso 2: BluCar

Cuando empecé a tratar de utilizar la aplicación de Uzzor, traté de leer los datos de bluetooth a través de mi computadora y mostrar en un terminal. No funcionó. Y no entiendo por qué no funcionó durante algún tiempo. Pero lo que estaba sucediendo, mi terminal se creó sólo para leer los caracteres de ASCII. Y tipo de por qué no estaba funcionando un tiempo atrás, porque me di cuenta de que la aplicación de Uzzor sólo envía un número binario de 8 bits que todos los datos de adelante/atrás izquierda/derecha brakelights/linternas. Pero incluso con eso averiguado, realmente no pude comprobar mi teoría porque no pude leer los datos que salen de mi movil a mi ordenador era un galimatías y no estaba funcionando el código que estaba escribiendo para leer los datos. Y un tiempo atrás, no estaba cómodo como estoy ahora con el uso de máscaras de bits.

También pensé que el arduino por defecto, usando sólo el Serial.read() lee caracteres ASCII. (Me equivoqué por supuesto)

Pero esta razón Uzzor es cool: Amarino utiliza una matriz de 3 caracteres para enviar los datos de acelerómetro, que son de 3 bytes. Esos tres bytes corresponden sólo a una variable. Un byte para el avance, el segundo para el volante, la tercera para lo que quieras.
Uzzor envía un byte, que contiene las instrucciones para adelante, atrás, izquierda, derecha, faros, brakelights. muy bien.

Este es el arreglo que he encontrado:

| 7: faros | 6: BrakeLights | 5: invertir | 4: adelante | 3:Right | 2: izquierda | 1: | 0: |

Puede almacena la Serial.read() como un int y crea máscaras de bits para leer los bits que usted necesita para control.

Aquí está un ejemplo:
Obtener este número binario de Serial.read()
10010100 / / = 148
Los faros están en el coche se va hacia adelante y da vuelta a la izquierda.
Si quiero leer el estado de avance/retroceso:
crear una máscara de bits: 00110000 & 10010100
que se traduce en 00010000
Y puedo escribir código para saber que número y realizar una tarea.
Yo podría estar haciendo un mal método o algo, pero el camino lo hice funcionó para mí, si usted tiene cualquier otro método, publicarlos!
==============================================================
Tipo de fuera de tema
pero la forma que uzzor utiliza sus datos seriales es fricken bastante elegante. Como cuando finalmente entendí lo que era ir en I era como woah!, es muy suave!

Todo lo que hace es recta para escribir su número de 8 bits a DDRB (ATTINY, que tiene 8 puertos, cada puerto corresponde directamente a cada función, la luz LED está conectada con el séptimo (octavo pin) puerto más importante). Así que cuando escribe un alto en la posición de luz de freno, corresponde directamente al puerto que se conecta a la luz de freno led.
número de serie de 8 bits--> DDRB--> hardware

También crea una máscara de bits para omitir los últimos cuatro bits (0 y 1 están sin usar 2 y 3 son de dirección) y lo hace porque la dirección es controlada por un servo y otra función para convertir los datos en una señal de servo PPM.

Cool ¿no? Piensa que sí.
--------------------------------------------------------------------------------------------------------------------------------
Cuando empecé a tratar de lectura y prueba de los datos en serie desde la aplicación android de Uzzor, estaba usando el operador de igualdad, que no estaba funcionando. Pero supongo que es mala programación... Yo no he refinado mi código, pero lo que estoy haciendo es buscando rangos de Parque de bolas. Borrar los bits de los datos que quiero leer. Si quería leer el estado del motor, leer los Estados de avance y retroceso
0001 0000 //serial datos en tiempo real
0011 0000 & //mask por lo que he leído sólo los datos de avance/retroceso
--------------------
0001 0000 //forward

0010 0000 //same sino también para invertir
0011 0000 &
-------------------
0010 0000

Por lo que puede o bien obtener los valores de 32 o 16. (0010 0000 o 0001 0000)
y yo y con el número 48 porque 48 en binario es 0011 0000.
Así fue la forma en que escribí mi código
int x;
x = Serial.read();              Ser seguro podría intentar int x = Serial.read();
inversa:
x & = 48;         x = serie & 0011 0000
Si (x > 24) servo.write(30);                Ball park gama el comando reverso blanco que debe ser 32
else if (x < 24 & y x > 15) servo.write(180);                       Ball park gama el comando avance objetivo que debe ser 16
servo.write(90) otra cosa;
--------------------------------------------------------------------------------------------------------------
Así que eso es todo, aquí está algo de código para utilizar la aplicación de Uzzor con arduino:

#include < Servo.h >
Servo servo;
Motor servo;
void setup()
{
servo.Attach(9);
motor.Attach(8);
Serial.Begin(9600);
pinMode (13, salida); Este es mi "Faro"
}

void loop()
{//start principal
int x;
int y;
int z;

Si (Serial.available() > 0)
{//start si 1
x = Serial.read(); x tiene que ser declarado un Serial.read() aquí por alguna razón
y = x;
z = x;
y & = 48; y de máscaras de bits busca delantero/reverso
x y = 12; mira para la izquierda/derecha
z & = 128; no busca linterna luz de freno todavía
Si (x < 6 & & x > 3)
{
servo.Write(80); único de izquierda para mi proyecto
}
else if (x > 6)
{
servo.Write(120); derecho exclusivo de mi proyecto
}
servo.write(105) otra cosa; Centro exclusivo de mi proyecto

Si (y > 24)
{
motor.Write(30); inversa
}
else if (y < 24 & & y > 15)
{
motor.Write(150); hacia adelante
}
motor.write(90) otra cosa; no te muevas

Si (z > 0) digitalWrite (13, HIGH); faros
Else digitalWrite (13, bajo);
} //end si 1
} //end principal

------------------------------------------------------------------------------------------------------
me avisas si tienes consejos o mejoras.

Artículos Relacionados

Ingeniería inversa RF mando a distancia para IoT.

Ingeniería inversa RF mando a distancia para IoT.

En este instructable, usted aprenderá cómo invertir el ingeniero cómo implementar en un ordenador muy barato de WiFi activado, el MCU de nodo y mandos de Radio frecuencia (RF). Usando esta técnica puedes IoT habilitar dispositivos mayores y dispositi
Un cargador de la cerca eléctrica de ingeniería inversa

Un cargador de la cerca eléctrica de ingeniería inversa

algo ingeniería inversa puede ser una gran forma de entretenimiento y educación.  Que muchas veces he comprado artículos para la satisfacción de desmontaje para determinar cómo funcionan y cómo están diseñados.  A lo largo de la manera usted puede ap
Ingeniería inversa: USB controlado hack de automatización del hogar

Ingeniería inversa: USB controlado hack de automatización del hogar

hackear un sistema inalámbrico de automatización del hogar para ser controlada usando dos Microcontroladores AVR USB!¡ Mira el video! El sistema es realmente más sensible, pero el navegador de mi celular es lento.Si te gusta esto, posiblemente le gus
Cualquier herramienta de limpieza de ingeniería inversa para el rendimiento óptimo del equipo

Cualquier herramienta de limpieza de ingeniería inversa para el rendimiento óptimo del equipo

Si eres algo como yo, le gustaría tener y tomar el control de todo en su computadora. Ust pueda determinar cuánto almacenamiento de información se utiliza para bla programas bla, bla.Aunque las aplicaciones pueden ser útiles en hacer las cosas, ¿por
Ingeniería inversa

Ingeniería inversa

muchos de los miembros aquí en Instructables pregúntele a hojas de datos o pin outs de un dispositivo o pantalla en respuestas, desafortunadamente usted no puede siempre obtener una hoja de datos y esquemas, en estos casos sólo tienes una opción inge
Ingeniería inversa en vivo

Ingeniería inversa en vivo

Empecé en electrónica antes de la llegada de internet y de componentes de estado sólidos más, por lo que no fue fácil para mí obtener hojas de datos y esquemas. Hoy en día con fabrica haciendo ICs personalizadas y pantallas LCD para todo, desde los t
Ingeniería inversa: Bombilla de LED RGB con mando a distancia IR

Ingeniería inversa: Bombilla de LED RGB con mando a distancia IR

compramos 20 de estas bombillas LED RGB para una fiesta en el trabajo, pero estaba un poco decepcionado con las funciones de fundido de color que proporcionaban. Así que decidí tomar a un ingeniero inverso, aparte el protocolo de IR y ver si tenía má
Un pequeño amplificador de ingeniería inversa

Un pequeño amplificador de ingeniería inversa

Mi Instructables otros en la ingeniería inversa está en componentes que no puede obtener hojas de datos y conexiones. Invertir que un circuito de dos tableros a la semana, pequeños como estos me llevan de un día para invertir a ingeniero y tira para
¿Hacer una clave de trabajo de chatarra por un bloqueo de ingeniería inversa

¿Hacer una clave de trabajo de chatarra por un bloqueo de ingeniería inversa

has perdido todas las llaves de su cerradura y necesita hacer una nueva clave desde cero?  ¿Le falta el cerrajero una llave en blanco que se ajuste a la ranura de la cerradura? Agarrar una lima de metal, alguna hoja de chatarra y leer en un áspero y
Hackear la oreja espía y aprender ingeniería inversa un circuito

Hackear la oreja espía y aprender ingeniería inversa un circuito

este instructable introduce el venerable oído espía en detalles y mi manera a invertir el ingeniero un circuito.¿Por qué este dispositivo merece su propio instructivo?:-Usted puede comprar un oído espía por un dólar!-Se pueden amplificar sonidos hast
USB hack por ingeniería inversa

USB hack por ingeniería inversa

USB es un protocolo muy complejo, mucho más complicado que la serie o paralelo, SPI y I2C incluso. USB utiliza sólo dos hilos pero no son utilizados como 'recibir' y 'transmitir' como serie. Por el contrario, datos están bidireccional y diferencial -
Ingeniería inversa para emular los cartuchos de tinta para una impresora Epson

Ingeniería inversa para emular los cartuchos de tinta para una impresora Epson

durante los últimos dos años, he estado planeando construir yo mismo una impresora 3D de algunas impresoras de inyección de tinta viejo que yo había recogido durante los años. Pero no hasta hace dos semanas había hecho empecé a trabajar en él.La impr
Arduino + JY-MCU módulo Bluetooth Android aplicación

Arduino + JY-MCU módulo Bluetooth Android aplicación

Este es un simple instructivo de cómo crear un vínculo de trabajo entre Android y Arduino a través del módulo MCU JY. Al final de este instructable podrás controlar LED con aplicación para Android.Paso 1: materialesSe necesita:Arduino (cualquier vers
Soportes de chapa simple (de un Volvo S70) de ingeniería inversa

Soportes de chapa simple (de un Volvo S70) de ingeniería inversa

/ *Me decidí a ayudar a un amigo a reemplazar el radiador en su Volvo no hace mucho tiempo. 1 ¡ error! Gatos y soportes son molestias, decidimos saltarlos y contort bajo el parachoques y todo el refrigerante drenaje todavía para llegar a los distinto