Z Mouse
Caracteristici
mouse cu impact 0 la suprafata(nu are nevoie de o suprafata de contact)
este foarte usor
usor de manevrat
se ataseaza la o mana
are dimensiuni reduse
are autonomie mare
se incarca usor(se conecteaza la partea de receptie si procesare)
mod de sleep in care consuma foarte putin
are trei butoane
Moduri de folosire:
confera miscare bidimensionala(in plan)
prin inclinare ofera scroll-ul de la mouse-ul obisnuit
se poate face scroll la 360 grade sus-jos si stanga-dreapta
are o posibilitate de scoll configurabila in plus fata de scroll-ul obisnuit
confera miscarea pe trei axe
este sensibil la rotatia in jurul celor trei axe
Aplicatii
Jocuri 3D:
miscarea obiectelor cu sase grade de libertate
posibilitate de vizualizare cu miscarea in sase gra de libertate a camerei
cu ajutorul a doua dispozitive se poate face vizualizare si manipulare de obiecte in acelasi timp
se poate folosi la simulatoare, de exemplu simulator de ping-pong, simulator de snooker, etc.
Proictare grafica:
faciliteaza o mai buna miscare in spatiul de lucru
face mai usoara asezarea obiectelor in scena cu ajutorul vizualizarii 3D
Odata cu aparitia jocurilor 3D a aparut si nevoia de miscare in spatiul in interiorul jocurilor. Prima generatie a acestor jocuri avea o reprezentare 3D dar scenele erau calculate cu ajutorul procesorului de semnal nu cu cel de pe placa grafica. Mai apoi au aparut jocurile care foloseau si acceleratorul grafic si care randau scenele in 3D si nu software.
Marind puterea de calcul s-a putut extinde campul de vizualizare a obiectelor in interiorul jocului ajungandu-se la o vizualizare similara lumii in care traim. Odata realizata vizualizarea 3D s-a dorit sa se realizeze si miscarea obiectelor de catre utilizator, in spatiul creat.
Solutia gasita la aceasta problema a fost pana acum o solutie hibrida care are la baza mouse-ul obisnuit(pe doua axe). Folosirea acestui mouse a facilitat o emulare a miscarii 2D in spatiul 3D. De exemplu intr-un joc in care obiectele pot fi miscate cu o mana care este comadata de mouse-ul 2D, miscarea mainii nu se poate realiza in spatiul cu trei dimensiuni, ea miscandu-se doar intr-un plan, iar mana controlata fiind "aderenta" la acel plan(la o anumita distanta de el). Astfel, comandarea mainii se facea imprecis din cauza imposibilitatii de a determina miscarea exacta a acesteia.
Aici intervine conceptul de mouse 3D. Acest mouse faciliteaza miscarea obiectelor in trei dimensiuni. Ea este identica cu miscarea in lumea in care traim. Fata de un observator, miscarea in planul perpendicular pe axa de vizualizare este o miscare in planul XY, iar miscarea pe axa Z se realizeaza prin micsorarea si marirea dimensiunilor obiectului vizualizat.
Dupa proiectarea dispozitivului cu un senzor mobil, datorita constrangerilor de proiectare, s-a ajuns la ceva neasteptat, si anume: dintr-un mouse care se dorea a determina pozitia in spatiu, s-a ajuns la unul care sa masoare si pozitia si rotatia lui in spatiu.
Aceasta a fost foarte avantajoasa deoarece in aceasta configuratie, cu ajutorul acestui mouse se poate aduce o imbunatatire radicala categoriei de jocuri pe calculator numita "simulatoare".
Astfel, acest mouse este iesirea din monotonia 2D impusa de mouse-ul obisnuit. Acum aveti mobilitate sporita prin 6 grade de libertate.
Pentru realizarea practica a acesti proiect s-a cautat solutia optima care sa satisfaca cerintele impuse de un astfel de dispozitiv. Primele idei implicau camp magnetic, unde infrarosii sau ultrasunete, dar aceste solutii nu erau eficiente din cauza faptului ca nu se putea stabili pozitia exacta a punctului mobil in spatiu si puteau fi influientate de campuri exterioare din apropiere care puteau altera masuratorile efectuate.
O solutie combinata din cele de mai sus, de asemenea nu era acceptabila deoarece pretul de cost ar fi fost mult prea ridicat. Toate aceste solutii aveau la baza un senzori imobili care urmareau pozitia unui obiect detectat in spatiu. Toate aceste solutii aveau o sumedenie de probleme, ca de exemplu: precizie scazuta, cost ridicat, mobilitate scazuta si altele.
Rezolvarea acestor probleme a fost posibila prin plasarea senzorului in obiectul mobil. Bineinteles ca si aceasta solutie are neajunsuri dar de acelea vor fi reduse prin proiectarea corespunzatoare a dispozitivului.
Senzorul potrivit este accelerometrul. Avantajele acestui senzor sunt urmatoarele:
dimensiuni reduse, de ordinul milimetrilor
precizie mare de masurare
consum de curent scazut
tensiune mica de alimentare
acelasi senzor poate sa masoare miscarea pe doua sau trei axe
pret de cost mic
greutate foarte mica
Folosirea sonzorului in obiectul mobil a fortat aparitia a doua module de lucru.
Hardware design
Colectare
Modulul de colectare se compune din senzorii necesari colectarii datelor.
Accelerometrul triaxial MMA7260Q de la Freescale Semiconductors s-a dovedit a fi cel mai potrivit. Dezavantajul acestui senzor, ca si la celelalte accelerometre este acela ca, depinzand de pozitia lor fata de pamant, acestea furnizeaza pe langa acceleratia imprimata asupra lor, si acceleratia gravitationala insumata cu aceasta.
Pentru a extrage vectorul acceleratie gravitationala s-a folosit un senzor de determinare a ratei angulare, adica a vitezei unghiulare. Acest senzor furnizeaza astfel prin calcule unghiul de rotatie in jurul axei X si in jurul axei Y.
Avand aceasta combinatie de date, se poate stabili pozitia in spatiu si unghiul de rotatie ale mouse-ului.
Procesare
Modulul de procesare are in componenta o unitate de procesare si o unitate de receptie.
Unitate de procesare este microcontroller-ul ATmega8 in capsula PDIP. Tensiunea de lucru a microcontroller-ului este 5V.Microcontroller-ul dispune de un convertor analog-digital de 8 canale cu rezolutie de 10 biti. Calculul facut in functie de rata semnal-zgomot a demonstrat ca un convertor cu rezolutie 10 biti este optim.
Tensiunea maxima de iesire U, rata zgomotului Uzg RMS.
U=2.85V
Uzg=4,7mV
Se fac calculele:
Numarul obtinut este numarul minim de quantizare cu care se poate prelucra semnalul generat de senzor. Numarul de cuantizare ales este 1024, corespunzator convertorului analog digital de 10 biti, disponibil incorporat in microcontroller.
Pentru transmiterea datelor la calculator s-a ales transmiterea pe interfata RS232 deoarece microcontroller-ul are implementata aceasta interfata.
Schema de principiu
Accelerometrul
MMA7260Q este un accelerometru triaxial capacitiv contruit in microtehnologie, care este proiectat cu un filtru trece jos unipolar, compensare de temperatura si o intrare g-select care permite selectarea a patru senzitivitati de lucru. Offset-ul si frecventa de taiere a filtrului sunt setate din fabricatie. Include o intrare de sleep mode care face folosirea lui ideala in aplicatii mobile alimentate de la baterie. Senzorul genereaza la iesire o tensiune in raport cu acceleratia lui.
Schema bloc
Acceleratia in repaus perceputa de accelerometru
Giroscopul
IDG-300 este un senzor angular dubluaxial(giroscop). Modatitatea de masurare a ratei angulare(vitezei unghiulare) se face cu ajutorul fortei Coriolis. Un element este oscilant in camp electrostatic si este masurata deplasarea lui sub influienta fortei Coriolis in miscarea de rotatie aplicata in jurul unei axe. Senzorul genereaza la iesire o tensiune pozitiva in raport cu viteza lui unghiulara, dupa cum se poate vedea in figura.
Schema bloc
Mouse-ul va avea o mobilitate mare, putandu-se misca cu 6 grade de libertate:
miscarea dupa directiile x,y,z
rotatia in raport cu axele dupa trei unghiuri
Datele furnizate de accelerometru sunt componentele acceleratiilor pe cele trei axe atasate senzorului. Sistemul de axe de coordonate atasat accelerometrului este mobil in raport cu sistemul de coordonate fix al pamantului, care se va considera absolut. Fata de acesta se calculeaza acceleratiile si fata de acesta se va stabili directia de miscare a corpului mobil. Cu ajutorul unghiurilor Euler se va stabili miscarea in sitemul de referinta absolut.
Data fiind cunoasterea unghiurilor de rotatie a sistemului mobil, putem deduce faptul ca acceleratia gravitationala va fi calculata astfel incat in sistemul fix va fi intotdeauna reprezentata ca un vector de modul aproximativ 9,81 m/s2 si de semn negativ, adica va arata astfel:
Acceleratia reala a corpului mobil va fi reprezentata in descompunere pe axe cu ajutorul vectorilor . Stiind ca directia lui va ramane acceasi, ea se poate fi scazuta de pe aceasta axa si astfel se obtin componentele acceleratiei reale, care vor fi folosite in continuare la calcule.
Calculul acestor acceleratii se face cu formula corespunzatoare unghiurilor Euler:
- sunt componentele acceleratiilor masurate in sistemul mobil.
Pentru avea disponibile si unghiurile, acestea se vor calcula cu formula:
Toate aceste date pot fi trimise catre interfata de comunicare si folosite pentru diferitele aplicatii.
Schema logica
Codul programului
This program was produced by the
CodeWizardAVR V1.23.5a Standard
Automatic Program Generator
© Copyright 1998-2002 HP InfoTech s.r.l.
https://www.hpinfotech.ro
e-mail:[email protected] , [email protected]
Project : Zmouse
Version : 1.0.1
Date :
Author : Branescu Andrei
Company : Aleator Designs
Comments:
Chip type : ATmega8
Program type : Application
Clock frequency : 16.000000 MHz
Memory model : Small
Internal SRAM size : 1024
External SRAM size : 0
Data Stack size : 256
#include <mega8.h>
// Standard Input/Output functions
#include <stdio.h>
#include <math.h>
#define ADC_VREF_TYPE 0x00
// Read the AD conversion result
unsigned int read_adc(unsigned char adc_input)
// Declare your global variables here
void main(void)
Bibliografie
https://instruct1.cit.cornell.edu
https://www.electronic-engineering.ch/
Sursa de tensiune continua de 5 V/ 1 A realizata cu ircuitul integrat E 7805, pentru alimentarea circuitelor integrate logice.
Oscilatoare astabile realizate cu circuite integrate logice, utilizate in ceasurile interne ale microsistemelor.
Codificator pentru afisare pe 7 segmente, utilizat in panourile stradale.
Convertor numeric-analogic cu retea de rezistente R-2R, utilizat in comanda regulatoarelor.
Convertor analog-numeric cu aproximatii successive, cu multiplexarea cailor, utilizat la interfatarea traductoarelor analogice.
Numarator in inel si Johnson, realizate cu register de deplasare, pentru generarea secventelor decod, necesare la alimentarea motoarelor pas cu pas.
Utilizarea circuitului integrat βA 145 pentru comanda pe grila a redresoarelor comandate, utilizate la variatia turatiei motoarelor de cc.
Proiectarea unei scheme cu releu de timp electronic pentru cuplarea stea- triunghi a motoarelor asincrone trifazate.
Redresor trifazat comandat cu tiristoare pentru excitarea motoarelor sincrone de mare putere.
|