Ingénierie inverse = Uzzors2k = Bluecar Android App Amarino trucs trop. (2 / 3 étapes)

Étape 2: BluCar

Quand j’ai commencé à essayer d’utiliser app de Uzzor, j’ai essayé de lire les données bluetooth via mon ordinateur et l’afficher sur un terminal. Il n’a pas fonctionné. Et je ne comprenais pas pourquoi il n’a pas fonctionné pendant un certain temps. Mais ce qui se passait était, mon terminal a été créé uniquement pour lire des caractères ASCII. Et j’ai peu compris pourquoi cela ne fonctionnait tout à l’heure, parce que j’ai figuré dehors que app de Uzzor a seulement envoyé un nombre binaire de 8 bits qui a tenu toutes les données pour marche avant/marche arrière gauche/droite brakelights/phares. Mais même avec ça figuré dehors, je ne pouvais pas vraiment vérifier ma théorie parce que je ne pouvais pas lire les données sortant de mon téléphone, mon ordinateur c’est charabia et ne fonctionnait pas le code que j’écrivais pour lire les données. Et tout à l’heure, je n’étais pas aussi confortable que je suis maintenant avec l’aide de masques de bits.

J’ai aussi pensé que l’arduino par défaut, en utilisant le Serial.read() seulement lire des caractères ASCII. (J’ai eu tort bien sûr)

Mais c’est pourquoi Uzzor est cool : Amarino utilise un tableau de 3 caractères pour envoyer des données d’accéléromètre, qui sont de 3 octets. Ces trois octets ne correspondent qu’à une variable. Un octet pour la marche avant, la seconde pour la direction, le troisième pour ce que vous voulez.
Uzzor envoie un octet, qui contient toutes les instructions pour marche avant, arrière, gauche, droite, phares, brakelights. plutôt cool.

Il s’agit de l’arrangement que j’ai trouvé :

| 7: phares | 6: BrakeLights | 5: inverser | 4: avant | 3:Right | 2: gauche | 1: inutilisés | 0: non utilisés |

Vous stockez le Serial.read() comme un int et créez des masques de bits afin de pouvoir pour lire les bits dont vous avez besoin de contrôler.

Voici un exemple :
Je reçois ce nombre binaire en nombre de Serial.read()
10010100 / / = 148
Les phares sont sur la voiture va avancer et tourner à gauche.
Si je veux lire l’état de marche avant/marche arrière :
créer un masque de bits : 00110000 & 10010100
qui se traduit par 00010000
Et je peux écrire du code pour comprendre que nombre et effectuer une tâche.
Je pourrais faire une mauvaise méthode ou quelque chose, mais comme je le faisais cela a fonctionné pour moi, si vous avez d’autres méthodes, postez-les !
==============================================================
Sorte de hors-sujet
mais la façon Qu'uzzor utilise ses données serial est jolie fricken chic. Comme quand j’ai enfin compris ce qui s’est passe je ressemblait woah!, c’est assez lisse !

Tout ce qu’il fait est bien droit écrire son numéro 8 bit à DDRB (ATTINY, qui dispose de 8 ports, ainsi que chaque port correspond directement à chaque fonction, l’ampoule LED est relié à la septième (huitième broche) plus important port). Ainsi quand il écrit un sommet dans la position de brakelight, elle correspond directement au port qui se connecte à le brakelight conduit.
Numéro de série de 8 bits--> DDRB--> matériel

Il crée également un masque de bits pour ignorer les quatre derniers bits (0 et 1 sont inutilisés 2 et 3 sont de direction) et il fait cela parce que le pilotage est commandé par un servo et faite une autre fonction pour convertir les données en un signal de servo PPM.

Cool hein ? Me croit qu’oui.
--------------------------------------------------------------------------------------------------------------------------------
Quand j’ai commencé à essayer de test/lire les données sérielles d’appli android de Uzzor, j’utilisais l’opérateur de l’équité, qui ne fonctionnait pas. Mais je suppose que c’est mauvaise programmation... Je n’ai pas amélioré mon code, mais ce que je fais est à la recherche pour les plages du parc ball. Effacer les bits dans les données que j’ai envie de lire. Si je voulais lire l’État moteur, j’ai lu les États avant et arrière
0001 0000 //serial données en temps réel
0011 0000 & //mask pour que j’ai ne lu que les données de marche avant/marche arrière
--------------------
0001 0000 //forward

//same 0000 0010 mais pour inverser
0011 0000 &
-------------------
0010 0000

Pour que je puisse soit obtenir valeurs 32 ou 16. (0010 0000 ou 0001 0000)
et j’ai & avec le numéro 48 48 en binaire étant 0011 0000.
Donc la façon dont j’ai écrit mon code était
int x ;
x = Serial.read() ;              Se trouver en sécurité pourrait essayer int x = Serial.read() ;
inverse :
x & = 48 ;         x = série & 0011 0000
Si (x > 24) servo.write(30) ;                Ball park range la commande inverse de cible qui doit être de 32
ElseIf (x 24 < & & x > 15) servo.write(180) ;                       Ball park range le commandement avancé cible qui doit être de 16
d’autre servo.write(90) ;
--------------------------------------------------------------------------------------------------------------
Donc c’est ça, voici un code à utiliser app de Uzzor avec arduino :

#include < Servo.h >
Servo servo ;
Servo-moteur ;
void setup()
{
servo.Attach(9) ;
Motor.Attach(8) ;
Serial.Begin(9600) ;
pinMode (13, sortie) ; Il s’agit de mes « phares »
}

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

Si (Serial.available() > 0)
{//start si 1
x = Serial.read() ; x doit être déclaré un Serial.read() ici pour une raison quelconque
y = x ;
z = x ;
y & = 48 ; bit masques y cherche avant/revers
x & = 12 ; cherche à gauche/droite
z & = 128 ; ne cherche phare aucune lumière de frein encore
Si (x < 6 & & x > 3)
{
servo.Write(80) ; unique de gauche à mon projet
}
ElseIf (x > 6)
{
servo.Write(120) ; droit unique à mon projet
}
d’autre servo.write(105) ; Centre unique pour mon projet

Si (y > 24)
{
Motor.Write(30) ; inversée
}
ElseIf (y < 24 & & y > 15)
{
Motor.Write(150) ; vers l’avant
}
d’autre motor.write(90) ; ne bouge pas

Si (z > 0) digitalWrite (13, HIGH) ; phares
d’autre digitalWrite (13, faible) ;
} //end si 1
} //end principal

------------------------------------------------------------------------------------------------------
Je voudrais savoir si vous avez des conseils ou des améliorations.

Articles Liés

Protocole de contrôle de climatiseur télécommande ingénierie inverse

Protocole de contrôle de climatiseur télécommande ingénierie inverse

Salut, ceci est mon premier espoir instructable, vous l'aimez.Pour entrer dans l'électronique, j'ai choisi un projet domotique : un système me permettant de programme et contrôle les deux unités de climatisation dans mon appartement. Dans ce instruct
Comment inverser l’ingénierie pcb

Comment inverser l’ingénierie pcb

PCB rétro-ingénierie, également appelée clonage de PCB ou de copie de PCB, utilise la technologie de l'ingénierie inverse sur le PCB qui a été conçu et fabriqué par d'autres, c'est d'utiliser des PCB ayant trait aux logiciels pour copier la carte de
Rétro-ingénierie : USB contrôlée hack domotique

Rétro-ingénierie : USB contrôlée hack domotique

pirater un système domotique sans fil pour être contrôlé à l'aide de deux microcontrôleurs AVR de USB !Découvrez la vidéo ! Le système est vraiment plus réactif, mais le navigateur de mon téléphone est lent.Si vous le souhaitez, vous pouvez aussi com
Rétro-ingénierie en direct

Rétro-ingénierie en direct

J'ai commencé en électronique avant l'avènement de l'internet et les composants plus solides à l'État, donc obtenir des fiches techniques et des schémas n'a pas été facile pour moi. Aujourd'hui avec la fabrique faisant ICs personnalisés et écrans à c
Rétro-ingénierie : Ampoule de LED RVB avec télécommande IR

Rétro-ingénierie : Ampoule de LED RVB avec télécommande IR

nous avons acheté 20 de ces ampoules LED RVB pour un parti au travail, mais j'ai été un peu déçu avec les fonctions de décoloration de couleur ils ont fourni. J'ai donc décidé de prendre un ingénieur apart, inverse le protocole infrarouge et voir si
Rétro-ingénierie à émuler les cartouches d’encre pour une imprimante Epson

Rétro-ingénierie à émuler les cartouches d’encre pour une imprimante Epson

pour les deux dernières années, j'ai été l'intention de me construire une imprimante 3D de certaines imprimantes à jet d'encre anciennes que j'avais recueillies au cours des années. Mais pas jusqu'à il y a deux semaines avais j'ai réellement commencé
Très simple de créer le robot d’Arduino bluetooth espion avec télécommande Android app

Très simple de créer le robot d’Arduino bluetooth espion avec télécommande Android app

dans ce projet, vous verrez comment simple mélange de différentes technologies et applications tierces permet de créer un jouet assez complex.Le robot fait deux choses :1. Arduino basé espion robot déplace selon les commandes envoyées de RemoteContro
GaussGun / bobine-pistolet électronique et ingénierie de projet

GaussGun / bobine-pistolet électronique et ingénierie de projet

J'ai décidé de faire le Gold Award de Crest à mon collège, qui est une grande reconnue par l'Association britannique de Science qui donne aux étudiants l'occasion d'approfondir leur connaissance de la science, technologie, ingénierie et mathématiques
PerfEGGct: (Sur) le œuf à la coque parfait d’ingénierie

PerfEGGct: (Sur) le œuf à la coque parfait d’ingénierie

Révolu le temps de chronométrage aveuglément et faire bouillir les œufs et d'être parti avec rien d'autre qu'un mauvais jaune ! Dans le cadre de notre projet d'ingénierie mécatronique dernière année, nous avons développé un appareil qui mesure l'osci
Comment enseigner l’ingénierie orientée projet Kids

Comment enseigner l’ingénierie orientée projet Kids

Si vous aimez ce Instructable, alors je vous encourage à acheter mon livre, Ingénieur de l'élastique. Elle est pleine de projets plus impressionnants et originaux fabriqués à partir de matériel domestique. Vous pouvez le trouver là où les livres sont
Augmented Reality utilisant Unity3D et Vuforia – exportation AR Android App pour l’Augmentation de l’argent

Augmented Reality utilisant Unity3D et Vuforia – exportation AR Android App pour l’Augmentation de l’argent

Pour plus de réalité augmentée tutoriels, veuillez visiter ici :1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.Étape 1: Télécharger tout ci-dessous et suivez les instructions de la vidéoTélécharger # Unity3D (télécharger et l'installer, si vous ne l'avez pas
Commande de porte de Garage Bluetooth Arduino avec capteurs et personnalisable Android App

Commande de porte de Garage Bluetooth Arduino avec capteurs et personnalisable Android App

Utilisez un arduino pour activer le relais pour l'ouverture des portes de garage et serrures électriques.Une application Android personnalisable, se connecte à l'arduino via mot de passe bluetooth appairage.Un module de hc-05 bluetooth reçoit des com
Arduino - voix de BLUETOOTH & contrôle résidence isolée Android APP

Arduino - voix de BLUETOOTH & contrôle résidence isolée Android APP

Bonjour tout le monde! Aujourd'hui, que j'ai fait un soft de contrôle et commande à distance voix combinée. À mon avis c'est le meilleur que j'ai fait et je vais utiliser dans ma maison moi-même, consultez également les autres apps que j'ai fait.J'ai
Projet 1.1 : Introduction à l’ingénierie numérique et FPGA conseils

Projet 1.1 : Introduction à l’ingénierie numérique et FPGA conseils

C'est la première d'une série de projets en utilisant des matériaux de Digilent qui sont créés pour EE214 à la Washington State University. Toutefois, nous avons décidé que nous avons voulu rendre plus accessible au grand public, donc je suis leur cr