<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5769326721111757605</id><updated>2024-09-01T12:15:26.947+03:00</updated><title type='text'>100kg Arduino Sentry Robot</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://sentrybot.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5769326721111757605/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://sentrybot.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>11</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5769326721111757605.post-2104080157928393959</id><published>2011-05-17T10:49:00.001+03:00</published><updated>2011-05-17T10:52:36.386+03:00</updated><title type='text'>RFM12B with Arduino</title><content type='html'>I&#39;ve tried to get this very cheap radio modem working with Arduino. So far, no success, but I still got something working. I&#39;ll write a little bit about what I&#39;ve done so that someone smarter than me will get it right. I managed to connect the board to Arduino using the SPI interface. I also managed to get the software working but couldn&#39;t get any data through the modem. Anyway, here&#39;s how you connect the RFM12B to Duemilanove or similar 168/328 boards.&lt;br /&gt;
&lt;br /&gt;
1. Download the demo code and RF12.h Arduino library from here &lt;a href=&quot;http://jeelabs.org/2009/02/10/rfm12b-library-for-arduino/&quot;&gt;http://jeelabs.org/2009/02/10/rfm12b-library-for-arduino/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
2. Download and install ports.h library from here &lt;a href=&quot;http://jeelabs.net/projects/cafe/wiki/Ports&quot;&gt;http://jeelabs.net/projects/cafe/wiki/Ports&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
3. Upload the code to Arduino and connect the modem using SPI. The SPI bus uses pins 11 (SDI), 12 (SDO), and 13 (SCK). Also connect the pins 10 (SEL), 2 (IRQ) and 3.3V pin to (VDD) and ground to (GND). Use &lt;a href=&quot;http://www.hoperf.com/upfile/RFM12B.pdf&quot;&gt;this&lt;/a&gt; datasheet to find correct pins on the RFM12B.&lt;br /&gt;
&lt;br /&gt;
4. Open serial monitor and see the main menu where you can select your modem&#39;s frequency, node, etc.</content><link rel='replies' type='application/atom+xml' href='http://sentrybot.blogspot.com/feeds/2104080157928393959/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sentrybot.blogspot.com/2011/05/rfm12b-with-arduino.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5769326721111757605/posts/default/2104080157928393959'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5769326721111757605/posts/default/2104080157928393959'/><link rel='alternate' type='text/html' href='http://sentrybot.blogspot.com/2011/05/rfm12b-with-arduino.html' title='RFM12B with Arduino'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5769326721111757605.post-6478823931291567668</id><published>2011-04-28T19:59:00.000+03:00</published><updated>2011-04-28T19:59:50.006+03:00</updated><title type='text'>The Sentry Bot Code</title><content type='html'>Today I started to write the code for my robot. First I did just a simple move forward --&amp;gt; avoid obstacle --&amp;gt; move forward again type of thing. Next thing is to find out if it works :) And if it works, it&#39;s easy to move on to next phases.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;line-height:70%&quot;&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;#include &amp;lt;Servo.h&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Servo us_servo;&lt;br /&gt;
Servo vas;&lt;br /&gt;
Servo oik;&lt;br /&gt;
&lt;br /&gt;
int temp = 0;&lt;br /&gt;
// Pins for ultra URM37 V3.2&lt;br /&gt;
int ultraData = 11;&lt;br /&gt;
int ultraTrigger = 10;&lt;br /&gt;
int ultraEnable = 9;&lt;br /&gt;
int ultraPower = 12;&lt;br /&gt;
&lt;br /&gt;
int readUltra(){&lt;br /&gt;
&amp;nbsp; int ultraValue = 0;&lt;br /&gt;
&amp;nbsp; int timecount = 0;&lt;br /&gt;
&amp;nbsp; int val = 0;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; // Wake up and get ready for sensing&lt;br /&gt;
&amp;nbsp;&amp;nbsp; pinMode(ultraPower, OUTPUT);&lt;br /&gt;
&amp;nbsp; digitalWrite(ultraPower, HIGH);&amp;nbsp; // Set to HIGH to provide 5V power&lt;br /&gt;
&amp;nbsp; pinMode(ultraEnable, OUTPUT);&lt;br /&gt;
&amp;nbsp; digitalWrite(ultraEnable, HIGH); // Set Enable Pin to HIGH&lt;br /&gt;
&amp;nbsp; pinMode(ultraTrigger, OUTPUT);&amp;nbsp;&amp;nbsp; // Switch signalpin to output&lt;br /&gt;
&amp;nbsp; pinMode(ultraData,INPUT);&lt;br /&gt;
&amp;nbsp; delay(200); //Give sensor some time to start up --Added By crystal&amp;nbsp; from Singapo, Thanks Crystal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; /* Send high-low-high pulse to activate the trigger pulse of the sensor&lt;br /&gt;
&amp;nbsp; * -------------------------------------------------------------------&lt;br /&gt;
&amp;nbsp; */&lt;br /&gt;
&amp;nbsp; digitalWrite(ultraTrigger, HIGH); // Send High pulse&lt;br /&gt;
&amp;nbsp; delayMicroseconds(500);&lt;br /&gt;
&amp;nbsp; digitalWrite(ultraTrigger, LOW); // Send low pulse&lt;br /&gt;
&amp;nbsp; delayMicroseconds(200);&lt;br /&gt;
&amp;nbsp; digitalWrite(ultraTrigger, HIGH); // Send High pulse&lt;br /&gt;
&amp;nbsp; delayMicroseconds(200);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; /* Listening for echo pulse&lt;br /&gt;
&amp;nbsp; * -------------------------------------------------------------------&lt;br /&gt;
&amp;nbsp; */&lt;br /&gt;
&amp;nbsp; // Loop until pin reads a high value&lt;br /&gt;
&amp;nbsp; do{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; val = digitalRead(ultraData);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Serial.println(&quot;BBB&quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }while(val == HIGH);&lt;br /&gt;
&amp;nbsp; // Loop until pin reads a high value&lt;br /&gt;
&amp;nbsp; do{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; val = digitalRead(ultraData);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; timecount ++;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Count echo pulse time&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delayMicroseconds(50);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }while(val == LOW);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; ultraValue = timecount; // Append echo pulse time to ultraValue&lt;br /&gt;
&lt;br /&gt;
// Turn the lights out when you leave...&lt;br /&gt;
&amp;nbsp; digitalWrite(ultraTrigger,LOW);&lt;br /&gt;
&amp;nbsp; digitalWrite(ultraEnable,LOW);&lt;br /&gt;
&amp;nbsp; digitalWrite(ultraPower,LOW);&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; return ultraValue;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void setup(){&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; Serial.begin(9600);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; pinMode(ledPin, OUTPUT); &lt;br /&gt;
&amp;nbsp;&amp;nbsp; pinMode(ledPin2, OUTPUT);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; vas.attach(7); // left motor to pin 7&lt;br /&gt;
&amp;nbsp;&amp;nbsp; oik.attach(8); // right motor to pin 8&lt;br /&gt;
&amp;nbsp;&amp;nbsp; us_servo.attach(9) // Ultrasonic sweeper servo to pin 9&lt;br /&gt;
}&lt;br /&gt;
void loop(){&lt;br /&gt;
&amp;nbsp; int pos = 0;&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; vas.write(110); // slowly forward&lt;br /&gt;
&amp;nbsp; oik.write(110);&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp; for(pos = 50; pos &amp;lt; 130; pos += 1){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; us_servo.write(pos);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; temp = readUltra();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (temp &amp;lt; 30)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay(10);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // waits 10ms for the servo to reach the position &lt;br /&gt;
&amp;nbsp;&amp;nbsp; } &lt;br /&gt;
&amp;nbsp;&amp;nbsp; for(pos = 130; pos&amp;gt;=51; pos-=1){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; us_servo.write(pos);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // tell servo to go to position in variable &#39;pos&#39; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; temp = readUltra();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (temp &amp;lt; 30)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay(10);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // waits 10ms for the servo to reach the position &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;
&amp;nbsp; if (temp &amp;lt; 30){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; vas.write(90); // stop movement&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; oik.write(90);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; for(int i=0;i&amp;lt;10;i++){ // wait 500ms and check if the obstacle is still there&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; temp = readUltra();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay(50);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;
&amp;nbsp; do {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; temp = readUltra();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; vas.write(80); // turn left&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; oik.write(100);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; delay(10);&lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;
&amp;nbsp; while (temp &amp;lt; 50) // thereshold to move forward again&lt;br /&gt;
&amp;nbsp; Serial.println(temp); // for debugging&lt;br /&gt;
}&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sentrybot.blogspot.com/feeds/6478823931291567668/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sentrybot.blogspot.com/2011/04/sentry-bot-code.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5769326721111757605/posts/default/6478823931291567668'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5769326721111757605/posts/default/6478823931291567668'/><link rel='alternate' type='text/html' href='http://sentrybot.blogspot.com/2011/04/sentry-bot-code.html' title='The Sentry Bot Code'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5769326721111757605.post-8363213727330869294</id><published>2011-04-20T12:27:00.001+03:00</published><updated>2011-04-20T14:20:06.185+03:00</updated><title type='text'>URM37 with Arduino</title><content type='html'>&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhy9Pj3ASu-EE_Id0HRoBKTDMmZ1Ng0oqDd2Fl4Uf0A9eC_32DWA5wolpxmZsRrfJUVnYvhp-tki-wmqK2cX-C4Do-TlQE9y71PbZeSCPvEaAKLefu-VcX2o4iqG1bMbT8dUcPxgMeKU_E/s1600/IMAGE_104.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhy9Pj3ASu-EE_Id0HRoBKTDMmZ1Ng0oqDd2Fl4Uf0A9eC_32DWA5wolpxmZsRrfJUVnYvhp-tki-wmqK2cX-C4Do-TlQE9y71PbZeSCPvEaAKLefu-VcX2o4iqG1bMbT8dUcPxgMeKU_E/s320/IMAGE_104.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;I bought this great ultrasonic sensor made by DFrobot. The only problem is that it&#39;s not so easy to control with arduino. It needs a wake-up signal and communicates via PWM pulse. The great thing is, it has an integrated temp sensor for more accurate ultrasonic readings and a servo controller. The servo movement is operated by the wake-up signal width. Clever.&lt;br /&gt;
&lt;br /&gt;
Probably the best thing for me is that it&#39;s cheap. It&#39;s like 2/3 the price of a parallax equivalent, except that this has integrated atmega8, temp sensor, etc.&lt;br /&gt;
&lt;br /&gt;
Example codes for Arduino can be found from &lt;a href=&quot;http://www.yerobot.com/forum/index.php?topic=3.0&quot;&gt;http://www.yerobot.com/forum/index.php?topic=3.0&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://sentrybot.blogspot.com/feeds/8363213727330869294/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sentrybot.blogspot.com/2011/04/urm37-with-arduino.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5769326721111757605/posts/default/8363213727330869294'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5769326721111757605/posts/default/8363213727330869294'/><link rel='alternate' type='text/html' href='http://sentrybot.blogspot.com/2011/04/urm37-with-arduino.html' title='URM37 with Arduino'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhy9Pj3ASu-EE_Id0HRoBKTDMmZ1Ng0oqDd2Fl4Uf0A9eC_32DWA5wolpxmZsRrfJUVnYvhp-tki-wmqK2cX-C4Do-TlQE9y71PbZeSCPvEaAKLefu-VcX2o4iqG1bMbT8dUcPxgMeKU_E/s72-c/IMAGE_104.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5769326721111757605.post-9178087917467845328</id><published>2011-04-20T10:20:00.002+03:00</published><updated>2011-04-20T10:53:51.939+03:00</updated><title type='text'>Spiderbot coding</title><content type='html'>This time I did something completely different. I&#39;ve always wanted to do a spiderbot but it needs so many servos that it&#39;s quite expensive. Here&#39;s a simple 4-legger code I wrote as a basic frame for a spiderbot I might do in the future. It can only go forward but with a method for every leg, it can easily be coded to do anything.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; line-height:100%&quot;&gt;&lt;span style=&quot;font-size: xx-small; line-height:100%&quot;&gt;#include &amp;lt;Servo.h&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Servo legtakaoik;&lt;br /&gt;
Servo legtakavas;&lt;br /&gt;
Servo legetuoik;&lt;br /&gt;
Servo legetuvas;&lt;br /&gt;
Servo legtakaoikup;&lt;br /&gt;
Servo legtakavasup;&lt;br /&gt;
Servo legetuoikup;&lt;br /&gt;
Servo legetuvasup;&lt;br /&gt;
int eteen;&lt;br /&gt;
boolean jalka;&lt;br /&gt;
&lt;br /&gt;
void setup() &lt;br /&gt;
{ &lt;br /&gt;
&amp;nbsp; legtakaoik.attach(9);&lt;br /&gt;
&amp;nbsp; legtakavas.attach(10);&lt;br /&gt;
&amp;nbsp; legetuoik.attach(8);&lt;br /&gt;
&amp;nbsp; legetuvas.attach(7);&lt;br /&gt;
&amp;nbsp; legtakaoikup.attach(6);&lt;br /&gt;
&amp;nbsp; legtakavasup.attach(5);&lt;br /&gt;
&amp;nbsp; legetuoikup.attach(4);&lt;br /&gt;
&amp;nbsp; legetuvasup.attach(3);&lt;br /&gt;
} &lt;br /&gt;
void loop() { &lt;br /&gt;
&amp;nbsp; etuvas(90, false); // all servos to 90 degrees = center&lt;br /&gt;
&amp;nbsp; etuoik(90, false); // false = leg down, true = leg up&lt;br /&gt;
&amp;nbsp; takavas(90, false);&lt;br /&gt;
&amp;nbsp; takaoik(90, false);&lt;br /&gt;
&amp;nbsp; delay(200);&lt;br /&gt;
&amp;nbsp; eteen=10; // For testing only. Move forward 10 steps.&lt;br /&gt;
&amp;nbsp; delay(4000);&lt;br /&gt;
&amp;nbsp; for (int i=0;i&amp;lt;eteen;i++) // go forward&lt;br /&gt;
&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (i=0) { // first step&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; etuvas(120, true);&amp;nbsp; // move servo 120 degrees&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; takaoik(120, true);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay(200);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; else {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; etuoik(60, false);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; takavas(60, false);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay(360);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; etuvas(120, true);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; takaoik(120, true);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay(360);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: xx-small;&quot; line-height:100%&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; etuoik(120, true);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; takavas(120, true);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; delay(360);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; etuvas(60, false);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; takaoik(60, false);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; delay(360);&lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;
}&lt;br /&gt;
void etuvas(int i, boolean jalka) { // front left foot&lt;br /&gt;
&amp;nbsp; legetuvas.write(i);&lt;br /&gt;
&amp;nbsp; if (jalka == true)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; legetuvasup.write(180);&lt;br /&gt;
&amp;nbsp; else&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; legetuvasup.write(0);&lt;br /&gt;
}&lt;br /&gt;
void etuoik(int i, boolean jalka) { // front right foot&lt;br /&gt;
&amp;nbsp; legetuoik.write(i);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; if (jalka == true)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; legetuoikup.write(180);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; else&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; legetuoikup.write(0);&lt;br /&gt;
}&lt;br /&gt;
void takavas(int i, boolean jalka) { // rear left foot&lt;br /&gt;
&amp;nbsp; legtakavas.write(i);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; if (jalka == true)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; legtakavasup.write(180);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; else&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; legtakavasup.write(0);&lt;br /&gt;
}&lt;br /&gt;
void takaoik(int i, boolean jalka) { // rear right foot&lt;br /&gt;
&amp;nbsp; legtakaoik.write(i);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; if (jalka == true)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; legtakaoikup.write(180);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; else&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; legtakaoikup.write(0);&lt;br /&gt;
}&lt;/span&gt;        &lt;servo.h&gt;&lt;eteen;i++) (i=&quot;0)&quot; (jalka=&quot;=&quot; 120=&quot;&quot; boolean=&quot;&quot; degrees=&quot;&quot; delay(200);=&quot;&quot; delay(360);=&quot;&quot; else=&quot;&quot; etuoik(120,=&quot;&quot; etuoik(60,=&quot;&quot; etuoik(int=&quot;&quot; etuvas(120,=&quot;&quot; etuvas(60,=&quot;&quot; etuvas(int=&quot;&quot; false);=&quot;&quot; forward=&quot;&quot; go=&quot;&quot; i,=&quot;&quot; if=&quot;&quot; jalka)=&quot;&quot; legetuoik.write(i);=&quot;&quot; legetuoikup.write(0);=&quot;&quot; legetuoikup.write(180);=&quot;&quot; legetuvas.write(i);=&quot;&quot; legetuvasup.write(0);=&quot;&quot; legetuvasup.write(180);=&quot;&quot; legtakaoik.write(i);=&quot;&quot; legtakaoikup.write(0);=&quot;&quot; legtakaoikup.write(180);=&quot;&quot; legtakavas.write(i);=&quot;&quot; legtakavasup.write(0);=&quot;&quot; legtakavasup.write(180);=&quot;&quot; move=&quot;&quot; servo=&quot;&quot; takaoik(120,=&quot;&quot; takaoik(60,=&quot;&quot; takaoik(int=&quot;&quot; takavas(120,=&quot;&quot; takavas(60,=&quot;&quot; takavas(int=&quot;&quot; true);=&quot;&quot; true)=&quot;&quot; void=&quot;&quot; {=&quot;&quot; }=&quot;&quot;&gt;&lt;/eteen;i++)&gt;&lt;/servo.h&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sentrybot.blogspot.com/feeds/9178087917467845328/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sentrybot.blogspot.com/2011/04/spiderbot-coding.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5769326721111757605/posts/default/9178087917467845328'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5769326721111757605/posts/default/9178087917467845328'/><link rel='alternate' type='text/html' href='http://sentrybot.blogspot.com/2011/04/spiderbot-coding.html' title='Spiderbot coding'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5769326721111757605.post-6300926072261102319</id><published>2011-04-18T20:47:00.000+03:00</published><updated>2011-04-18T20:47:06.908+03:00</updated><title type='text'>Change of plans</title><content type='html'>When giving a second thought to the navigation system, a line-follower type of approach seemed to be just too oldskool. It also had a lot of problems, like the fact that the whole navigation system would stop working if a piece of paper drops on the floor and hides the line. The IR-array bar in front of the robot is also very inconvienient as it can easily hit objects on the floor due to very low ground clearance.&lt;br /&gt;
&lt;br /&gt;
Instead, I&#39;m planning on implementing an RFID based system. Current RFID readers can read a tag from 10-15cm distance, which is great for ground clearance. Also, it doesn&#39;t need visual contact with the tag, so it couldn&#39;t care less about debris on the floor. It works like this: My robot has an RFID reader on bottom of it and the destined path is marked with RFID tags on the floor. Each RFID tag is coded with the information where the robot can find the next tag. Just like orienteering. The information would be at least the angle the robot needs to turn to get straight to the next tag. The angle is calculated from imaginary lines from the previous tag to the next tag. The robot controls it&#39;s movements with gyroscope to meet the specific angle the tag is giving. I know this is a bit problematic, so I still need to figure out how the robot calibrates itself. It could be multiple RFID readers, special calibration tags or some sort of INS (Inertial Navigation System).&lt;br /&gt;
&lt;br /&gt;
I&#39;m also very interested to hear feedback or suggestions, so feel free to comment :)</content><link rel='replies' type='application/atom+xml' href='http://sentrybot.blogspot.com/feeds/6300926072261102319/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sentrybot.blogspot.com/2011/04/change-of-plans.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5769326721111757605/posts/default/6300926072261102319'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5769326721111757605/posts/default/6300926072261102319'/><link rel='alternate' type='text/html' href='http://sentrybot.blogspot.com/2011/04/change-of-plans.html' title='Change of plans'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5769326721111757605.post-4817017597599995491</id><published>2011-04-12T15:23:00.001+03:00</published><updated>2011-04-12T15:24:14.574+03:00</updated><title type='text'>Old chassis testing</title><content type='html'>&lt;iframe allowfullscreen=&#39;allowfullscreen&#39; webkitallowfullscreen=&#39;webkitallowfullscreen&#39; mozallowfullscreen=&#39;mozallowfullscreen&#39; width=&#39;320&#39; height=&#39;266&#39; src=&#39;https://www.youtube.com/embed/omUEp4k4LSo?feature=player_embedded&#39; frameborder=&#39;0&#39;&gt;&lt;/iframe&gt;I found this old video in which the robot is in radio-controlled mode. It has quite a lot of torque/speed so I think I need to limit it a bit to be safe in public environments. Also, the tracks are only for outdoors as they do a lot of scratches for example, to asphalt.</content><link rel='replies' type='application/atom+xml' href='http://sentrybot.blogspot.com/feeds/4817017597599995491/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sentrybot.blogspot.com/2011/04/old-chassis-testing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5769326721111757605/posts/default/4817017597599995491'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5769326721111757605/posts/default/4817017597599995491'/><link rel='alternate' type='text/html' href='http://sentrybot.blogspot.com/2011/04/old-chassis-testing.html' title='Old chassis testing'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5769326721111757605.post-8418913620883366046</id><published>2011-04-12T13:08:00.000+03:00</published><updated>2011-04-12T13:08:15.818+03:00</updated><title type='text'>Designing the sensors</title><content type='html'>Today I did a simple drawing about how the robot would interact with it&#39;s environment. I&#39;ll probably add some more sensors later, but to get it moving, it only needs two. IR-array to follow the line and an ultrasonic sensor to make sure it doens&#39;t kill anyone.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUjPt0OUArTgBKkxklIvM4lELm1T_hJk3FDHW1ajwAYZpLw86dxAnWNuZj2UPHEWsCl8DmcC8KGMNGAISvluyEATAZMCvinB0wVveD5SYvr81qxXa7qWxeg7gY7UwKyCzI548zlNByoo4/s1600/design2.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;256&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUjPt0OUArTgBKkxklIvM4lELm1T_hJk3FDHW1ajwAYZpLw86dxAnWNuZj2UPHEWsCl8DmcC8KGMNGAISvluyEATAZMCvinB0wVveD5SYvr81qxXa7qWxeg7gY7UwKyCzI548zlNByoo4/s320/design2.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;To remove the need of multiple ultrasonic sensors, I&#39;ll put one on top of a servo. The servo will do regular panning to make sure the way ahead is clear of obstacles. I need another one on the back if the robot goes on reverse, but right now I try to focus on just going forward.</content><link rel='replies' type='application/atom+xml' href='http://sentrybot.blogspot.com/feeds/8418913620883366046/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sentrybot.blogspot.com/2011/04/designing-sensors.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5769326721111757605/posts/default/8418913620883366046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5769326721111757605/posts/default/8418913620883366046'/><link rel='alternate' type='text/html' href='http://sentrybot.blogspot.com/2011/04/designing-sensors.html' title='Designing the sensors'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUjPt0OUArTgBKkxklIvM4lELm1T_hJk3FDHW1ajwAYZpLw86dxAnWNuZj2UPHEWsCl8DmcC8KGMNGAISvluyEATAZMCvinB0wVveD5SYvr81qxXa7qWxeg7gY7UwKyCzI548zlNByoo4/s72-c/design2.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5769326721111757605.post-5940376970923732414</id><published>2011-04-11T16:06:00.001+03:00</published><updated>2011-04-11T16:19:27.021+03:00</updated><title type='text'>Arduino Nano</title><content type='html'>&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTtg2y3wu6-u3EOdJBLGyieLbybNavk5ND_VM4v7RKW9NOvyLWobdboIcpkMOzGf_jMklkLtqBIqNTs9AlL6EVkLl4HW523vXirdw-9-bqBrngxA983LJ2vIjNY_NsZ9KzE_ckn5imHdM/s1600/IMG_0011.JPG&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTtg2y3wu6-u3EOdJBLGyieLbybNavk5ND_VM4v7RKW9NOvyLWobdboIcpkMOzGf_jMklkLtqBIqNTs9AlL6EVkLl4HW523vXirdw-9-bqBrngxA983LJ2vIjNY_NsZ9KzE_ckn5imHdM/s320/IMG_0011.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;My teacher Tero Karvinen kindly lent me an Arduino Nano. I wanted to play around with it a bit so I did a simple hello world code, which used delayMicroseconds function.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;color: #ea9999;&quot;&gt;&lt;b&gt;D&lt;/b&gt;&lt;b&gt;elayMicroseconds(0) caused unwanted flashing in the LED so don&#39;t use values lower than 3.&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;void smoothblink() {&lt;br /&gt;
&amp;nbsp;&amp;nbsp; for (int i=10;i&amp;lt;600;i++) {&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; digitalWrite(ledPin, HIGH);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; delayMicroseconds(i); &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; digitalWrite(ledPin, LOW); &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; delayMicroseconds(600-i);&lt;br /&gt;
&amp;nbsp; } &lt;br /&gt;
&amp;nbsp; for (int i=10;i&amp;lt;600;i++) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; digitalWrite(ledPin, HIGH); &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; delayMicroseconds(600-i);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; digitalWrite(ledPin, LOW); &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; delayMicroseconds(i);&lt;br /&gt;
&amp;nbsp; } &lt;br /&gt;
&amp;nbsp; delay(100); // led off for a while&lt;br /&gt;
}&lt;/span&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sentrybot.blogspot.com/feeds/5940376970923732414/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sentrybot.blogspot.com/2011/04/arduino-nano.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5769326721111757605/posts/default/5940376970923732414'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5769326721111757605/posts/default/5940376970923732414'/><link rel='alternate' type='text/html' href='http://sentrybot.blogspot.com/2011/04/arduino-nano.html' title='Arduino Nano'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTtg2y3wu6-u3EOdJBLGyieLbybNavk5ND_VM4v7RKW9NOvyLWobdboIcpkMOzGf_jMklkLtqBIqNTs9AlL6EVkLl4HW523vXirdw-9-bqBrngxA983LJ2vIjNY_NsZ9KzE_ckn5imHdM/s72-c/IMG_0011.JPG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5769326721111757605.post-6446300587318705623</id><published>2011-04-11T14:27:00.002+03:00</published><updated>2011-04-11T14:28:14.152+03:00</updated><title type='text'>DC challenges and solutions</title><content type='html'>One of my concerns in this project was power supply. The power supply will be two 12V 38Ah sealed lead-acid batteries connected in series. That makes 24V which is good for the motors, but will toast any other electronics. So what we need is more suitable 12V power. One solution would be another 12V battery, but I think it&#39;s quite a hassle to charge two different batteries etc.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhC4NG-sJSqE0RdvnOmdp79LUAgoM7mqR-5YPg9qsO0rjaCXw0mglp2GBnzlZkBUhUna9R5Diy3YehTMx-5BXPRY7j_OKQNnimlZrLoLtCE0ndIxzjuuWrRtNeIM0K2QZ_0wK-7kpbInLI/s1600/IMG_0008%255B1%255D.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhC4NG-sJSqE0RdvnOmdp79LUAgoM7mqR-5YPg9qsO0rjaCXw0mglp2GBnzlZkBUhUna9R5Diy3YehTMx-5BXPRY7j_OKQNnimlZrLoLtCE0ndIxzjuuWrRtNeIM0K2QZ_0wK-7kpbInLI/s320/IMG_0008%255B1%255D.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;So what I am going to do in this project, is using this ShenZhen Huangjintai Electric 15A Negative Booster. It converts 24V DC into a 12V DC. Simple, Reliable, Chinese.&lt;br /&gt;
&lt;br /&gt;
From 12V it it easy to regulate 5-6V for the arduino, servos etc. with regular hobby UBECs. 12V is also more suitable for fans, lights and eeePC.</content><link rel='replies' type='application/atom+xml' href='http://sentrybot.blogspot.com/feeds/6446300587318705623/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sentrybot.blogspot.com/2011/04/dc-challenges-and-solutions.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5769326721111757605/posts/default/6446300587318705623'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5769326721111757605/posts/default/6446300587318705623'/><link rel='alternate' type='text/html' href='http://sentrybot.blogspot.com/2011/04/dc-challenges-and-solutions.html' title='DC challenges and solutions'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhC4NG-sJSqE0RdvnOmdp79LUAgoM7mqR-5YPg9qsO0rjaCXw0mglp2GBnzlZkBUhUna9R5Diy3YehTMx-5BXPRY7j_OKQNnimlZrLoLtCE0ndIxzjuuWrRtNeIM0K2QZ_0wK-7kpbInLI/s72-c/IMG_0008%255B1%255D.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5769326721111757605.post-6498860489857319516</id><published>2011-04-11T13:46:00.002+03:00</published><updated>2011-04-11T16:18:44.932+03:00</updated><title type='text'>Learning the ropes</title><content type='html'>Today I did some testing with arduino diecimila board. I tried to make a gadget which would control a servo with signals received from an ultrasonic sensor. Of course, I started with hello world :)&lt;br /&gt;
&lt;br /&gt;
After I saw that the board, computer and compiler was working great, I started to test single components to make sure everything worked. It did, but when I connected the servo and the ultrasonic sensor to my arduino at the same time, it started acting strange. I finally found that the power supply of the board was insufficient for servo and sensor at the same time. My solution was to use an external power supply to power the servo.&lt;br /&gt;
&lt;br /&gt;
That seemed to be the solution to my problem, but things got even worse. My servo was out of control when I connected it to my arduino. It reacted to commands somehow, but was still completely useless as it was having severe problems with controlling itself. My problem was lacking common ground.&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #e06666;&quot;&gt;&lt;b&gt;If you have problems with connecting servo to an external power AND arduino, make sure they have common ground. Otherwise the servo will act strange.&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgXqnetZRosCoVnnA3RQEogd2HMYpDx0AXooHXr7kZbv3zMqVwzn5Z5Plr-aLBxH3U-d-VEVpTQzYygJjGvmvE5V_usXDV3Tjirjf6l3pE9XSCNNWxsozvayUW20jGwrMDJ38-2JMtf0E/s1600/IMAGE_100.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgXqnetZRosCoVnnA3RQEogd2HMYpDx0AXooHXr7kZbv3zMqVwzn5Z5Plr-aLBxH3U-d-VEVpTQzYygJjGvmvE5V_usXDV3Tjirjf6l3pE9XSCNNWxsozvayUW20jGwrMDJ38-2JMtf0E/s320/IMAGE_100.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiP3E-vOggy930MYCf1smUyhDneDx6hz3nfJsxKcaX8gtoKKS1yzWYniDNJ-CXS94pJd6C2Pp4N3P2vsTsj4EVhlqZWal0Pk_pm_CWpmx04J-l-XAdKo_Ott2-kq_UEv6z1uSxBcNoSrl4/s1600/IMAGE_101.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiP3E-vOggy930MYCf1smUyhDneDx6hz3nfJsxKcaX8gtoKKS1yzWYniDNJ-CXS94pJd6C2Pp4N3P2vsTsj4EVhlqZWal0Pk_pm_CWpmx04J-l-XAdKo_Ott2-kq_UEv6z1uSxBcNoSrl4/s320/IMAGE_101.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sentrybot.blogspot.com/feeds/6498860489857319516/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sentrybot.blogspot.com/2011/04/learning-ropes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5769326721111757605/posts/default/6498860489857319516'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5769326721111757605/posts/default/6498860489857319516'/><link rel='alternate' type='text/html' href='http://sentrybot.blogspot.com/2011/04/learning-ropes.html' title='Learning the ropes'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgXqnetZRosCoVnnA3RQEogd2HMYpDx0AXooHXr7kZbv3zMqVwzn5Z5Plr-aLBxH3U-d-VEVpTQzYygJjGvmvE5V_usXDV3Tjirjf6l3pE9XSCNNWxsozvayUW20jGwrMDJ38-2JMtf0E/s72-c/IMAGE_100.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5769326721111757605.post-1381065390970686989</id><published>2011-04-11T13:07:00.003+03:00</published><updated>2011-04-11T14:34:59.450+03:00</updated><title type='text'>Introduction</title><content type='html'>Hello everyone!&lt;br /&gt;
&lt;br /&gt;
The purpose of this blog is to follow my progression on creating an arduino controlled sentry robot, which will be mainly used to demo the platform in my school. The robot is still in very early phase, but here&#39;s some basic facts about it.&lt;br /&gt;
&lt;br /&gt;
The frame is from an old radio-controlled bot, which I bought from a friend. It has two wheelchair motors, lead-acid batteries and kégresse tracks. With full batteries and tracks on, it weighs about 120 kilograms. Drive system will be two IFI Victor 883 Speed controllers, which can handle up to 200A surges at 24V. They work with standard servo pulse, so it shouldn&#39;t be to much of a problem to pair them with arduino board.&lt;br /&gt;
&lt;br /&gt;
At first, my aim is to make it simply follow a line painted in the floor, possibly sending webcam feed when sensing something odd. As arduino is not good for hi-rate data transfer, I have an old eeePC, which I might put as a webcam server in the bot.&lt;br /&gt;
&lt;br /&gt;
This project is partially based on robot course by Tero Karvinen, &lt;a href=&quot;http://botbook.com/&quot;&gt;http://botbook.com&lt;/a&gt; &amp;amp; &lt;a href=&quot;http://www.haaga-helia.fi/&quot;&gt;HAAGA-HELIA&lt;/a&gt; University of Applied Sciences.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://dusti.1g.fi/kuvat/Projekteja/orja.jpg/full&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;264&quot; src=&quot;http://dusti.1g.fi/kuvat/Projekteja/orja.jpg/full&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sentrybot.blogspot.com/feeds/1381065390970686989/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sentrybot.blogspot.com/2011/04/introduction.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5769326721111757605/posts/default/1381065390970686989'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5769326721111757605/posts/default/1381065390970686989'/><link rel='alternate' type='text/html' href='http://sentrybot.blogspot.com/2011/04/introduction.html' title='Introduction'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>