<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ocitavanje pozicije Archives - Automatika.rs</title>
	<atom:link href="https://www.automatika.rs/tag/ocitavanje-pozicije/feed" rel="self" type="application/rss+xml" />
	<link>https://www.automatika.rs/tag/ocitavanje-pozicije</link>
	<description>Portal za inženjere</description>
	<lastBuildDate>Sat, 30 Apr 2016 22:23:17 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9</generator>
	<item>
		<title>Očitavanje pozicije PS/2 miša pomoću AVR mikrokontrolera</title>
		<link>https://www.automatika.rs/projekti/svi-projekti/ocitavanje-pozicije-ps2-misa-pomocu-avr-mikrokontrolera.html</link>
					<comments>https://www.automatika.rs/projekti/svi-projekti/ocitavanje-pozicije-ps2-misa-pomocu-avr-mikrokontrolera.html#respond</comments>
		
		<dc:creator><![CDATA[Miloš Jurošević]]></dc:creator>
		<pubDate>Tue, 04 Sep 2012 22:00:00 +0000</pubDate>
				<category><![CDATA[Svi projekti]]></category>
		<category><![CDATA[avr mikrokontroler]]></category>
		<category><![CDATA[ocitavanje pozicije]]></category>
		<category><![CDATA[ps/2 mis]]></category>
		<guid isPermaLink="false"></guid>

					<description><![CDATA[<p>U ovom projektu prikazaćemo vam kako da iščitavate poziciju PS/2 miša pomoću AVR mikrokontrolera. Kompletan kod je komentarisan i dostupan za download na kraju teksta. Kod je pisan za ATmega8535, ali se lako može prilagoditi drugim AVR kontrolerima. Sa svim interakcijama miša se upravlja iz while(1) petlje. Veoma interesantna primena ovog projekta bio bi pokušaj da [&#8230;]</p>
<p>The post <a href="https://www.automatika.rs/projekti/svi-projekti/ocitavanje-pozicije-ps2-misa-pomocu-avr-mikrokontrolera.html">Očitavanje pozicije PS/2 miša pomoću AVR mikrokontrolera</a> appeared first on <a href="https://www.automatika.rs">Automatika.rs</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div style="text-align: justify;"><span style="text-align: justify;"><img decoding="async" class=" alignleft size-full wp-image-3403" style="margin-top: 5px; margin-right: 5px; border: 1px solid #000000; float: left;" src="http://automatika.rs/wp-content/uploads/2012/09/naslovna_ocitavanje_pozicije_ps2_misa_pomocu_AVR_mikrokontrolera_elektronika_projekati_automatika.rs.jpg" alt="naslovna ocitavanje_pozicije_ps2_misa_pomocu_AVR_mikrokontrolera_elektronika_projekati_automatika.rs" width="100" height="100" />U ovom projektu prikazaćemo vam kako da iščitavate poziciju PS/2 miša pomoću AVR mikrokontrolera. Kompletan kod je komentarisan i dostupan za download na kraju teksta. Kod je pisan za ATmega8535, ali se lako može prilagoditi drugim AVR kontrolerima. Sa svim interakcijama miša se upravlja iz while(1) petlje. Veoma interesantna primena ovog projekta bio bi pokušaj da se napravi navigacija robota upotrebom  jednostavnog i jeftinog PS/2 ili USB optičkog miša.</span></div>
<p><span id="more-745"></span></p>
<p style="text-align: justify;"> Naravno, miš uvek možete koristiti na konvencionalne načine za pozicioniranje u meniju vašeg uređaja i sl. U ovom primeru sve registre miša iščitavamo koristeći funkciju loop1(). To su registri:</p>
<div>
<ul style="text-align: justify;">
<li>mstat registar</li>
<li>x buf registar i</li>
<li>y buf registar</li>
</ul>
<p>Kako biste mogli da koristite ovaj primer, postavite pullup otpornike na sledeće pinove mikrokontrolera:</p>
<ul>
<li style="text-align: justify;">CLK PORTD.2</li>
<li>DATA PORTD.3</li>
</ul>
<p>Zatim ove pinove, kao i napajanje Vcc (+5V) i GND povežite sa konektorom miša na način prikazan na slici 1.</p>
<div><img fetchpriority="high" decoding="async" class=" size-full wp-image-3404" style="margin: 5px auto; vertical-align: middle; display: block;" src="http://automatika.rs/wp-content/uploads/2012/09/slika1_ocitavanje_pozicije_ps2_misa_pomocu_AVR_mikrokontrolera_elektronika_projekati_automatika.rs.jpg" alt="slika1 ocitavanje_pozicije_ps2_misa_pomocu_AVR_mikrokontrolera_elektronika_projekati_automatika.rs" width="451" height="120" srcset="https://www.automatika.rs/wp-content/uploads/2012/09/slika1_ocitavanje_pozicije_ps2_misa_pomocu_AVR_mikrokontrolera_elektronika_projekati_automatika.rs.jpg 451w, https://www.automatika.rs/wp-content/uploads/2012/09/slika1_ocitavanje_pozicije_ps2_misa_pomocu_AVR_mikrokontrolera_elektronika_projekati_automatika.rs-300x80.jpg 300w" sizes="(max-width: 451px) 100vw, 451px" /></div>
<div style="text-align: center;">Slika 1. Konektor PS/2.</div>
<div style="text-align: justify;">
Standardni PS/2 miševi šalju informacije o kretanju i pritisnutim tasterima kroz paket od tri bajta, čiji šematski prikaz je dat na slici 2.</div>
<div><img decoding="async" class=" size-full wp-image-3405" style="margin: 5px auto; vertical-align: middle; display: block;" src="http://automatika.rs/wp-content/uploads/2012/09/slika2_ocitavanje_pozicije_ps2_misa_pomocu_AVR_mikrokontrolera_elektronika_projekati_automatika.rs.jpg" alt="slika2 ocitavanje_pozicije_ps2_misa_pomocu_AVR_mikrokontrolera_elektronika_projekati_automatika.rs" width="542" height="133" srcset="https://www.automatika.rs/wp-content/uploads/2012/09/slika2_ocitavanje_pozicije_ps2_misa_pomocu_AVR_mikrokontrolera_elektronika_projekati_automatika.rs.jpg 542w, https://www.automatika.rs/wp-content/uploads/2012/09/slika2_ocitavanje_pozicije_ps2_misa_pomocu_AVR_mikrokontrolera_elektronika_projekati_automatika.rs-300x74.jpg 300w" sizes="(max-width: 542px) 100vw, 542px" /></div>
<div style="text-align: center;">Slika 2. Šematski prikaz paketa podataka koje miš šalje host uređaju.</div>
<div style="text-align: justify;">
Kompletan projekat sa source kodom, pisan u C jeziku, kompajliran u CodeVision for AVR kompajleru možete preuzeti sa linka na kraju teksta. Ovde ćemo dati neke komentare samog koda. Inicijalizacija miša se vrši pozivanjem funkcije mouse_init(). Kao što smo već napomenuli, funkcija loop1() čita sve relevantne registre miša. Nakon toga dolazi while(1) petlja u kojoj se sve ponavlja. Trenutna pozicija miša se računa jednostavnim sumiranjem podataka dobijenih nakon svakog iščitavanja registra relativnog pomeranja.</div>
<div style="text-align: justify;">
Prvo ćemo objasniti šta miš detektuje. Koristili smo optički miš. Svakki miš ima svoju rezoluciju. Ova rezolucija predstavlja broj tačaka koje će miš izmeriti pri pomeranju od jednog inča. Na primer, miševi sa rezolucijom 1200dpi će poslati približno vrednost 1200 kada ga pomerimo za jedan inč.</div>
<div style="text-align: justify;">
U nastavku ćemo prikazati rezultate testa. Testirana su tri različita miša. Iznenađujuće, sva tri su reagovala na drugačiji način.</div>
<div style="text-align: justify;">
Prvi miš je davao informaciju o kretanju sa rezolucijom 1, što je značilo da u zavisnosti od pravca kretanja on daje vrednost +127 ili -127 po očitavanju (za obe ose, x i y). Ovaj miš se ponašao kao da se kod njega stalno dešavao overflow. Naravno, ovo je vrlo nezgodno jer bismo morali izuzetno često da iščitavamo podatke što bi veoma opteretilo mikrokontroer. Snimak rada ovog miša prikazan je na sledećem video klipu.</div>
<div style="text-align: justify;"></div>
<div style="text-align: justify;">
Drugi miš koji je korišćen je radio kao što se i očekivalo. On je davao tačan broj tačaka pomeraja. To znači da smo morali da napravimo jedno očitavanje pre nego što se miš pomeri za 127 tačaka. Posle toga, dolazi do overflow-a pa gubimo apsolutnu poziciju miša. Na ovaj način je moguće iščitavati miš mikrokontrolerom. Rad ovog miša prikazan je na sledećem klipu.</div>
<div style="text-align: justify;"></div>
<div style="text-align: justify;"><span style="text-align: justify;">{youtube}AdLm9-k7qtw{/youtube}</span></div>
<div style="text-align: justify;">
Treći miš se pokazao kao najbolji za praćenje apsolutnog pozicioniranja pomoću mikrokontrolera. Ovaj miš zapravo ima interni bafer koji pamti tačan broj tačaka za koliko se miš pomerio, čak iako je broj tačaka pomeraja veći od 127. Pri očitavanju, on daje tačan broj tačaka pomeraja ako je on manji od 127. Ako je pomeraj između dva očitavanja veći od 127 on prikazuje broj 127 i oduzima 127 od zapamćenog pomeraja. Ovo znači da ako je proj tačaka pomeraja bio npr. 264, u naredna dva očitavanja ovaj miš će poslati 127, a u trećem očitavanju 10 (127+127+10=264). Ovo je pokazano na video klipu koji sledi.</div>
<div style="text-align: justify;"></div>
<div style="text-align: justify;"><span style="text-align: justify;">{youtube}YDmk5CibuVE</span><span style="text-align: justify;">{/youtube}</span></div>
<div style="text-align: justify;">
Kompletan Codevision projekat sa source kodom pisanim u C-u za AVR mikrokontroler ATmega8535 možete preuzeti <a class="wf_file" href="http://automatika.rs/wp-content/uploads/2012/09/Ocitavanje_pozicije_ps2_misa_pomocu_AVR_mikrokontrolera.zip" target="_blank">ovde</a>.</div>
<div style="text-align: justify;">
Izvor: <strong>Electronics-base.com</p>
<p></strong></div>
</div>
<p>The post <a href="https://www.automatika.rs/projekti/svi-projekti/ocitavanje-pozicije-ps2-misa-pomocu-avr-mikrokontrolera.html">Očitavanje pozicije PS/2 miša pomoću AVR mikrokontrolera</a> appeared first on <a href="https://www.automatika.rs">Automatika.rs</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.automatika.rs/projekti/svi-projekti/ocitavanje-pozicije-ps2-misa-pomocu-avr-mikrokontrolera.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
