<?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>kutato.mke.hu &#187; Robotika</title>
	<atom:link href="http://kutato.mke.hu/tag/robotika/feed/" rel="self" type="application/rss+xml" />
	<link>http://kutato.mke.hu</link>
	<description>a Magyar Képzőművészeti Egyetem kutatási programjainak weblogja</description>
	<lastBuildDate>Mon, 19 Oct 2020 02:20:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>ROBOTIKA 1 jegyzet (a kiegészítéseket frissítem folymatosan)</title>
		<link>http://kutato.mke.hu/2012/03/05/robotika-1-jegyzet/</link>
		<comments>http://kutato.mke.hu/2012/03/05/robotika-1-jegyzet/#comments</comments>
		<pubDate>Mon, 05 Mar 2012 15:50:41 +0000</pubDate>
		<dc:creator>ea</dc:creator>
				<category><![CDATA[extrakurrikuláris képzések]]></category>
		<category><![CDATA[hardverelemek integrációja]]></category>
		<category><![CDATA[Harsányi Réka]]></category>
		<category><![CDATA[Robotika]]></category>
		<category><![CDATA[UML]]></category>

		<guid isPermaLink="false">http://kutato.mke.hu/?p=152</guid>
		<description><![CDATA[program flow diagram (folyamatábra) (ez állhat elágazásokból és ciklusokból) Elágazások (szelekció): kétirányú (if, else) vagy sokirányú elágazás lehet (switch? igaz/hamis vizsgálat &#8211; megvizsgáljuk a feltételt hogy melyik állapotnak fele meg ciklusok: előlteszetelő (pl. for, ami egy ún. számláló ciklus) hátulteszetelő (while) UML Unified Modeling Language (ez egy folymatábra rendszer?) Egy program részei: változók elágazások ciklusok [...]]]></description>
			<content:encoded><![CDATA[<p>program flow diagram (folyamatábra) (ez állhat elágazásokból és ciklusokból)</p>
<p>Elágazások (szelekció): kétirányú (if, else) vagy sokirányú elágazás lehet (switch?</p>
<p>igaz/hamis vizsgálat &#8211; megvizsgáljuk a feltételt hogy melyik állapotnak fele meg</p>
<p>ciklusok:</p>
<p>előlteszetelő (pl. for, ami egy ún. számláló ciklus)</p>
<p>hátulteszetelő (while)</p>
<p><a href="http://hu.wikipedia.org/wiki/Unified_Modeling_Language" target="_blank">UML</a> Unified Modeling Language (ez egy folymatábra rendszer?)</p>
<p>Egy program részei:</p>
<p>változók</p>
<p>elágazások</p>
<p>ciklusok</p>
<p>tömbök</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>típusos (c++) (meg kell mondani neki a változó típusát, hogy egész szám-e (int, ami az integer rövidítése) vagy lebegő pontos (ún. float) és típusfüggetlen nyelvek (php)</p>
<p>most típusos nyelveket veszünk</p>
<p><strong>adattárolási egységek: </strong></p>
<p>bit=1/0, byte=8bit (00000001), word=2byte=16bit, d word= 4byte=32bit</p>
<p>ilyen processzorok vannak a gépekben</p>
<p>&nbsp;</p>
<p><a href="http://hu.wikipedia.org/wiki/CISC" target="_blank">cisc processor</a> konkrét utasítássokkal dolgozik, pl mikrokontrollerben, (másik a <a href="http://hu.wikipedia.org/wiki/RISC" target="_blank">risc</a>)</p>
<p>regiszeterekben történik a műveletek elvégzése</p>
<p><a href="http://hu.wikipedia.org/wiki/%C3%93rajel" target="_blank">órajel</a></p>
<p>&nbsp;</p>
<p>compiler &#8211; gépi kód</p>
<p><a href="http://hu.wikipedia.org/wiki/Ford%C3%ADt%C3%B3program" target="_blank">Compiler:</a> a fordító a forráskódból előállít egy bináris verziót amit a futtató hardver értelmezni tud. C++ platformfüggetlen programozási nyelv.</p>
<p><a href="http://hu.wikipedia.org/wiki/Interpreter" target="_blank">Interpreter</a>: a forráskódból nem csinál gépi kódot, az értelmező rendszer soronként érelmezi a kódot és egyből lefuttatja.</p>
<p>&nbsp;</p>
<p><strong>számrendszerek</strong>, kettes azámrendszer egy 8 bites rendszeben</p>
<p>helyi értékek: 128 64 32 16 8 4 2 1,</p>
<p>11111111=255</p>
<p>00100000=32</p>
<p>7bit plusz 1 az előjelnek: -127 &#8212; 127 lehet tárolni (-1111111)(+1111111)</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Változókban tároljuk ideiglenesen az értékeket, (pl egy szenzor által mért értéket)</p>
<p>C nyelv, változókat lehet rendelni bitekhez</p>
<p>adatokat <strong>változókban</strong> tároljuk el (vannak lebegőpontos tárolók is)</p>
<p>char -mindig előjeles változó</p>
<p>byte -nem előjeles, unsigned char</p>
<p>short -mindig 2byte (word)</p>
<p>int -d word, 32 bit</p>
<p>long -dd word</p>
<p>longlong</p>
<p>-lebegőpontos értékek:</p>
<p>float (lebegő pontos, tehát nem egész szám)</p>
<p>double (kétszer olyan hosszú, mint a float, tehát kétszer olyan hosszú számot képes tárolni)</p>
<p>string</p>
<p>A változóknak van hatóköre: akkor jön létre, ha létrehozom, és addig tárolódik, amíg</p>
<p>&nbsp;</p>
<p>PL:</p>
<p>Egy lámpa fényerejének mérésével kapok egy értéket. Azt egy változóban kell tárolnom, és nevet is kell neki adnom, hogy később tudjam, hogy milyen néven kell rá hivatkozni a programban. (A lámpa fényerejének mért értéke mondjuk 0,12)</p>
<p>A programban először létre kell hoznom egy változót, amit úgy tehetek meg, hogy kiírom, hogy milyen fajta változót akarok létrehozni.</p>
<p>Mivel a mért érték amit tárolni akarok a változóban nem egész szám ebben az esetben egy float típusú változót kell használnom, tehát</p>
<p>változótípus változónév;</p>
<p>float fenyero;</p>
<p>(Azért &#8220;fenyero&#8221; a változónak a neve, hogy később is tudjam, hogy minek az értékét tárolom benne, és azért nincs ékezet, mert a programnyelv nem szereti az ékezetes változónevet.)</p>
<p>&nbsp;</p>
<p><strong>struct</strong> { }</p>
<p>constructor, destructor</p>
<p>&nbsp;</p>
<p>változók élettartama: kapcsos zárójellel jelezzük a <strong>szkópokat, scope?</strong></p>
<p>a <strong>függvény </strong>definiálása is szkópot jelent, ami belül van LOCAL az felül írja a külső GLOBAL definíciót a lefutás végéig, utána visszatér a külsőhöz</p>
<p>&nbsp;</p>
<p>(result) name (p0, p1, ..) { }</p>
<p>&nbsp;</p>
<p>lehet függvény prototípust deklarálni előre</p>
<p>&nbsp;</p>
<p><strong>ELÁGAZÁSOK:</strong></p>
<p>legegyszerűbb módja az if { } ha igaz-1 akkor lefut, ha hamis-0 akkor nem fut le (csak a 0 a hamis minden más szám igaz)</p>
<p>if{ } else{ } ha hams akkor az else fut le, <a href="http://hu.wikipedia.org/wiki/Boole-algebra_%28informatika%29" target="_blank"><strong>boolean</strong></a></p>
<p>Logikai feltételt fogalmazunk meg, <a href="http://hu.wikipedia.org/wiki/Oper%C3%A1torok_%28C++%29" target="_blank"><strong>operátorok</strong></a>kal (aritmetikai <em>-szorzás, osztás, kivonás stb.-</em> vagy logikai <em>-és, vagy, nem egyenlő, kisebb, nagyobb stb.</em>)</p>
<p>bool érték lesz a végeredmény tehát vagy igaz vagy hamis</p>
<p>if { } else if { }  else { }</p>
<p>logikai műveletek igazság táblázata</p>
<p>&nbsp;</p>
<p><strong>SZÁMRENDSZEREK:</strong></p>
<p><a href="http://hu.wikipedia.org/wiki/Nyolcas_sz%C3%A1mrendszer" target="_blank">nyolcas</a> és tizenhatos</p>
<p>8 bites portokra írunk ki számokat az arduinonál, decimális számot kell átszámolni ehhez -kettes és tizenahtos számrdsz.-</p>
<p><a href="http://hu.wikipedia.org/wiki/Tizenhatos_sz%C3%A1mrendszer" target="_blank">tizenhatos</a>: A B C D E F 0 1 2 3 4 5 6 7 8 9</p>
<p>A 0–9 számjegyek használata értelemszerű (azaz: a <a href="http://hu.wikipedia.org/wiki/T%C3%ADzes_sz%C3%A1mrendszer" target="_blank">tízes számrendszernek</a> megfelelő), az A számjegy 10-et, a B számjegy 11-et, a C számjegy 12-t, a D számjegy 13-at, az E számjegy 14-et és az F számjegy 15–öt jelöl (ez összesen 16 számjegy, hiszen a nulla az első).</p>
<p>&nbsp;</p>
<p><strong>CIKLUSOK:</strong></p>
<p>for (kezdőérték;végérték; lépésköz)  { ebben fut a ciklus, magyaraul a végrehajtandó utasítások }</p>
<p>pl: for (int kiskacsa =0; kiskacsa&lt;30; kiskacsa++)</p>
<p>ez azt fogja csinálni, hogy a kiskacsa kezdőértéke nulla; amit harmincig akarok növelni;eggyel</p>
<p>for (int kiskacsa =40; kiskacsa&gt;30; kiskacsa&#8211;)</p>
<p>for ciklus számlálóciklus, ami a{}közötti részt azaz a ciklusmagot annyiszor hajtja végre amíg a ciklusváltozó (ebben az esetben &#8220;kiskacsa&#8221;) értéke nem éri el a megadott végértéket</p>
<p>break-kilép a ciklusból- és continue-ciklus elejére visz-</p>
<p>while () { }</p>
<p>do  { } while ()  { }</p>
<p><a href="http://hu.wikipedia.org/wiki/Ciklus_%28programoz%C3%A1s%29" target="_blank">wikipedia</a></p>
<p>Operátorok:</p>
<p>értékadó operátorok (pl = vagy +=, *= )</p>
<p>pl int kiskacsa = kiskacsa*2  ez ugyanaz, mint int kiskacsa*=2</p>
<p>öszzehasonlító operátorok (==, vagy a &gt;</p>
<p>int kiskacsa = 20;</p>
<p>int kiskacsa = 20+1 de ez egyenlő azzal, mint ha azt írnám, hogy</p>
<p>kiskacsa++ (egyel megnöveli a kiskacsa értékét)</p>
<p>== ezzel tudok két értéket összehasonlítani</p>
<p><a href="http://hu.wikipedia.org/wiki/T%C3%B6mb" target="_blank">TÖMB</a>: egy <strong>tömb</strong>nek minden eleme ugyanolyan. <em>A C stílusú tömb azonos típusú adatok halmaza, amelyek a memóriában folytonosan helyezkednek el. Csak alapértelmezett konstruktorral rendelkező (minden beépített típus ilyen) típusokból lehet tömböt létrehozni. A tömb elemeire a tömb nevével és az indexelő operátorral hivatkozhatunk.</em></p>
<p><strong>Pointer</strong>: <em>Amikor egy változót definiálunk, a memóriában létrejön egy megfelelő méretű tároló, amelybe bemásolódik a kezdőérték.</em> Érték szerinti átadás.</p>
<p>Referencia szerinti átadás.</p>
<p>&nbsp;</p>
<p>Szintakika vagy szintaxis: <a href="http://wiki.prog.hu/wiki/Szintaxis" target="_blank">http://wiki.prog.hu/wiki/Szintaxis</a></p>
<p>&nbsp;</p>
<p><strong>ARDUINO:</strong></p>
<p>mikrokontroller, lábai ki vannak vezetve ki és bemenetekre, in/out (port)</p>
<p><a href="http://arduino.cc/en/Reference/HomePage" target="_blank">http://arduino.cc/en/Reference/HomePage</a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>Köszönet a jegyzetért Harsányi Rékának.</strong></p>
<p><strong>Valamint köszönet Pomozi Péternek a korrepetálásért.</strong></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://kutato.mke.hu/2012/03/05/robotika-1-jegyzet/feed/</wfw:commentRss>
		<slash:comments>90</slash:comments>
		</item>
	</channel>
</rss>
