Table of Contents

Autor

maria_irina.sandu@stud.acs.upb.ro

Manusa care controleaza o masinuta prin Wi-Fi

1. Descriere generala

Proiectul meu va consta intr-o manusa pe care va sta placuta si cu care voi controla o masinuta de jucarie prin Wi-Fi.
Masinuta care va raspunde la comenzi va fi realizata de George Diaconu.
Controlul masinutei se va face cu ajutorul unui accelerometru: cand deplasez placuta stanga/dreapta/sus/jos, aceasta va
inregistra datele de la accelerometru si va calcula o comanda de miscare pe care o va trimite catre masinuta prin Wi-Fi. O alta functionalitate va fi cea de a primi date de la masinuta legate de distanta fata de obiectele din jur. Daca masinuta
este pe cale sa se loveasca de un obiect, masinuta se va opri, va trimite un mesaj catre manusa care va genera un semnal
audio pentru a semnaliza acest lucru. De asemenea, un led de pe manusa va lumina cu o intensitate proportionala cu distanta
pana la cel mai apropiat obiect de pe masinuta, distanta maxima fiind determinata de capabilitatile senzorului de pe masinuta


2. Implementare Hardware

2.1 Componente de baza

Microcontroller : ATMEGA324A-PU
USB-B Conector USB B Cvilux
Oscilator Quartz 16MHz - 16MHZ QMIM016
Dioda Zener
LED EL333 - LED 3mm Rosu
K1X10 WSL040 - 1×40
K2X10 - 2×10
PUSHBUTTON - Tasta
Rezistente - 100R, 470R, 1K5, 10K - 0,25W
Condensator ceramic - 100nF
Condensator ceramic - 15pF
Soclu Microcontroller - DIP40 dil40emf
Condensator electrolitic 10V - 100uF
polyfuse

2.2 Componente pentru alimentare la 3.3 volti

Regulator tensiune - LP2950
Condensator electrolitic 16V - 10uF

2.3 Componente specifice proiectului

Modul WiFi - ESP8266 ESP-01
Modul Accelerometru cu 3 axe - ADXL345

2.4 Schema electrica

3. Implementare Software

3.1 Functionalitate

Citesc datele raw de la accelerometru folosind protocolul I2C. Odata la 150 de masuratori calculez comanda curenta in functie
de inclinatiile primite pe fiecare axa. Odata calculata aceasta comanda, daca este diferita de comanda calculata anterior, o
trimit catre masinuta prin USART.

4. Rezultate obtinute

Dupa o saptamana lipsita de somn, am reusit sa interpretez cat de cat corect datele de la accelerometru, sa calculez o comanda
si sa trimit aceasta comanda prin USART catre masinuta. Pentru debugging am adaugat led-uri care sa imi arate comanda data in
momentul respectiv de catre masinuta.
manusa.jpg

5. Concluzii

Desi nu este un proiect spectaculos consider ca am invatat multe lucruri in urma lui, in special pentru ca experienta mea de
programare hardware se rezuma la a aprinde un led pe Arduino. Pornind de la a citi un datasheet la a intelege anumite fenomene
ce pot aparea intr-un circuit real.
Problema majora pe care am intampinat-o in implementare a fost faptul ca modulul de Wi-Fi se reseta singur odata la cateva secunde,
facand imposibila o comunicatie coerenta. A trebuit sa renuntam la Wi-Fi si sa trimitem prin USART.

6. Download

https://github.com/SanduIrina/JediGlove

7. Bibliografie

https://www.sparkfun.com/datasheets/Sensors/Accelerometer/ADXL345.pdf
http://davidegironi.blogspot.com/2012/10/avr-atmega-adxl345-accelerometer.html#.XOhRSyZS-V4