<?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>open source Archives - Automatika.rs</title>
	<atom:link href="https://www.automatika.rs/tag/open-source/feed" rel="self" type="application/rss+xml" />
	<link>https://www.automatika.rs/tag/open-source</link>
	<description>Portal za inženjere</description>
	<lastBuildDate>Wed, 19 Jun 2019 12:47:59 +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>Da li znate gde vaši smart home uređaji šalju podatke?</title>
		<link>https://www.automatika.rs/vesti/kucna-automatizacija/da-li-znate-gde-vasi-smart-home-uredaji-salju-podatke.html</link>
					<comments>https://www.automatika.rs/vesti/kucna-automatizacija/da-li-znate-gde-vasi-smart-home-uredaji-salju-podatke.html#respond</comments>
		
		<dc:creator><![CDATA[Marko Nikolić]]></dc:creator>
		<pubDate>Mon, 24 Jun 2019 00:00:47 +0000</pubDate>
				<category><![CDATA[Kućna automatizacija]]></category>
		<category><![CDATA[amazon echo]]></category>
		<category><![CDATA[google home]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[pamerni uredjaji]]></category>
		<category><![CDATA[pametne kuce]]></category>
		<category><![CDATA[Smart Home]]></category>
		<category><![CDATA[smart home aplikacije]]></category>
		<category><![CDATA[smart home resenja]]></category>
		<guid isPermaLink="false">https://www.automatika.rs/?p=10028</guid>

					<description><![CDATA[<p> Verovatno mislite da vaša kolekcija pametnih kućnih uređaja komunicira isključivo međusobno i sa vama. U većini situacija, to ipak nije slučaj. Podaci sa vaših uređaja mogu biti poslati svuda, kako bi komunicirali sa serverima, a ponekad mogu i da završe u rukama ljudi, za koje to ne očekujete. Sada, zahvaljujući raznim istraživanjima sa Prinston Univerziteta, [&#8230;]</p>
<p>The post <a href="https://www.automatika.rs/vesti/kucna-automatizacija/da-li-znate-gde-vasi-smart-home-uredaji-salju-podatke.html">Da li znate gde vaši smart home uređaji šalju podatke?</a> appeared first on <a href="https://www.automatika.rs">Automatika.rs</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify"> Verovatno mislite da vaša kolekcija pametnih kućnih uređaja komunicira isključivo međusobno i sa vama. U većini situacija, to ipak nije slučaj. Podaci sa vaših uređaja mogu biti poslati svuda, kako bi komunicirali sa serverima, a ponekad mogu i da završe u rukama ljudi, za koje to ne očekujete. Sada, zahvaljujući raznim istraživanjima sa Prinston Univerziteta, možete detaljno pratiti vaše kućne uređaje i tačno videti gde i koje podatke prikupljaju i dele.</p>
<p style="text-align: justify"> Novi alat, Princeton IoT Inspector, razvijen za MacOS, nudi opciju koja je jednostavna za instalaciju i konfiguraciju kako bi bolje razumela kako vaši pametni kućni uređaji komuniciraju i ponašaju se, dok ste u svom domu. Ovaj alat je suštinski dizajniran da “špijunira” vaš dom, a prikupljene podatke možete analizirati vi, i istraživački tim.</p>
<p style="text-align: justify"> Morate biti svesni da ukoliko koristite &#8221;open-source&#8221; alat, da automatski učestvujete u istraživačkom projektu, kao i da se prikupljeni podaci mogu koristiti u ove svrhe. Neki podaci sa vaših uređaja biće podeljeni sa istraživačima sa Prinston univerziteta preko sigurnostih servera i koristiće se kao deo istraživačkog rada – bićete u mogućnosti da tačno ispratite dalju upotrebu ovih podataka. Takođe, biće neophodno da verifikujete obrazac za saglasnost pre samog korišćenja alata, sa svim detaljnim uputstvima.</p>
<p style="text-align: justify"> Kada ste u potpunosti informisani o alatu, kako radi i šta će prikupljati, konačno možete početi sa upotrebom.  IoT Inspector će automatski prepoznati uobičajne uređaje poput Amazon Echo ili Google Home, dok će ostali uređaji morati manuelno da se unesu u sistem. Kada se konektovani uređaji prepoznaju, on počinje da prikuplja podatke od njih i prikazuje vam tačno kako proizvodi komuniciraju. Prikazaće se podaci o aktivnosti svakog uređaja, smeru komunikacije i mnogi drugi.</p>
<p style="text-align: justify"> Kada jednom instalirate Princeton IoT Inspector na vaš Mac računar, možda u njemu prepoznate i upotrebnu vrednost van vašeg doma. Kako ističe portal Gizmodo, možda ćete želeti da ga upotrebite da skenirate vaš iznajmljeni prostor preko Airbnb-a na primer, kako biste bili sigurni da nema skrivenih kamera, ili drugih špijunirajućih uređaja postavljenih bez vašeg znanja?!</p>
<p>The post <a href="https://www.automatika.rs/vesti/kucna-automatizacija/da-li-znate-gde-vasi-smart-home-uredaji-salju-podatke.html">Da li znate gde vaši smart home uređaji šalju podatke?</a> appeared first on <a href="https://www.automatika.rs">Automatika.rs</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.automatika.rs/vesti/kucna-automatizacija/da-li-znate-gde-vasi-smart-home-uredaji-salju-podatke.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Kako da napravite vaš prvi robot korišćenjem ARDUINO razvojne platforme &#8211; 2. deo</title>
		<link>https://www.automatika.rs/projekti/kako-da-napravite-vas-prvi-robot-koriscenjem-arduino-razvojne-platforme-2-deo.html</link>
					<comments>https://www.automatika.rs/projekti/kako-da-napravite-vas-prvi-robot-koriscenjem-arduino-razvojne-platforme-2-deo.html#comments</comments>
		
		<dc:creator><![CDATA[Miloš Jurošević]]></dc:creator>
		<pubDate>Tue, 25 Dec 2012 23:00:00 +0000</pubDate>
				<category><![CDATA[Projekti]]></category>
		<category><![CDATA[arduino uno]]></category>
		<category><![CDATA[izrada robota]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[robot]]></category>
		<guid isPermaLink="false"></guid>

					<description><![CDATA[<p>Ovo je nastavak projekta u kome pravimo robot korišćenjem Arduino open source razvojne platforme. U prvom delu projekta koji ste mogli da pročitate ovde, bavili smo se delovima robota, konstrukcijom, načinom sklapanja itd. Ovde ćemo reći nešto više o samom programiranju jednog ovakvog robota, a videćete i snimke na kojima je prikazano kretanje robota.  Pre nego [&#8230;]</p>
<p>The post <a href="https://www.automatika.rs/projekti/kako-da-napravite-vas-prvi-robot-koriscenjem-arduino-razvojne-platforme-2-deo.html">Kako da napravite vaš prvi robot korišćenjem ARDUINO razvojne platforme &#8211; 2. deo</a> appeared first on <a href="https://www.automatika.rs">Automatika.rs</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div style="text-align: justify;"><img decoding="async" class=" alignleft size-full wp-image-3568" style="margin-top: 5px; margin-right: 5px; border: 1px solid #000000; float: left;" src="http://automatika.rs/wp-content/uploads/2012/12/naslovna_kako_da_napravite_vas_prvi_robot_koriscenjem_arduino_razvojnog_sistema_projekti_mehatronika_automatika.rs.jpg" alt="naslovna kako_da_napravite_vas_prvi_robot_koriscenjem_arduino_razvojnog_sistema_projekti_mehatronika_automatika.rs" width="100" height="100" />Ovo je nastavak projekta u kome pravimo robot korišćenjem <strong>Arduino</strong> open source razvojne platforme. U prvom delu projekta koji ste mogli da pročitate <a href="projekti/kako-da-napravite-vas-prvi-robot-koriscenjem-arduino-razvojne-platforme-1.-deo.html" target="_blank">ovde</a>, bavili smo se delovima robota, konstrukcijom, načinom sklapanja itd. Ovde ćemo reći nešto više o samom programiranju jednog ovakvog robota, a videćete i snimke na kojima je prikazano kretanje robota.</div>
<div style="text-align: justify;"></div>
<p><span id="more-861"></span></p>
<div style="text-align: justify;"> Pre nego što krenete sa programiranjem, potrebno je najpre da na vašem računaru instalirate i podesite softver za vaš Arduino. Softver možete pronaći <a href="http://arduino.cc/en/Main/Software" target="_blank">ovde</a>, a step-by-step uputstvo kako da povežete vaš Arduino razvojni sistem sa računarom možete pronaći <a href="http://arduino.cc/en/Guide/HomePage" target="_blank">ovde</a>. Kada ste sve podesili možete krenuti sa programiranjem.</div>
<div style="text-align: justify;"></div>
<div style="text-align: justify;"> Kao što znate, u prošlom tekstu smo rekli da senzor nećemo postaviti na servo motor, jer moramo utvrditi, gde se nalazi sredina opsega našeg servoa (90°). Najpre ćemo to uraditi. Pre svega, proverite da li ste ispravno povezali napajanje. Pokrenite vaš Arduino softver i kopirajte kod koji se nalazi u nastavku, a zatim ga upload-ujte.</div>
<div style="text-align: justify;">
<hr />
</div>
<div>#include &lt;Servo.h&gt;                // includes the servo library<br />
Servo myservo;                       // creates a servo objectvoid setup()<br />
{<br />
myservo.attach(8);          // attaches the servo to digital pin 8<br />
}<br />
void loop()<br />
{<br />
myservo.write(90);          // moves the servo to 90 degree.<br />
delay(700);                    // wait for the servo to finish its rotation</div>
<div>}</div>
<div style="text-align: justify;">
<hr />
<p>Ovaj kod će pomeriti servo u sredinu njegovog opsega. Sada možete postaviti senzor na servo. Za spajanje možete iskoristiti obostranu lepljivu traku. Senzor okrenite tako da &#8220;gleda&#8221; ispred robota. Kada postavite senzor, možete se poigrati sa vašim servoom, tako što ćete mu zadavati različite vrednosti uglova između 0° i 180°.</p>
</div>
<div style="text-align: justify;">Sada možete kopirati kod koji sledi.</div>
<div>
<hr />
<p>int sensorpin = 0;                                // analog pin used to connect the sharp sensor<br />
int val = 0;                                         // variable to store the values from sensor(initially zero)</p>
<p>void setup()<br />
{<br />
Serial.begin(9600);                     // starts the serial monitor<br />
}</p>
<p>void loop()<br />
{<br />
val = analogRead(sensorpin);        // reads the value of the sharp sensor<br />
Serial.println(val);                        // prints the value of the sensor to the serial monitor<br />
}</p>
<hr />
<p>Pomoću ovog koda možete primati informacije sa Sharp senzora. Nakon učitavanja ovog koda u kontroler, otvorite u Arduino softveru Serial Monitor i videćete kako se vrednosti koje se dobijaju sa senzora menjaju kada ispred senzora postavite neku prepreku. Postavite svoju ruku ili neki predmet i videćete kako se vrednosti koje se očitavaju, menjaju. Opseg vrednosti je od 0 do 1023. Što su manje vrednosti to je rastojanje senzora i prepreke veće i obrnuto.</p>
</div>
<div>Pomoću koda koji sledi, pokrenućemo pogonske motore našeg robota.</div>
<div>
<hr />
<p>int motor_pin1 = 4;                                //define the pins to which motor wires are connected<br />
int motor_pin2 = 5;<br />
void setup ()<br />
{<br />
pinMode(motor_pin1,OUTPUT);    // set the motor pins as output<br />
pinMode(motor_pin2,OUTPUT);<br />
}</p>
<p>void loop()<br />
{<br />
digitalWrite(motor_pin1,HIGH);<br />
digitalWrite(motor_pin2,LOW);<br />
}</p>
</div>
<div style="text-align: justify;">
<hr />
<p>Ovim kodom pokrenućemo motor u jednom smeru (smrove ćemo označiti kao &#8220;Napred&#8221; i &#8220;Nazad&#8221;, u odnosu na to kako će se robot kretati). Smer obrtanja motora ćemo promeniti ako u funkciji <em>loop</em> motor_pin1 uzme vrednost LOW, a motor_pin2 uzme vrednost HIGH. Kako bismo pokrenuli i drugi motor, moramo dodati deo koda koji sledi u nastavku.</p>
<hr />
<p>int motor_pin3 = 6;                                //define the pins to which motor wires are connected<br />
int motor_pin4 = 7;<br />
void setup ()<br />
{<br />
pinMode(motor_pin3,OUTPUT);    // set the motor pins as output<br />
pinMode(motor_pin4,OUTPUT);<br />
}</p>
<p>void loop()<br />
{<br />
digitalWrite(motor_pin3,HIGH);<br />
digitalWrite(motor_pin4,LOW);<br />
}</p>
<hr />
<p>Kako bismo drugi motor pokrenuli u suprotnom smeru, služićemo se istom logikom, kao kod prvog motora. Za zaustavljanje oba motora sve motor_pin promenljive (motor_pin1, <span style="text-align: justify;">motor_pin2, <span style="text-align: justify;">motor_pin3 i <span style="text-align: justify;">motor_pin4</span></span></span>) moraju uzeti vrednost LOW.</p>
</div>
<div style="text-align: justify;"></div>
<div style="text-align: justify;"> Sigurno se pitate kako će robot skretati levo ili desno. Koristićemo metod upravljanja klizanjem. Usled okretanja pogonskih motora u suprotnim smerovima, dolazi do klizanja te i okretanja robota. Pravila su sledeća:</div>
<div style="text-align: justify;">
<ul>
<li>Skretanje robota u levo: desni motor se okreće napred, a levi nazad;</li>
<li><span style="text-align: justify;">Skretanje robota u desno: levi motor se okreće napred, a desni nazad;</span></li>
<li><span style="text-align: justify;">Kretanje robota u napred: oba motora se okreću napred;</span></li>
<li><span style="text-align: justify;">Kretanje robota u nazad: oba motora se okreću nazad.</span></li>
</ul>
<p><span style="text-align: justify;"><span style="text-align: justify;">  Sada ćemo videti i jednostavan kod za robot, pomoću kog će on izbegavati prepreke. Učitajte ovaj kod i vaš robot će &#8220;oživeti&#8221;.</span></span></p>
<hr />
<p>#include &lt;Servo.h&gt;            //includes the servo library</p>
<p>int motor_pin1 = 4;<br />
int motor_pin2 = 5;<br />
int motor_pin3 = 6;<br />
int motor_pin4 = 7;<br />
int servopin = 8;<br />
int sensorpin = 0;<br />
int dist = 0;<br />
int leftdist = 0;<br />
int rightdist = 0;<br />
int object = 500;                //distance at which the robot should look for another route</p>
<p>Servo myservo;</p>
<p>void setup ()<br />
{<br />
pinMode(motor_pin1,OUTPUT);<br />
pinMode(motor_pin2,OUTPUT);<br />
pinMode(motor_pin3,OUTPUT);<br />
pinMode(motor_pin4,OUTPUT);<br />
myservo.attach(servopin);<br />
myservo.write(90);<br />
<span style="text-align: justify;">      </span>delay(700);<br />
}<br />
void loop()<br />
{<br />
<span style="text-align: justify;">      </span>dist = analogRead(sensorpin); //reads the sensor</p>
<p>if(dist &lt; object) { <span style="text-align: justify;">      </span>//if distance is less than 550<br />
<span style="text-align: justify;">      </span>forward();<span style="text-align: justify;">      </span> //then move forward<br />
}<br />
if(dist &gt;= object) { <span style="text-align: justify;">      </span>//if distance is greater than or equal to 550<br />
<span style="text-align: justify;">      </span>findroute();<br />
}<br />
}</p>
<p>void forward() { <span style="text-align: justify;">      </span>// use combination which works for you<br />
<span style="text-align: justify;">      </span>digitalWrite(motor_pin1,HIGH);<br />
<span style="text-align: justify;">      </span>digitalWrite(motor_pin2,LOW);<br />
<span style="text-align: justify;">      </span>digitalWrite(motor_pin3,HIGH);<br />
<span style="text-align: justify;">      </span>digitalWrite(motor_pin4,LOW);<br />
<span style="text-align: justify;">      </span>return;<br />
}</p>
<p>void findroute() {<br />
<span style="text-align: justify;">      </span>halt(); // stop<br />
<span style="text-align: justify;">      </span>backward(); <span style="text-align: justify;">     </span>//go backwards<br />
<span style="text-align: justify;">      </span>lookleft(); <span style="text-align: justify;">        </span>//go to subroutine lookleft<br />
<span style="text-align: justify;">      </span>lookright(); <span style="text-align: justify;">      </span>//go to subroutine lookright</p>
<p>if ( leftdist &lt; rightdist )<br />
{<br />
<span style="text-align: justify;">      </span>turnleft();<br />
}<br />
else<br />
{<br />
<span style="text-align: justify;">      </span>turnright ();<br />
}<br />
}</p>
<p>void backward() {<br />
<span style="text-align: justify;">      </span>digitalWrite(motor_pin1,LOW);<br />
<span style="text-align: justify;">      </span>digitalWrite(motor_pin2,HIGH);<br />
<span style="text-align: justify;">      </span>digitalWrite(motor_pin3,LOW);<br />
<span style="text-align: justify;">      </span>digitalWrite(motor_pin4,HIGH);<br />
<span style="text-align: justify;">      </span>delay(500);<br />
<span style="text-align: justify;">      </span>halt();<br />
<span style="text-align: justify;">      </span>return;<br />
}</p>
<p>void halt () {<br />
<span style="text-align: justify;">      </span>digitalWrite(motor_pin1,LOW);<br />
<span style="text-align: justify;">      </span>digitalWrite(motor_pin2,LOW);<br />
<span style="text-align: justify;">      </span>digitalWrite(motor_pin3,LOW);<br />
<span style="text-align: justify;">      </span>digitalWrite(motor_pin4,LOW);<br />
<span style="text-align: justify;">      </span>delay(500); <span style="text-align: justify;">      </span>//wait after stopping<br />
<span style="text-align: justify;">      </span>return;<br />
}</p>
<p>void lookleft() {<br />
<span style="text-align: justify;">      </span>myservo.write(150);<br />
<span style="text-align: justify;">      </span>delay(700); <span style="text-align: justify;">      </span>//wait for the servo to get there<br />
<span style="text-align: justify;">      </span>leftdist = analogRead(sensorpin);<br />
<span style="text-align: justify;">      </span>myservo.write(90);<br />
<span style="text-align: justify;">      </span>delay(700); <span style="text-align: justify;">      </span>//wait for the servo to get there<br />
<span style="text-align: justify;">      </span>return;<br />
}</p>
<p>void lookright () {<br />
<span style="text-align: justify;">      </span>myservo.write(30);<br />
<span style="text-align: justify;">      </span>delay(700); <span style="text-align: justify;">      </span>//wait for the servo to get there<br />
<span style="text-align: justify;">      </span>rightdist = analogRead(sensorpin);<br />
<span style="text-align: justify;">      </span>myservo.write(90);<br />
<span style="text-align: justify;">      </span>delay(700); <span style="text-align: justify;">      </span>//wait for the servo to get there<br />
<span style="text-align: justify;">      </span>return;<br />
}</p>
<p>void turnleft () {<br />
<span style="text-align: justify;">      </span>digitalWrite(motor_pin1,HIGH); <span style="text-align: justify;">      </span>//use the combination which works for you<br />
<span style="text-align: justify;">      </span>digitalWrite(motor_pin2,LOW); <span style="text-align: justify;">      </span>//right motor rotates forward and left motor backward<br />
<span style="text-align: justify;">      </span>digitalWrite(motor_pin3,LOW);<br />
<span style="text-align: justify;">      </span>digitalWrite(motor_pin4,HIGH);<br />
<span style="text-align: justify;">      </span>delay(1000); <span style="text-align: justify;">      </span>// wait for the robot to make the turn<br />
<span style="text-align: justify;">      </span>halt();<br />
<span style="text-align: justify;">      </span>return;<br />
}</p>
<p>void turnright () {<br />
<span style="text-align: justify;">      </span>digitalWrite(motor_pin1,LOW); <span style="text-align: justify;">      </span>//use the combination which works for you<br />
<span style="text-align: justify;">      </span>digitalWrite(motor_pin2,HIGH); <span style="text-align: justify;">      </span>//left motor rotates forward and right motor backward<br />
<span style="text-align: justify;">      </span>digitalWrite(motor_pin3,HIGH);<br />
<span style="text-align: justify;">      </span>digitalWrite(motor_pin4,LOW);<br />
<span style="text-align: justify;">      </span>delay(1000); <span style="text-align: justify;">      </span>// wait for the robot to make the turn<br />
<span style="text-align: justify;">      </span>halt();<br />
<span style="text-align: justify;">      </span>return;<br />
}</p>
<hr />
<p>Pomoću ovog koda, robot će se kretati unapred ako je vrednost koju dobija sa senzora manja od 500. To znači da će robot smatrati da ispred sebe nema prepreku. Ova vrednost se može promeniti. Ako robot sa senzora dobije vredsnot jedaku ili veću od 500, potražiće drugi put. Najpre će se zaustaviti, vratiti se malo unazad, ponovo se zaustaviti. Nakon toga, servo će se okrenuti u levo, očitaće se vrednost sa senzora, zatim će se servo okrenuti u desnu stranu i ponovo će se učitati vrednost sa senzora. Ove dve vrednosti sa senzora će se uporediti i robot će krenuti u onu srtranu na kojoj je vrednost sa senzora bila manja. Ovakvo ponašanje će se nastaviti dok ne isključite napajanje robotu.</p>
</div>
<div style="text-align: justify;"><strong>  <em>Napomene</em></strong></div>
<div style="text-align: justify;">
<ul>
<li>Ako vam se desi da se mikrokontroler resetuje kada motori počnu da se okreću, povežite jedan elektrolitski kondenzator od 10μF na napajanje od 6V.</li>
<li>Kašnjenje korišćeno u turnleft, turnright i halt subrutinama treba izabrati u s obzirom na veličinu vašeg robota. Što je robot veći, ovo kašnjenje treba da bude veće i obrnuto.</li>
<li>U kodu, servo okrenut u levu stranu je pod uglom manjim od 90°, a u desnu stranu pod uglom većim od 90°. Kod vas se može desiti supreotna situacija, u slučaju da ste servo okrenuli suprotno.</li>
<li>Rastojanje između omnidirekcionog točka i pogonskih točkova treba da je što manje.</li>
</ul>
<p>U nastavku možete pogledati video na kom je prikazan način funkcionisanja i kretanja robota.</p>
</div>
<div style="text-align: justify;">
<p> Arduino razvojne sisteme možete pronaći <a href="http://www.elektronika-projekti.com/kupi-online-elektroniku/arduino.html" target="_blank">ovde</a>.</p>
</div>
<p>The post <a href="https://www.automatika.rs/projekti/kako-da-napravite-vas-prvi-robot-koriscenjem-arduino-razvojne-platforme-2-deo.html">Kako da napravite vaš prvi robot korišćenjem ARDUINO razvojne platforme &#8211; 2. deo</a> appeared first on <a href="https://www.automatika.rs">Automatika.rs</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.automatika.rs/projekti/kako-da-napravite-vas-prvi-robot-koriscenjem-arduino-razvojne-platforme-2-deo.html/feed</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
	</channel>
</rss>
