Ionuţ BOICU (24976) - UltraSonic Motion

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

Proiectul foloseste ultrasunete pentru a 'simti' obiectele din jur.

In principiu este dedicat persoanelor cu dezabilitati de vedere, dar poate fi considerat si un joc pentru copii.

Descriere generală

Primesc informatii de la Sensorul de ultrasunete si prelucrez aceasta informatie pentru a trimite impuls motorului de vibratie.

Hardware Design

Lista piese:

1. Componente de baza

  • ATMega 324 PA-PU
  • USB-B: USB B-PCB-R
  • Quartz 16 MHz: Q16.00 MHz HC-49S
  • 2 diode Zener
  • 2 leduri: CLL-50221
  • condensatoare: 1 x 100 uF, 3 x 100 nF, 2 x 15 pF
  • Soclu microcontroller: LC40
  • Rezistente: 10K, 1K5, 470R, 100R
  • 2 pushbuttons: TS-06E
  • Pin header: K2X10, K1X10

2. Componente specifice

  • 2-3 UltraSonic Module HC-SR04
  • 2-3 Coin Flat Vibrating Micro Motor DC 3V 8mm
  • Fire female-female

Software Design

Idee: În main-ul programului se pregătesc pinii, timerele, prescaler setat la 64 pentru a putea număra până la 400cm (ceasul senzorului de ultrasunete are 4Mhz), activez întreruperi pentru schimbare bit pentru pinul ECHO al senzorului, si activez si întrerupere pentru overflow.

Apoi într-o bucla infinită dau semnal HIGH la pinul Trig(trigger) al senzorului, aștept 15 us și apoi setez pinul ca LOW. În acest timp dacă semnalul se întoarce acesta va provoca o întrerupere pe pinul PB0 (ECHO), ceea ce va semnala că s-a întors semnalul. Daca s-a primit semnal de întoarcere se trimite un semnal de high pe pinul PC0 pentru a activa un led/motor de vibrație.

Mediu de dezvoltare: AVR STUDIO

Cod: Se poate găsii codul la resurse

Rezultate Obţinute

Rezultatele nu au fost cele așteptate, deoarece primul senzor nu funcționat corespunzător. L-am testat și pe arduino și nu a funcționat, am încercat să fac polling pe pinul care trebuia să realizeze întreruperea și să se schimbe și nu a funcționat.

Codul l-am testat folosind 1 buton și un led în locul pinilor Trig și Echo, pe Trig aveam butonul și la apăsarea acestuia declanșam ledul, la declanșarea ledului așteptam întreruperea de schimbare a pinului. Și a funcționat.

Senzor 2:

Am cumpărat un al doilea senzor aproape de deadline, iar cu acesta am făcut polling și am observat ca primesc date pe pinul de Receive. Aș putea spune ca în final a mers.

Concluzii

A fost o experiență unică, atât căutarea de piese necesare proiectului cât și asamblarea lor. Scrierea codului a fost partea ușoară atâta timp cat piesele erau potrivite conform documentației.

Download

Bibliografie/Resurse

Resurse Hardware

Resurse SoftWare

  • AVR
  • Bootloader
pm/prj2016/amocanu/65457500.txt · Last modified: 2021/04/14 17:07 (external edit)
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