<?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>arvydas.net &#187; Arduino</title>
	<atom:link href="http://www.arvydas.net/category/arduino/feed" rel="self" type="application/rss+xml" />
	<link>http://www.arvydas.net</link>
	<description>Arvydo asmeninių atradimų, minčių ir idėjų namai</description>
	<lastBuildDate>Sat, 27 Aug 2011 16:23:39 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Roboto logika</title>
		<link>http://www.arvydas.net/roboto-logika</link>
		<comments>http://www.arvydas.net/roboto-logika#comments</comments>
		<pubDate>Fri, 11 Dec 2009 13:22:08 +0000</pubDate>
		<dc:creator>Arvydas</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Elektronika]]></category>

		<guid isPermaLink="false">http://www.arvydas.net/?p=740</guid>
		<description><![CDATA[
Pagaliau atrodo pavyko parašyti tokį kodą, kad mano robotas važinėtų po kambarį išvengdamas kliūčių be jokios pagalbos. Pradėsiu nuo teorinės dalies: roboto logika.
Roboto navigacijos tikslas buvo paprastas: aptikus kliūtį apsidairyti, surasti laisvą kelią, pasisukti į tą pusę ir toliau važiuoti nauju keliu iki kitos kliūties. Aš esu iš tų programuotojų, kurie daugiau stengiasi panaudoti jau [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.arvydas.net/wp-content/uploads/2009/12/robot-logic-main-cut.png" rel="lightbox[740]" class="liimagelink"><img class="alignnone size-full wp-image-741" title="robot-logic-main-cut" src="http://www.arvydas.net/wp-content/uploads/2009/12/robot-logic-main-cut.png" alt="robot-logic-main-cut" width="500" height="314" /></a></p>
<p>Pagaliau atrodo pavyko parašyti tokį kodą, kad <a href="http://www.arvydas.net/robotas-is-zaislines-masineles" target="_blank" class="liinternal">mano robotas</a> važinėtų po kambarį išvengdamas kliūčių be jokios pagalbos. Pradėsiu nuo teorinės dalies: roboto logika.</p>
<p>Roboto navigacijos tikslas buvo paprastas: aptikus kliūtį apsidairyti, surasti laisvą kelią, pasisukti į tą pusę ir toliau važiuoti nauju keliu iki kitos kliūties. Aš esu iš tų programuotojų, kurie daugiau stengiasi panaudoti jau kažkieno sukurtus algoritmus ir idėjas, bet šiuo atveju man nepasisekė: niekur negalėjau rasti man tinkamo jau sukurto kodo todėl teko viską kuri pačiam nuo nulio. <a href="http://www.arvydas.co.uk/2009/11/robot-logic/" target="_blank" class="liexternal">Sudėliojus pradinį logikos variantą</a> viskas atrodė nesudėtinga, bet realiai susidūriau su keletu labai įdomių iššūkių.<span id="more-740"></span></p>
<h3>Inercija</h3>
<p>Kitaip, nei dauguma savaeigių robotų, kurių video žiūrėjau analizuodamas logiką, maniškis varomas ne servo, o varikliukais. Servo naudojančios parduodamos robotų platformos sustoja praktiškai iš karto, bet už tai yra labai lėti. Arduino mikrokontroleriui detektavus kliūtį ir varikliams nurodžius sustoti, mano žaislinė mašinėlė iš inercijos pavažiuodavo dar 5-10 cm dėl ko imdavo veikti visai kita programos dalis, atsimušdavo į kliūtį ir nebeužtekdavo vietos apsisukti arba robotas pradėdavo &#8220;dairytis&#8221; kito kelio dar nesustojęs.</p>
<h3>Baterijos</h3>
<p>Jeigu robotui važiuojant į priekį staiga pastebėjus kliūtį labai arti perduodavau impulsą iš karto važiuoti atgal baterijos išsikraudavo per pusvalandį. Po sustabdymo teko palaukti ~0,5 s, kad robotas sulėtėtų arba suspėtų visai sustoti ir tik tada siųsdavau kitas komandas.</p>
<p>Nuo baterijos įkrovimo taip pat priklausė ir važiavimo greitis, o nuo jos ir inercija. Dėl šios priežasties naudodamasis <a href="http://www.arvydas.net/arduino-mega-ir-atstumo-detektorius" target="_blank" class="liinternal">ultragarsiniu nuotolio matuokliu</a> pradėjau kaupti informacija apie atstumą iki objekto ir laiką kada matavimas atliktas. Tokiu būdu galėjau įvertinti roboto greitį ir jį dinamiškai reguliuoti, kad išlaikyčiau 35-40 cm/s nepriklausomai nuo baterijų įkrovos.</p>
<p><a href="http://www.arvydas.net/wp-content/uploads/2009/12/robot-logic-adjust-speed.png" rel="lightbox[740]" class="liimagelink"><img class="alignnone size-full wp-image-745" title="robot-logic-adjust-speed" src="http://www.arvydas.net/wp-content/uploads/2009/12/robot-logic-adjust-speed.png" alt="robot-logic-adjust-speed" width="391" height="598" /></a></p>
<h3>Kliūčių išvengimas</h3>
<p>Nustatyti į kurią pusę reikia suktis po to kai robotas surasdavo kliūti buvo palyginus nesudėtinga: roboto &#8220;galva&#8221; atsistoja -90 laipsnių kampu ir kas 10 lapsnių išmatuoja atstumą iki objektų.</p>
<p><a href="http://www.arvydas.net/wp-content/uploads/2009/12/robot-range-finder.png" rel="lightbox[740]" class="liimagelink"><img class="alignnone size-full wp-image-754" title="robot-range-finder" src="http://www.arvydas.net/wp-content/uploads/2009/12/robot-range-finder.png" alt="robot-range-finder" width="265" height="222" /></a></p>
<p>Tarkim robotas nustato, kad laisviausias kelias yra 60 laipsnių į kairę kaip tai parodyta viršuje esančiame paveikslėlyje juoda linija. Kaip tuomet nustatyti, kad robotas jau pasisuko 60 lapsnių? Turint magnetinį kompasą būtų labai paprasta, bet kad toks sensorius kainuoja virš £20! Besukant galvą šovė išganinga mintis: tereikia nuspręsti į kurią pusę suktis ir tuomet besisukant matuoti atstumą iki objekto su tuo pačiu atstumo sensorium iki kol bus &#8220;surastas&#8221; tas atstumas. Ši geniali idėja pasiteisino iki kol nesusidūriau su kita problema &#8211; paklaidom.</p>
<h3>Paklaidos</h3>
<p>Su paklaidom buvau susidūręs tik spręsdamas fizikos laboratorinius. Kuriant kompiuterines programas paklaidos beveik neegzistuoja, bet viskas apsiverčia aukštyn kojom, kai pradedi programuoti fiziniam pasauliui: į paklaidas teko atsižvelgti robotui sukantis aplink beieškant nustatyto laisvo kelio ir įvertinti, kad matuojant gali būti ~1cm paklaida. Jas taip pat reikėjo įvertinti ir matuojant roboto greitį, nes kartais gaudavau, kad mano robotas kambaryje skrieja 100 km/h greičiu.</p>
<h3>Nenumatytos kliūtys</h3>
<p>Eksperimentuojant kelyje pasitaikydavo nenumatytų kliūčių: kokia numesta tapkė ar mažas sūnaus žaislas, kurio nuotolio sensorius nedetektuodavo, nes kliūtis būdavo per žemai. Dėl tos priežasties teko sukurti specialų kodą naudojantį atstumo sensoriaus duomenis, kurio pagalba robotas nustatydavo, kad jis užstrigo ir pabandydavo 1s pavažiuoti atgal.</p>
<p><a href="http://www.arvydas.net/wp-content/uploads/2009/12/robot-logic-avoid-blocked-path.png" rel="lightbox[740]" class="liimagelink"><img class="alignnone size-full wp-image-746" title="robot-logic-avoid-blocked-path" src="http://www.arvydas.net/wp-content/uploads/2009/12/robot-logic-avoid-blocked-path.png" alt="robot-logic-avoid-blocked-path" width="263" height="437" /></a></p>
<p>Dėl šio patobulinimo robotas užstrigęs net ir už netikėtos kliūties sugeba grįžti atgal ir ieškoti kito kelio.</p>
<h3>Per arti esantys objektai</h3>
<p>Per arti priartėjus prie kokio nors objekto, gali neužtekti vietos apsisukti, todėl sukūriau dar vieną paprogramę, kurios pagalba važiuodamas atgal robotas pabando pasidaryti daugiau vietos ir tik tada apsidairyti.</p>
<p><a href="http://www.arvydas.net/wp-content/uploads/2009/12/robot-logic-get-more-space.png" rel="lightbox[740]" class="liimagelink"><img class="alignnone size-full wp-image-747" title="robot-logic-get-more-space" src="http://www.arvydas.net/wp-content/uploads/2009/12/robot-logic-get-more-space.png" alt="robot-logic-get-more-space" width="446" height="670" /></a></p>
<p>Čia vėl reikėjo atkreipti dėmesį, kad judėdamas atgal robotas irgi gali užstrigti.</p>
<h3>Visa roboto logika</h3>
<p>Kartu sudėjus visas viršuje aprašytas paprogrames gavau tokią bendrą roboto logiką:</p>
<p><a href="http://www.arvydas.net/wp-content/uploads/2009/12/robot-logic-main.png" rel="lightbox[740]" class="liimagelink"><img class="alignnone size-full wp-image-744" title="robot-logic-main" src="http://www.arvydas.net/wp-content/uploads/2009/12/robot-logic-main.png" alt="robot-logic-main" width="418" height="955" /></a></p>
<p>Aišku iki idealios logikos labai toli, nes norint padaryti, kad robotas geriau &#8220;jaustų&#8221; aplinką, reikia turėti daugiau sensorių: bent po vieną IR (infraraudonųjų spindulių) atstumo detektorių ties kiekvienu žaislo kampu, akselerometrą, magnetinį kompasą ir nuvažiuoto kelio detektorius. Ghm.. na gal kol kas apsiribosiu su tuom ką turiu. :)</p>
<p>Kituose įrašuose važinėjančio roboto video ir Arduino kodas.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.arvydas.net/roboto-logika/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Robotas iš žaislinės mašinėlės</title>
		<link>http://www.arvydas.net/robotas-is-zaislines-masineles</link>
		<comments>http://www.arvydas.net/robotas-is-zaislines-masineles#comments</comments>
		<pubDate>Tue, 24 Nov 2009 15:43:05 +0000</pubDate>
		<dc:creator>Arvydas</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Elektronika]]></category>

		<guid isPermaLink="false">http://www.arvydas.net/?p=710</guid>
		<description><![CDATA[
Šį šeštadienį lankiausi Birmingemo Howduino &#8211; vienos dienos hakerių susitikime. Nelabai žinojau ko tikėtis iš tokio tipo įvykio, todėl ir važiavau be jokios išankstinės nuostatos. :) Po trumpo organizacinio pristatymo apie 11 val. ryto prasidėjo darbas: vieni dalyviai išsiskirstė į mokymo grupes, kiti ėmėsi dirbti prie savo projektų.
Mano užduotis
Mano tos dienos tikslas buvo šią radijo [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.arvydas.net/wp-content/uploads/2009/11/IMG1716.jpg" rel="lightbox[710]" class="liimagelink"><img class="alignnone size-full wp-image-711" title="IMG1716" src="http://www.arvydas.net/wp-content/uploads/2009/11/IMG1716.jpg" alt="IMG1716" width="500" height="333" /></a></p>
<p>Šį šeštadienį lankiausi Birmingemo <a href="http://www.howduino.com" target="_blank" class="liexternal">Howduino</a> &#8211; vienos dienos hakerių susitikime. Nelabai žinojau ko tikėtis iš tokio tipo įvykio, todėl ir važiavau be jokios išankstinės nuostatos. :) Po trumpo organizacinio pristatymo apie 11 val. ryto prasidėjo darbas: vieni dalyviai išsiskirstė į mokymo grupes, kiti ėmėsi dirbti prie savo projektų.</p>
<h3>Mano užduotis</h3>
<p>Mano tos dienos tikslas buvo šią radijo bangom valdomą mašinėlę paversti į kliūtis apvažiuojantį robotą.</p>
<p><a href="http://www.arvydas.net/wp-content/uploads/2009/11/IMG1710.jpg" rel="lightbox[710]" class="liimagelink"><img class="alignnone size-full wp-image-712" title="IMG1710" src="http://www.arvydas.net/wp-content/uploads/2009/11/IMG1710.jpg" alt="IMG1710" width="500" height="333" /></a></p>
<p><span id="more-710"></span>Šiam projektui <a href="http://www.arvydas.net/roboto-vaziuokle" target="_blank" class="liinternal">anksčiau įsigytą mašiną</a> palikau namie, nes ši &#8211; daug mažesnė, kompaktiškesnė ir naudoja mažiau energijos. Ji taipogi yra varoma dviem atskirais varikliukais, valdančiais po vieną ratų pusę.</p>
<h3>Pradedam ardymą!</h3>
<p><a href="http://www.arvydas.net/wp-content/uploads/2009/11/IMG1711.jpg" rel="lightbox[710]" class="liimagelink"><img class="alignnone size-full wp-image-713" title="IMG1711" src="http://www.arvydas.net/wp-content/uploads/2009/11/IMG1711.jpg" alt="IMG1711" width="500" height="333" /></a></p>
<p>Viršuje &#8211; išardytos mašinėlės nuotrauka. Pats žaislas tikrai geros kokybės, nes su juo galima važinėti per purvą ir net plaukti vandeniu. Ką gali žinoti, gal ir šiai savybei rasim robotizuotą pritaikymą. :) Nuo mašinėlės važiuoklės dalies einančius laidus nukirpau maždaug ties viduriu ir prilitavau ilgesnius, kad galėčiau eksperimentuoti. Visą radijo bangom valdomą elektroniką atidėjau į šalį. Galbūt ją panaudosiu vėliau, kai galėsiu padaryti dvigubą mašinėlės valdymą: perjungiamą tarp valdymo radijo bangom arba robotizuoto.</p>
<p><a href="http://www.arvydas.net/wp-content/uploads/2009/11/IMG1712.jpg" rel="lightbox[710]" class="liimagelink"><img class="alignnone size-full wp-image-714" title="IMG1712" src="http://www.arvydas.net/wp-content/uploads/2009/11/IMG1712.jpg" alt="IMG1712" width="500" height="333" /></a></p>
<p>Trumpa pertraukėlė: mano darbo stalas. Labai nervino prastas apšvietimas, bet atmosfera buvo puiki: apie 40 hakerių vienoje vietoje besidalinančių idėjomis ir elektronikos dalimis. Visi nuolat prie ko nors dirbo, žiūrėjo kaip sekėsi kitiems ar patys pasakojo savo problemas ir įspūdžius.</p>
<p><a href="http://www.arvydas.net/wp-content/uploads/2009/11/IMG1713.jpg" rel="lightbox[710]" class="liimagelink"><img class="alignnone size-full wp-image-715" title="IMG1713" src="http://www.arvydas.net/wp-content/uploads/2009/11/IMG1713.jpg" alt="IMG1713" width="500" height="333" /></a></p>
<p>Viskas paruošta testavimui: apversta važiuoklė, kad betestuojant nenuriedėtų kartu su visom elektroninėm dalim, L293D varikliukų valdymo mikroschema ant prototipinės plokštės, <a href="http://www.arvydas.net/arduino-mega" target="_blank" class="liinternal">Arduino MEGA</a>, <a href="http://www.arvydas.net/arduino-mega-ir-atstumo-detektorius" target="_blank" class="liinternal">SRF05 atstumo detektorius</a> ant servo. Beje, servo nebuvo naudojamas, nes būčiau nesuspėjęs laiku užbaigti, kadangi būtų tekę rašyti daug sudėtingesnį kodą norint padaryti atstumo detektorių besisukiojantį 180 laipsnių kampu.</p>
<h3>Kodas</h3>
<p>Dalį kodo pasiskolinau iš <a href="http://luckylarry.co.uk/2009/08/obstacle-avoidance-robot-build-your-own-larrybot/" target="_blank" class="liexternal">LuckyLarry&#8217;s Obstacle avoidance robot</a>.</p>
<pre class="brush: cpp; title: ;">
const int numOfReadings = 10; // number of readings to take/ items in the array
int readings[numOfReadings];  // stores the distance readings in an array
int arrayIndex = 0;           // arrayIndex of the current item in the array
int total = 0;                // stores the cumlative total
int averageDistance = 0;      // stores the average value
unsigned long distance = 0;

const int motor1Pin1 = 2;    // H-bridge leg 1
const int motor1Pin2 = 3;    // H-bridge leg 2
const int motor2Pin1 = 4;    // H-bridge leg 3
const int motor2Pin2 = 5;    // H-bridge leg 4
const int enable1Pin = 9;    // H-bridge enable pin
const int enable2Pin = 10;   // H-bridge enable pin
const int ledPin = 13;       // LED

#define echoPin 6             // the SRF04's echo pin
#define initPin 7             // the SRF04's init pin
unsigned long pulseTime = 0;  // variable for reading the pulse
long servoAngle = 90;         // variable for reading the pulse
int servoDirection = 1;

void setup() {
  pinMode(ledPin, OUTPUT);

  // set all the other pins you're using as outputs:
  pinMode(motor1Pin1, OUTPUT);
  pinMode(motor1Pin2, OUTPUT);
  pinMode(enable1Pin, OUTPUT);

  pinMode(motor2Pin1, OUTPUT);
  pinMode(motor2Pin2, OUTPUT);
  pinMode(enable2Pin, OUTPUT);

  // set enablePin high so that motor can turn on:
  digitalWrite(enable1Pin, HIGH);
  digitalWrite(enable2Pin, HIGH);

  // make the init pin an output:
  pinMode(initPin, OUTPUT);
  // make the echo pin an input:
  pinMode(echoPin, INPUT);

  for (int thisReading = 0; thisReading &lt; numOfReadings; thisReading++)
  {
    readings[thisReading] = 0;
  }

  // blink the LED 3 times. This should happen only once.
  // if you see the LED blink three times, it means that the module
  // reset itself,. probably because the motor caused a brownout
  // or a short.
  blink(ledPin, 3, 100);
}

void loop() {
  digitalWrite(initPin, HIGH);         // send 10 microsecond pulse
  delayMicroseconds(10);               // wait 10 microseconds before turning off
  digitalWrite(initPin, LOW);          // stop sending the pulse
  pulseTime = pulseIn(echoPin, HIGH);  // Look for a return pulse, it should be high as the pulse goes low-high-low
  distance = pulseTime/58;             // Distance = pulse time / 58 to convert to cm.
  total= total - readings[arrayIndex]; // subtract the last distance
  readings[arrayIndex] = distance;     // add distance reading to array
  total= total + readings[arrayIndex]; // add the reading to the total
  arrayIndex = arrayIndex + 1;         // go to the next item in the array

  // At the end of the array (10 items) then start again
  if (arrayIndex &gt;= numOfReadings)  {
    arrayIndex = 0;
  }

  averageDistance = total / numOfReadings;      // calculate the average distance
  delay(10);

  // check the average distance and move accordingly

  if (averageDistance &lt;= 20){
    // go backwards
    digitalWrite(motor1Pin1, HIGH);
    digitalWrite(motor1Pin2, LOW);
    digitalWrite(motor2Pin1, HIGH);
    digitalWrite(motor2Pin2, LOW);

  }

  if (averageDistance &lt;= 60 &amp;&amp; averageDistance &gt; 20) {
    // turn
    digitalWrite(motor1Pin1, HIGH);
    digitalWrite(motor1Pin2, LOW);
    digitalWrite(motor2Pin1, LOW);
    digitalWrite(motor2Pin2, LOW);
  }

  if (averageDistance &gt; 60)   {
    // go forward
    digitalWrite(motor1Pin1, LOW);
    digitalWrite(motor1Pin2, HIGH);
    digitalWrite(motor2Pin1, LOW);
    digitalWrite(motor2Pin2, HIGH);

  }

}

/*
blinks an LED
*/
void blink(int whatPin, int howManyTimes, int milliSecs) {
  int i = 0;
  for ( i = 0; i &lt; howManyTimes; i++) {
    digitalWrite(whatPin, HIGH);
    delay(milliSecs/2);
    digitalWrite(whatPin, LOW);
    delay(milliSecs/2);
  }
}
</pre>
<p>Šis kodas nuolat seka vidutinį atstumą iki artimiausio objekto:</p>
<ul>
<li> Jeigu atstumas daugiau nei 60cm, tuomet robotas juda į priekį;</li>
<li>Jeigu atstumas tarp 20cm ir 60cm, robotas bando apvažiuoti sukdamas į kairę;</li>
<li>Jeigu atstumas mažiau už 20cm, robotas juda atgal.</li>
</ul>
<h3>Veikia!</h3>
<p>Ištestuotavus ir pataisius keleta smulkmenų robotas surinktas ant stalo ir veikia!</p>
<p><a href="http://www.arvydas.net/wp-content/uploads/2009/11/IMG1714.jpg" rel="lightbox[710]"><img class="alignnone size-full wp-image-716" title="IMG1714" src="http://www.arvydas.net/wp-content/uploads/2009/11/IMG1714.jpg" alt="IMG1714" width="500" height="333" /><br />
</a></p>
<p>Važinėjančio roboto video:</p>
<p><a href="http://www.arvydas.net/robotas-is-zaislines-masineles"><em>Click here to view the embedded video.</em></a></p>
<h3>Kas toliau?</h3>
<p>Iki mano visų idėjų įgyvendinimo dar teks padirbėti:</p>
<ul>
<li>Reikia išnaudoti servo, kad robotas geriau matytų aplinką;</li>
<li>Išspręsti problemas dėl greito baterijų išeikvojimo, nes staiga keičiant varikliukų sukimosi kryptį  kenčia baterijos;</li>
<li>Padaryti, kad robotukas sustotų ir apsidarytų įvertindamas atstumus;</li>
<li>Susikurtų atminty aplinkos žemėlapį;</li>
<li>Sugebėtų susirasti įkroviklį ir jame pakrauti baterijas kai nusėda;</li>
<li>Mėgtų arba bijotų stiprios šviesos.</li>
</ul>
<h3>Ką sukūrė kiti?</h3>
<p>Kiti dalyviai daugiausia eksperimentavo su šviesa ir bandė valdyti kompiuterį su Arduino.</p>
<p><a href="http://www.arvydas.net/wp-content/uploads/2009/11/IMG1721.jpg" rel="lightbox[710]" class="liimagelink"><img class="alignnone size-thumbnail wp-image-721" title="IMG1721" src="http://www.arvydas.net/wp-content/uploads/2009/11/IMG1721-150x150.jpg" alt="IMG1721" width="150" height="150" /></a> <a href="http://www.arvydas.net/wp-content/uploads/2009/11/IMG1720.jpg" rel="lightbox[710]" class="liimagelink"><img class="alignnone size-thumbnail wp-image-720" title="IMG1720" src="http://www.arvydas.net/wp-content/uploads/2009/11/IMG1720-150x150.jpg" alt="IMG1720" width="150" height="150" /></a> <a href="http://www.arvydas.net/wp-content/uploads/2009/11/IMG1718.jpg" rel="lightbox[710]" class="liimagelink"><img class="alignnone size-thumbnail wp-image-719" title="IMG1718" src="http://www.arvydas.net/wp-content/uploads/2009/11/IMG1718-150x150.jpg" alt="IMG1718" width="150" height="150" /></a> <a href="http://www.arvydas.net/wp-content/uploads/2009/11/IMG1722.jpg" rel="lightbox[710]" class="liimagelink"><img class="alignnone size-thumbnail wp-image-717" title="IMG1722" src="http://www.arvydas.net/wp-content/uploads/2009/11/IMG1722-150x150.jpg" alt="IMG1722" width="150" height="150" /></a> <a href="http://www.arvydas.net/wp-content/uploads/2009/11/IMG1717.jpg" rel="lightbox[710]" class="liimagelink"><img class="alignnone size-thumbnail wp-image-718" title="IMG1717" src="http://www.arvydas.net/wp-content/uploads/2009/11/IMG1717-150x150.jpg" alt="IMG1717" width="150" height="150" /></a><a href="http://www.arvydas.net/wp-content/uploads/2009/11/IMG1726.jpg" rel="lightbox[710]" class="liimagelink"> <img class="alignnone size-thumbnail wp-image-722" title="IMG1726" src="http://www.arvydas.net/wp-content/uploads/2009/11/IMG1726-150x150.jpg" alt="IMG1726" width="150" height="150" /></a></p>
<p>Daugiau apie Howduino galite pasiskaityti ir pasižiūrėti:</p>
<ul>
<li>Daugiau nutoraukų ir video <a href="http://www.flickr.com/groups/howduino/" target="_blank" class="liflickr">Howduino Flickr grupėje</a></li>
<li>FizzPOP <a href="http://www.fizzpop.org.uk/blog/the-howduino-happened/" target="_blank" class="liexternal">blogo įrašas apie Howduino</a>.</li>
</ul>
<p>Būtinai parašysiu kaip sekėsi toliau hakinti mašinėlę.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.arvydas.net/robotas-is-zaislines-masineles/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Arduino MEGA ir atstumo detektorius</title>
		<link>http://www.arvydas.net/arduino-mega-ir-atstumo-detektorius</link>
		<comments>http://www.arvydas.net/arduino-mega-ir-atstumo-detektorius#comments</comments>
		<pubDate>Mon, 09 Nov 2009 11:00:41 +0000</pubDate>
		<dc:creator>Arvydas</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Elektronika]]></category>

		<guid isPermaLink="false">http://www.arvydas.net/?p=672</guid>
		<description><![CDATA[
Kaip ir žadėjau toliau tęsiu eksperimentus su davikliais. Prie jau pajungto LCD ekrano prijungiau SRF05: ultragarsinį atstumo detektorių, kuris bus roboto rega ir leis neatsimušti į kliūtis. Įrenginys yra tos dvi &#8220;akys&#8221; schemos dešinėje viršuje. Veikimo principas nesudėtingas: garsiakalbio pagalba siunčiams aukšto dažnio (40 kHz) garsas ir mikrofonas laukia kol nuo netoliese esančio daikto sugrįš [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.arvydas.net/wp-content/uploads/2009/11/arduino-range-finder.jpg" rel="lightbox[672]" class="liimagelink"><img class="alignnone size-full wp-image-674" title="arduino-range-finder" src="http://www.arvydas.net/wp-content/uploads/2009/11/arduino-range-finder.jpg" alt="arduino-range-finder" width="500" height="310" /></a></p>
<p>Kaip ir žadėjau toliau tęsiu eksperimentus su davikliais. Prie jau pajungto LCD ekrano prijungiau SRF05: ultragarsinį atstumo detektorių, kuris bus roboto rega ir leis neatsimušti į kliūtis. Įrenginys yra tos dvi &#8220;akys&#8221; schemos dešinėje viršuje. Veikimo principas nesudėtingas: garsiakalbio pagalba siunčiams aukšto dažnio (40 kHz) garsas ir mikrofonas laukia kol nuo netoliese esančio daikto sugrįš aidas. Kai tik aidas sugrįžta išmatuojamas laikas kiek toks procesas užtruko ir atstumas grąžinamas atgal į Arduino kaip impulso trukmė daviklio išėjime. Visa tai vaizdžiai atrodo taip:</p>
<p><a href="http://www.arvydas.net/arduino-mega-ir-atstumo-detektorius"><em>Click here to view the embedded video.</em></a></p>
<p>Pagaliau nuspirkau FireWire kabelį. Dabar savo eksperimentus galiu filmuoti su DV kamera ir kokybė nepalyginamai geresnė nei nei filmuojant su telefonu.</p>
<p>Kodo galabaliukas, kuris veikia mikroprocesoriuje:</p>
<pre class="brush: cpp; title: ;">
// include the library code:
#include &lt;LiquidCrystal.h&gt;

#define echoPin 6             // the SRF05's echo pin
#define initPin 7             // the SRF05's init pin
unsigned long pulseTime = 0;  // variable for reading the pulse

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
 // set up the LCD's number of rows and columns:
 lcd.begin(16, 2);

 // make the init pin an output:
 pinMode(initPin, OUTPUT);
 // make the echo pin an input:
 pinMode(echoPin, INPUT);
}

void loop() {
 digitalWrite(initPin, HIGH);
 delayMicroseconds(10);
 digitalWrite(initPin, LOW);

 pulseTime = pulseIn(echoPin, HIGH);

 lcd.setCursor(0,0);
 lcd.print(pulseTime / 58, DEC);
 lcd.print(&quot;cm&quot;);

 delay(100);
 lcd.clear();
}
</pre>
<p>Kas 100 milisekundžių programa nusiunčia impulsą į SRF05, sulaukia iš jo atsakymo ir rezultatą parodo LCD ekrane.</p>
<p>Su šiuo davikliu galima sukonstruoti labai įdomų instrumentą pavadintą <em>theremin</em>. Net nežinau kaip jis verčiasi į lietuvių kalbą. Principą yra lengviau pademonstruoti, negu paaiškinti:</p>
<p><a href="http://www.arvydas.net/arduino-mega-ir-atstumo-detektorius"><em>Click here to view the embedded video.</em></a></p> <p><a href="http://www.arvydas.net/arduino-mega-ir-atstumo-detektorius"><em>Click here to view the embedded video.</em></a></p>
<p>Daugiau informacijos apie instrumentą su Arduino:</p>
<ul>
<li><a href="http://luckylarry.co.uk/2009/11/arduino-a-basic-theremin/" target="_blank" class="liexternal">Arduino: A Basic Theremine</a></li>
<li><a href="http://luckylarry.co.uk/2009/11/arduino-basic-theremin-meets-processing/" target="_blank" class="liexternal">Arduino: Basic Theremin meets Processing!</a></li>
</ul>
<p>Roboto kūrimas eitųsi kur kas greičiau jeigu pažingsniui nebloginčiau visko ką darau, bet aprašymas tebūnie irgi proceso dalis. :) Galite matyti kaip sekasi mokintis.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.arvydas.net/arduino-mega-ir-atstumo-detektorius/feed</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>Arduino MEGA ir LCD ekranas</title>
		<link>http://www.arvydas.net/arduino-mega-ir-lcd-ekranas</link>
		<comments>http://www.arvydas.net/arduino-mega-ir-lcd-ekranas#comments</comments>
		<pubDate>Sat, 07 Nov 2009 22:10:58 +0000</pubDate>
		<dc:creator>Arvydas</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Elektronika]]></category>

		<guid isPermaLink="false">http://www.arvydas.net/?p=656</guid>
		<description><![CDATA[
Kuo toliau eksperimentuoju su savo Arduino MEGA, tuo man jis labiau patinka. Aš visada galvojau, kad mikroprocesoriai, jų programavimas ir apskritai pritaikymas yra iš kosmoso srities ir man iki jo toli toli, bet su Arduino viskas per daug paprasta. Iš tiesų, eksperimentuoti taip paprasta, kad dabar net gailiuosi, jog to nedariau iki šiol. Anglijoj elektroninių [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.arvydas.net/wp-content/uploads/2009/11/arduino-lcd-test.JPG" rel="lightbox[656]" class="liimagelink"><img class="alignnone size-full wp-image-658" title="arduino-lcd-test" src="http://www.arvydas.net/wp-content/uploads/2009/11/arduino-lcd-test.JPG" alt="arduino-lcd-test" width="500" height="348" /></a></p>
<p>Kuo toliau eksperimentuoju su savo <a href="http://www.arvydas.net/arduino-mega" target="_blank" class="liinternal">Arduino MEGA</a>, tuo man jis labiau patinka. Aš visada galvojau, kad mikroprocesoriai, jų programavimas ir apskritai pritaikymas yra iš kosmoso srities ir man iki jo toli toli, bet su Arduino viskas per daug paprasta. Iš tiesų, eksperimentuoti taip paprasta, kad dabar net gailiuosi, jog to nedariau iki šiol. Anglijoj elektroninių komponentų pasirinkimas internetinės parduotuvėse yra didžiulis. Ypač pamėgau <a href="http://www.rapidonline.com/" target="_blank" class="liexternal">Rapid</a> dėl nepaprastai didelio įvairiausių komponentų kiekio ir <a href="http://www.oomlout.co.uk/" target="_blank" class="liexternal">Oomlout</a> už puikų atviros hardware idėjos palaikymą.</p>
<p>Iš pastarųjų kaip tik ir noriu pademonstruoti įsigytą LCD ekraną už vos £6 (!!!).</p>
<p><a href="http://www.arvydas.net/arduino-mega-ir-lcd-ekranas"><em>Click here to view the embedded video.</em></a></p>
<p>Surinkti buvo labai paprasta, nes Oomlout atsiuntė išsamią pajungimo schemą, o be to visa informacija apie <a href="http://www.oomlout.co.uk/lcd-display-16-x-2-p-212.html" target="_blank" class="liexternal">kiekvieną jų produktą yra laisvai pasiekiama internete</a>. <span id="more-656"></span></p>
<p><a href="http://www.arvydas.net/wp-content/uploads/2009/11/arduino-lcd-schematic.jpg" rel="lightbox[656]" class="liimagelink"><img class="alignnone size-full wp-image-661" title="arduino-lcd-schematic" src="http://www.arvydas.net/wp-content/uploads/2009/11/arduino-lcd-schematic.jpg" alt="arduino-lcd-schematic" width="296" height="427" /></a></p>
<p>Kažko labai šustro daryti nebandžiau, nes norėjau tik susipažinti kaip veikia LCD ekranėlis, o pagrindinis tikslas gi yra sukurti autonominį kliūtis apvažiuojantį robotą, todėl čia yra tik pasiruošimo ir mokinimosi darbai. LCD ekranėlis ateityje rodys roboto būseną ir gelbės kaip debuginimo pagalbininkas. Visas kodas, kurio pagrindu bėga ši eilutę atrodo taip:</p>
<pre class="brush: cpp; title: ;">
// include the library code:
#include &lt;LiquidCrystal.h&gt;

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  // set up the LCD's number of rows and columns:
  lcd.begin(16, 2);
}

void loop() {

  lcd.print(&quot;                 arvydas.net&quot;);

  lcd.setCursor(16,1);
  lcd.autoscroll();

  for (int thisChar = 0; thisChar &amp;lt; 28; thisChar++) {
    lcd.print(&quot; &quot;);
    delay(250);
  }
  lcd.noAutoscroll();

  lcd.clear();
}
</pre>
<p>Štai kodėl iki šiol negaliu atsidžiaugti kaip su Arduino pagalbinių bibliotekų ir API pagalba galima paprastai valdyti LCD. Šis paprastumo principas jaučiasi kad ir ką darytum su Arduino: bandytum prijungti sensorius, sukurti šviesoforą ar net susirinkti savo Arduino iš atskirų dalių. Prisipirkau dar visą galybę kitokio elektroninio gėrio savo projektui, bet apie kiekvieną iš jų truputį vėliau.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.arvydas.net/arduino-mega-ir-lcd-ekranas/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Arduino MEGA</title>
		<link>http://www.arvydas.net/arduino-mega</link>
		<comments>http://www.arvydas.net/arduino-mega#comments</comments>
		<pubDate>Mon, 02 Nov 2009 11:38:51 +0000</pubDate>
		<dc:creator>Arvydas</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Elektronika]]></category>

		<guid isPermaLink="false">http://www.arvydas.net/?p=633</guid>
		<description><![CDATA[
Elektronika kaip hobiu domėjausi nuo 5 klasės, tik dėl visiškai kitokio darbo pobūdžio prie elektroninių komponentų nebuvau rimčiau prisėdęs jau daugiau nei 7 metai. Įsivaizduokit koks džiaugsmas mane apėmė, kai sužinojau, kad mano OggCamp 2009 laimėta Arduino MEGA yra miniatiūrinė elektroninių prototipų kūrimo platforma! Viskas būtų gerai, jei tik prieš pradėdamas eksperimentuoti su šituo gėriu [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.arvydas.net/wp-content/uploads/2009/11/arduino-mega.jpg" rel="lightbox[633]" class="liimagelink"><img class="alignnone size-full wp-image-634" title="arduino-mega" src="http://www.arvydas.net/wp-content/uploads/2009/11/arduino-mega.jpg" alt="arduino-mega" width="500" height="327" /></a></p>
<p>Elektronika kaip hobiu domėjausi nuo 5 klasės, tik dėl visiškai kitokio darbo pobūdžio prie elektroninių komponentų nebuvau rimčiau prisėdęs jau daugiau nei 7 metai. Įsivaizduokit koks džiaugsmas mane apėmė, kai sužinojau, kad mano <a href="http://www.arvydas.net/oggcamp-2009" target="_blank" class="liinternal">OggCamp 2009</a> laimėta <a href="http://arduino.cc/en/Main/ArduinoBoardMega" target="_blank" class="liexternal">Arduino MEGA</a> yra miniatiūrinė elektroninių prototipų kūrimo platforma! Viskas būtų gerai, jei tik prieš pradėdamas eksperimentuoti su šituo gėriu būčiau žinojęs, kad viskas nebus taip paprasta kaip atrodė iš pirmo žvilgsnio, bet apie viską iš pradžių. :)</p>
<h3>Kas yra Arduino MEGA?</h3>
<p>Tai yra ATMega mirkroprocesorium (didelis juodas blynas plokštės viduryje) paremta pigi prototipinių elektroninių įrenginių kūrimo plokštė, žmonėms, kurie mažai nusimano apie elektroniką. Įdomu yra tai, kad Arduino &#8211; atviro programinio kodo ir harware platforma. Visi brėžiniai, techniniai duomenis ir programavimo informacija yra prieinama viešai ir bet kas pagal pateiktą informaciją gali susirinkti plokštę pats arba užsisakyti jau surinktą. <a href="http://arduino.cc/en/Main/Hardware" target="_blank" class="liexternal">Arduino platformų yra įvairių</a>, mano turima MEGA turi daugiausia įėjimų/išėjimų tarp kurių 32 skaitmeniniai, 16 analoginių ir 4 grupės skirtų bendravimui tarpusavyje tarp pačių plokščiu arba kitais įrenginiais nuosekliu protokolu. <span id="more-633"></span>Plokštės suprojektuotos taip, kad ant jų galima būtų dėti <em>shield&#8217;us</em> (šarvus). Tai yra kitos plokštės, kurios maunasi viena ant kitos ir ant pačios Arduino, bendraujančios su mikroprocesoriaus smegenim per įėjimus/išėjimus ir galinčios atlikti bala žino kiek funkcijų: rodyti LCD displėjuje tekstą, priimti signalus iš jungiklių, temperatūros, šviesos, drėgnumo, slėgio ir kitokių daviklių, dirbti kaip ethernet ar wireless įrenginys, kuris suteikia plokštei galimybę bendrauti internetu ir t.t. Visų galimybių išvardinti neįmanoma, nes jos apribotos tik fantazija ir piniginės storumu. :) Pavyzdžiui, čia &#8211; Arduino tinklo plokštė, kurios pagalba galima jungtis prie interneto:</p>
<p><a href="http://www.arvydas.net/wp-content/uploads/2009/11/ARSH-01-ET_MED.jpg" rel="lightbox[633]" class="liimagelink"><img class="alignnone size-full wp-image-637" title="ARSH-01-ET_MED" src="http://www.arvydas.net/wp-content/uploads/2009/11/ARSH-01-ET_MED.jpg" alt="ARSH-01-ET_MED" width="330" height="220" /></a></p>
<h3>Arduino programavimas</h3>
<p>Programavimas vyksta prijungus Arduino plokštę prie kompiuterio per USB jungtį ir su specialiu IDE sukompiliavus kodą jis nusiunčiamas tiesiai į mikroprocesoriaus atmintį. Po to USB jungtį galima atjungti ir įrašyta programa toliau veiks pajungus plokštei atskirą maitinimo šaltinį.</p>
<p><a href="http://www.arvydas.net/wp-content/uploads/2009/11/arduino-ide.png" rel="lightbox[633]" class="liimagelink"><img class="alignnone size-full wp-image-638" title="arduino-ide" src="http://www.arvydas.net/wp-content/uploads/2009/11/arduino-ide.png" alt="arduino-ide" width="501" height="455" /></a></p>
<h3>Pirmoji programa</h3>
<p>Paprasčiausia programa &#8211; mirksintis šviesos diodas, kurią aš nusprendžiau šiek tiek patobulinti ir sukurti pėsčiųjų šviesoforą. Kaip jis veikia galite pamatyti čia:</p>
<p><a href="http://www.arvydas.net/arduino-mega"><em>Click here to view the embedded video.</em></a></p>
<p>O čia yra kodas kuris veikia mikroprocesoriuje:</p>
<pre class="brush: cpp; title: ;">
int carRedPin =  13;
int carYellowPin =  12;
int carGreenPin =  11;
int pedestrianRedPin =  10;
int pedestrianGreenPin =  9;

// The setup() method runs once, when the sketch starts

void setup()   {
  pinMode(carRedPin, OUTPUT);
  pinMode(carYellowPin, OUTPUT);
  pinMode(carGreenPin, OUTPUT);
  pinMode(pedestrianRedPin, OUTPUT);
  pinMode(pedestrianGreenPin, OUTPUT);
}

// the loop() method runs over and over again,
// as long as the Arduino has power

void blink(int light)
{
  digitalWrite(light, LOW);
  delay(500);
  digitalWrite(light, HIGH);
  delay(500);
  digitalWrite(light, LOW);
  delay(500);
  digitalWrite(light, HIGH);
  delay(500);
  digitalWrite(light, LOW);
  delay(500);
  digitalWrite(light, HIGH);
  delay(500);
  digitalWrite(light, LOW);
}

void loop()
{
  digitalWrite(carRedPin, HIGH);
  digitalWrite(pedestrianGreenPin, HIGH);
  delay(3000);

  blink(pedestrianGreenPin);

  digitalWrite(pedestrianRedPin, HIGH);
  digitalWrite(pedestrianGreenPin, LOW);
  delay(1000);
  digitalWrite(carYellowPin, HIGH);
  delay(1000);
  digitalWrite(carRedPin, LOW);
  digitalWrite(carYellowPin, LOW);
  digitalWrite(carGreenPin, HIGH);
  delay(3000);

  blink(carGreenPin);

  digitalWrite(carYellowPin, HIGH);
  delay(2000);
  digitalWrite(carYellowPin, LOW);
  digitalWrite(carRedPin, HIGH);
  delay(1000);
  digitalWrite(pedestrianRedPin, LOW);
}
</pre>
<p>Pradžiai nurodau kurios jungtys veiks kaip išėjimai, tada pagrindiniame cikle <em>loop </em>tam imituojant šviesoforą tikru laiku yra įjungiami vieni šviesos diodai ir tam tikru metu išjungiami kiti.</p>
<h3>Mano istorija su Arduino</h3>
<p>Čia tikriausiai taisyklė, kad mano eksperimentavimas su elektronika niekada nebūna paprastas. Arduino neišimtis. Iš pradžių man niekaip nepavyko nusiųsti paprasčiausios demonstracinės programos į plokštę, nes IDE metė klaidą, kad nepavyksta susibendrauti su MEGA. Jau buvau beveik įsitikinęs , kad gavau defektuotą plokštę, bet rankų vis tiek nenuleidau. Dovanotam arkliui į dantis nežiūrima. :)</p>
<p>Besiknisdamas forumuose išsiaiškinau, kad mikroprocesoriuje tiesiog nebuvo <em>bootloader&#8217;io</em>, kuris yra kaip BIOS kompiuteryje: jo pagalba plokštė gali bendrauti su kompiuteriu per USB, o be to Arduino tėra tik mikroschemų krūva. Standartiškai visos parduodamas Arduino savyje jau turi įdiegtą <em>bootloader</em>, bet mano atveju mikroschema buvo visiškai tuščia.</p>
<p>Nebūdamas visai tikras, kad su pačia Arduino hardware viskas gerai, nusprendžiau rizikuoti ir internetu nusipirkti atskirą programatorių <a href="http://www.ladyada.net/make/usbtinyisp/index.html" target="_blank" class="liexternal">USBTinyISP</a>. Iš tokios detalių krūvos:</p>
<p><a href="http://www.arvydas.net/wp-content/uploads/2009/11/usbtinyisp-tools.jpg" rel="lightbox[633]" class="liimagelink"><img class="alignnone size-full wp-image-640" title="usbtinyisp-tools" src="http://www.arvydas.net/wp-content/uploads/2009/11/usbtinyisp-tools.jpg" alt="usbtinyisp-tools" width="500" height="358" /></a></p>
<p>Susilitavau tokį įrenginį:</p>
<p><a href="http://www.arvydas.net/wp-content/uploads/2009/11/usbtinyisp.jpg" rel="lightbox[633]" class="liimagelink"><img class="alignnone size-full wp-image-636" title="usbtinyisp" src="http://www.arvydas.net/wp-content/uploads/2009/11/usbtinyisp.jpg" alt="usbtinyisp" width="500" height="333" /></a></p>
<p>Šio universalaus programatoriaus pagalba į plokštę nusiunčiau <em>bootloader </em>ir pagaliau Arduino pradėjo bendrauti per USB! Iš karto susidūriau su kitu nepatogumu: kiekvieną kartą programuojant mikroprocesorių teko spaudinėti plokštėje esantį Reset mygtuką, nors plokštės nuresetinimas turėjo vykti automatiškai IDE nuspaudus <em>Upload</em>. Šį gerai žinoma Arduino MEGA defektą panaikinau prilitavęs teisingą keramikinį kondensatorių:</p>
<p><a href="http://www.arvydas.net/wp-content/uploads/2009/11/arduino-reset-mod.jpg" rel="lightbox[633]" class="liimagelink"><img class="alignnone size-full wp-image-641" title="arduino-reset-mod" src="http://www.arvydas.net/wp-content/uploads/2009/11/arduino-reset-mod.jpg" alt="arduino-reset-mod" width="500" height="333" /></a></p>
<p>Plokštę priversti veikti užtrukau apie savaitę, bet už tai setisfekšinas padarius pirmą veikiančią programą nerealus. :) Pagaliau mano programos &#8220;ištrūko&#8221; iš kompiuterio ir galės reaguoti į fizinį pasaulį!</p>
<p>Viskas, garantuotai turiu naują &#8220;ligą&#8221;. :)</p>
<h3>Kas toliau?</h3>
<p>Dabar kai viskas veikia ir ištestuota pabandysiu įgyvendinti savo seną svajonę ir sukurti kokį nors autonominį kliūtis apvažiuojantį robotą. Šiaip robotų kūrimo platformos kainuoja kosminius pinigus &#8211; nuo £100 be jokios elektronikos ir varikliukų. Sumąsčiau genialią mintį: Anglijoj žaislų parduotuvėse visokios radijo bangom valdomos mašinos kainuoja kapeikas, todėl vos už £7 nusipirkau naują tik su pakavimo defektu R/C mašiną ir tikėjausi užsiimti jos vandalizacija.</p>
<p><a href="http://www.arvydas.net/wp-content/uploads/2009/11/car-model-jaguar.jpg" rel="lightbox[633]" class="liimagelink"><img class="alignnone size-full wp-image-635" title="car-model-jaguar" src="http://www.arvydas.net/wp-content/uploads/2009/11/car-model-jaguar.jpg" alt="car-model-jaguar" width="500" height="333" /></a></p>
<p>Tik kuomet vakar prieš išardant dalimis su ja pabandžiau šiek tiek pažaisti, pasirodo nusipirkau visai fainą žaislą, kuris labai jėgiškai driftina ant kilimo. Sūnus, aišku, iš karto pareiškė į jį teises. Na ir ką dabar padarysi? Teks ieškotis kažko kito skrodimui, bet apie tai jau kituose mano įrašuose. :)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.arvydas.net/arduino-mega/feed</wfw:commentRss>
		<slash:comments>40</slash:comments>
		</item>
	</channel>
</rss>

