This is an old revision of the document!


Lemme Paint

Introducere

  • Acest proiect incearca sa detecteze coordonatele un obiect intr-un plan 2D pe care sa le foloseasca sa deseneze pixeli pe un ecran.
  • De ce? Mi se pare interesant sa poti desena pe un ecran miscand un obiect in aer.
  • Proiectul nu presupune doar legarea a doua rezistente in paralel in serie cu un led, ci este un pic mai greu hardware din cauza senzorilor.

Descriere generală

  • Din cei 6 senzori 3 vor fi plasati pe axa Ox, iar 3 2 pe axa Oy. Cu ei se va determina distanta de la axe la obiect. Cu aceasta distanta se va calcula ce pixel se va aprinde pe ecran.
  • Butonul este pentru clear screen sau pentru modificarea culorii. TBD
  • Pe ecran se va forma un desen care se va updata live in functie de unde se detecteaza obiectul in plan.

Schema bloc

Hardware Design

Piese

Denumire Cantitate
Arduino Uno 1
HC-SR04 6 5
LCD Display st7735 1
Butoane 1
Fire (senzori) 8 x cabluri (3 fire) F-F + 4 fire M-F + 12 fire M-M
Fire (ecran) 8 fire M-M

Software Design

  • Mediu de dezvoltare folosut - Arduino IDE
  • Librarii aditionale
    • SPI.h - pentru comunicarea cu ecranul
    • TFT.h - pentru comunicarea cu ecarnul
    • PinChangeInt.h - pentru abstractizarea folosirii intreruperii

Implementare

  • Sunt 5 senzori HC-SR04, un ecran LCD ST7735 si un buton care trebuie controlati prin software
  • Ecranul:
    • Folosesc librariile SPI.h si TFT.h pentru a realiza comunicarea cu ecranul
    • De aici ma folosesc de functiile de colorare individuala de pixel/ desenare de cercuri
  • Senzorii:
    • Senzorii au pe langa VCC is GND alti doi pini: TRIG si ECHO. Pentru a efectua o masurtoare pe un sezor se trimite tensiune HIGH pe pinul de TRIG timp de 10µs, iar apoi se masoara timpul cat tensiunea pe pinul ECHO este HIGH. Acel timp este timpul necesar sunetului sa ajunga la obiect si inapoi. Stiind viteza sunetului si timpul se determina distanta.
    • O singura astfel de masuratoare la distante mici (pana in 40 cm) dureaza foarte putin (ordin de ms). Astfel se pot efectua foarte multe masuratori pana a ajunge la un rezultat concret.
    • La o astefel de viteza de masurare trebuie filtrat inputul de la senzori pentur ca e foarte noisy.
    • Primul filtru pentru eliminarea zgomotului este efectuarea a 5 masuratori consecutive si de a alege mediana
      • Se efectuaza cate o masuratoare bruta cu toti cei 5 senzori, iar apoi se trece la urmatorul pas unde se efectueaza masuratori brute cu fiecare senzor
      • Cand se efectueaza 5 masuratori brute, fiecare vector care contine cele 5 masuratori brute ale fiecarui senzor sunt sortate folosind o sortare eficienta inspirata de aici

Rezultate obtinute

Concluzii

Download

Jurnal

  • 26.04
    • alegere proiect
    • creare draft initial de wiki
    • lista de piese
    • comandarea pieselor
  • 05.05
    • testarea pieselor
    • ecranul si cei 6 senzori ultrasonici merg
  • 20.05
    • combinarea unui singur senzor cu ecranul (cu datele primite de la senzor trasam o linie la o anumita pozitie fata de o margine a ecranului)
  • 22.05
    • documentarea despre folosirea mai multor senzori in acelasi timp
    • adaugarea a inca unui senzor la testul precedent → doua linii pe ecran: verde si rosu
    • introducerea unei metode e filtrare a zgomotului - mediana din 5 masuratori consecutive
  • 24.05
    • am luat niste cutii de carton de la lidl in care sa dau gauri
    • am nevoie de cutii pentru a avea un fundal la senzori ca daca nu vad fundal drept masoara garbage
    • pentru conectarea unui senzor este nevoie de 4 fire cu cel putin un capat female. Nu aveam atatea fire pentru toate cele 6 5.
    • deasemenea, am renuntat la un senzor
    • ediate wiki
  • 27.05
    • am descoperit ca doar filtrul cu mediana pentur fiecare masuratoare nu este suficient de stabil pentru proiectul final
    • research kalman filter :(
  • 28.05
    • adaugarea filtrului kalman pentur fiecare senzor in parte (pe langa filtrul cu mediana)
    • stabilitarea rezultatului final perechea de coordonate (x, y) masurata a fost imbunatatita foarte mult
  • 29.05
    • adaugarea unui al doilea filtru kalman, pe perechea de coordonate (x, y)
    • stabilitate +++
  • 30.05
    • editare wiki
    • poze, etc

Bibliografie/Resurse

  • Filtrarea masuratorilor brute folosind mediana a 5 masuratori consecutive: link
  • Implementare minimalista a unui filtru Kalman pentru un sistem cu o variabila o variabila: link
pm/prj2021/agrigore/lemmepaint.1622382373.txt.gz · Last modified: 2021/05/30 16:46 by anton_fabian.patras
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0