tag:blogger.com,1999:blog-12801646904710466342024-03-05T05:14:59.928+01:00The ArduWellBeingBotThe ArduWellBeingBot, a Robot based on Official Arduino Robot to rate the surrounding environment...AWBBhttp://www.blogger.com/profile/17405549293861793025noreply@blogger.comBlogger10125tag:blogger.com,1999:blog-1280164690471046634.post-33775625160206410052014-04-10T08:21:00.000+02:002014-04-10T08:21:17.978+02:00Robot Challenge 2014: we won!<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9DJpDgDqZQOTKZY0U8hCzvgHJITHHq8JhyphenhyphenvKvuNOiCw-r-ZDYtVdnhmUdY0b17Hzz1oIZRjLpILbJVHqDCX_3AtIkVNRa2slgSSRtfhnjwFBw3Oh_YpZwwpQ1nDsxKl7caYPEWOydGsU/s1600/1rst_place_head.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9DJpDgDqZQOTKZY0U8hCzvgHJITHHq8JhyphenhyphenvKvuNOiCw-r-ZDYtVdnhmUdY0b17Hzz1oIZRjLpILbJVHqDCX_3AtIkVNRa2slgSSRtfhnjwFBw3Oh_YpZwwpQ1nDsxKl7caYPEWOydGsU/s1600/1rst_place_head.jpg" /></a></div>
<br />
It was a big surprise for us and we are proud to have been selected and elected as best project for this year!<br />
<br />
<a name='more'></a>It was a really good moment to share this adventure with other teams.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEROiKdsk5a87LT_QXCp4VcQKGCvDbtbiCiYQn1C0Kmk2RXeBIbK5l4TMaueDKlgXYDxOMikYHd1-oVRsrOk2MDEYk4OCRVyCg5Zia-qhTT4xMHQe89pyGkEeoUNB9AQ6l3CpDreWHoi8/s1600/Podium.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEROiKdsk5a87LT_QXCp4VcQKGCvDbtbiCiYQn1C0Kmk2RXeBIbK5l4TMaueDKlgXYDxOMikYHd1-oVRsrOk2MDEYk4OCRVyCg5Zia-qhTT4xMHQe89pyGkEeoUNB9AQ6l3CpDreWHoi8/s1600/Podium.jpg" height="281" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
We have encountered very interesting people and project during this week-end.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj65tohgKkIcbXiiR3z0qMRxIdEQDw5ntFjIhMOG-nzvXH_-h4bLNdYhvPQiPba5i9LkH_cTmGzTN5whCYuMV1sl5E6swkYA78xEE3d64zR51H7vm48bjDPTCHgRuA8MRM257AqE2rFjNU/s1600/2014-04-01+21.49.08.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj65tohgKkIcbXiiR3z0qMRxIdEQDw5ntFjIhMOG-nzvXH_-h4bLNdYhvPQiPba5i9LkH_cTmGzTN5whCYuMV1sl5E6swkYA78xEE3d64zR51H7vm48bjDPTCHgRuA8MRM257AqE2rFjNU/s1600/2014-04-01+21.49.08.jpg" height="225" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Many thanks to Benoit, he has worked since France till the last moment on mobile application!! He has a beautiful post to write to explain all this part ;-)</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div style="text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.blogger.com/video.g?token=AD6v5dyAaFhBz9HLJ-xCik7DTu37w4hgyoA9da9G9LSVtxlqRKLcOz4PxmnhJPxMo3D3i2sC1WEOYTJOkLpVrJ8ZJg' class='b-hbp-video b-uploaded' frameborder='0'></iframe></div>
<br />
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrMgQoPLrNRnaPQj1WFfGhiIYlFlD5kzRvZV2ea7IZz2Z0r_jjhUvy6cFB-2U-weAjGlLLQOUsaN7JzCjtzu0fMmdtD4Wx3qYcOZAwRzMMoAZ3KNdAxRDn4ogGNedHHc3ekRhv5OF6hSY/s1600/Pierre_Flo.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrMgQoPLrNRnaPQj1WFfGhiIYlFlD5kzRvZV2ea7IZz2Z0r_jjhUvy6cFB-2U-weAjGlLLQOUsaN7JzCjtzu0fMmdtD4Wx3qYcOZAwRzMMoAZ3KNdAxRDn4ogGNedHHc3ekRhv5OF6hSY/s1600/Pierre_Flo.jpg" height="320" width="291" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
To see more pictures of other robots and participants, have a look on the <a href="http://www.facebook.com/Robotchallenge" target="_blank">Robot Challenge Facebook page</a> </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Thanks a lot to all of you.</div>
AWBBhttp://www.blogger.com/profile/17405549293861793025noreply@blogger.com0tag:blogger.com,1999:blog-1280164690471046634.post-6281435654373291702014-03-23T23:55:00.001+01:002014-04-02T11:50:23.570+02:00AWBB Change log<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglwH3R2_ou9PKOki0RvzqQqz3G8lIL6ayZZcuIZRn8RuW6pbd5EE5L7h0koFd_K1QIgW7BIX8Xv5-1JPDZbh2QRR0huxzbkEkdgUJACjDq0pioCoBbOfuN90Jem74q7cSjmbnYArM66BY/s1600/Mimetypes-text-changelog-icon.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglwH3R2_ou9PKOki0RvzqQqz3G8lIL6ayZZcuIZRn8RuW6pbd5EE5L7h0koFd_K1QIgW7BIX8Xv5-1JPDZbh2QRR0huxzbkEkdgUJACjDq0pioCoBbOfuN90Jem74q7cSjmbnYArM66BY/s1600/Mimetypes-text-changelog-icon.png" /></a></div>
<h3>
v2.0</h3>
<ul>
<li>Bluetooth LE feature</li>
<li>Robot can be controled by a mobile device</li>
<li>Upload µSD content</li>
<li>Code optimization</li>
</ul>
<a name='more'></a><h3>
v1.0</h3>
<ul>
<li>Autonomous movement</li>
<li>Collect data from light, sound, CO2, thermo, hygro sensor</li>
<li>GPS sensor management</li>
<li>Data recorded into µSD card</li>
</ul>
AWBBhttp://www.blogger.com/profile/17405549293861793025noreply@blogger.com1tag:blogger.com,1999:blog-1280164690471046634.post-83577263279622836232014-03-20T23:32:00.000+01:002014-03-20T23:32:19.087+01:00Bluetooth LE connection<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVL0RjmZC3jey7zcvwBN_nAQtb6K4xtIPWrWMOlnwl61_mYXvJ9XtbDvx_7G602yMahvbl6EEHbpG7Cf9YuMViI8Ta_s0PkWR5qgmYzKc8MA7zmvsarAi1zAxMBHVbvViKPQbcKbXJ32A/s1600/BLE_link_hdr.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVL0RjmZC3jey7zcvwBN_nAQtb6K4xtIPWrWMOlnwl61_mYXvJ9XtbDvx_7G602yMahvbl6EEHbpG7Cf9YuMViI8Ta_s0PkWR5qgmYzKc8MA7zmvsarAi1zAxMBHVbvViKPQbcKbXJ32A/s1600/BLE_link_hdr.jpg" /></a></div>
<br />
<i>This feature has been added to the robot AWBB v2.0</i><br />
<h2>
Why using Bluetooth LE?</h2>
To export data from the robot to the internet we have chosen to link it to a mobile device using this new kind of connection: the Bluetooth LE (Low Energy). It's made for connected object (Internet of things for example) and it has the particularity to consume a few quantity of energy.<br />
<br />
We have chosen the BLE-LINK v1.0 from DFRobot as it's easy to configure, it use a serial connection and allows 5V on RX pin.<br />
<a name='more'></a>To learn more on Bluetooth LE, go on <a href="http://en.wikipedia.org/wiki/Bluetooth_low_energy" target="_blank">Wikipedia</a><br />
<br />
<h3>
Wiring</h3>
<div>
Due to lack of available pins, we decide to connect the BLE-Link as follow: </div>
<div>
<ul>
<li>TX pin of the BLE-Link to the SPI/ICSP connector on SCK </li>
<li>RX pin of the BLE-Link to the SPI/ICSP connector on MISO.</li>
</ul>
</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiE02tGwnkoBRdmxmukE6VWx0VZOycFuPGE2S70KEUOOmZalxcl7OWSe8sgjuhtG-XmbjFaQst68uYY4qhK-9tkltug4xTWe604kHqkPT7r91caYCupYlWy_-PVu2Ijz2nGA5h9VICWq5Y/s1600/SPI-Down-GPS-BT.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiE02tGwnkoBRdmxmukE6VWx0VZOycFuPGE2S70KEUOOmZalxcl7OWSe8sgjuhtG-XmbjFaQst68uYY4qhK-9tkltug4xTWe604kHqkPT7r91caYCupYlWy_-PVu2Ijz2nGA5h9VICWq5Y/s1600/SPI-Down-GPS-BT.jpg" height="243" width="400" /></a></div>
<div>
<br />
<h3>
Powering the BLE-Link</h3>
Regarding BLE-Link power, we encountered a small problem, as it based on xBee board powered with 3.3V and having only 5V on the Robot, we decided to solder a USB female plug on the Robot to have 5V and connect it to USB port of the BLE-Link using a standard USB cable. </div>
<div>
<h3>
Initialize and configure the BLE-Link</h3>
<div>
You will find all these information on the <a href="http://www.dfrobot.com/wiki/index.php/BLE-Link_(SKU:TEL0073)" target="_blank">DFRobot Wiki page of the BLE-Link</a></div>
<div>
<br /></div>
<h3>
Coding</h3>
</div>
<div>
You have to include the SoftwareSerial library to your project but with Arduino IDE 1.5.4 some core arduino header files must be patched to be able to compile.</div>
<br />
<div>
You have to add these 4 definition (<i>digitalPinToPCICR, digitalPinToPCICRbit, digitalPinToPCMSK, digitalPinToPCMSKbit(p)</i> ) into the pin_arduino.h file in these following directories:<br />
<ul>
<li>...\Arduino\hardware\arduino\avr\variants\robot_control </li>
<li>...\Arduino\hardware\arduino\avr\variants\robot_motor</li>
</ul>
<script src="https://gist.github.com/OptionMan/9146322.js"></script>
</div>
<h3>
</h3>
<h3>
How to use 2 devices using SoftwareSerial library?</h3>
When you have 2 devices using SoftwareSerial library it's important to choose which one of the devices will be the main one, the one who will listening the RX pin. Once this device has received something and realized its treatment, the second one can realize a request or get its data from its RX pin.<br />
<div>
<br /></div>
<div>
In our case on motor board, on beginGPS() we start the serial connection to te GPS and close it:</div>
<script src="https://gist.github.com/OptionMan/9674942.js"></script>
And each time the GPS needs to be processed the processGPS is called:<br />
<script src="https://gist.github.com/OptionMan/9675030.js"></script><br />
The rest of the time can be used to listen the RX port for the Bluetooth device:<br />
<script src="https://gist.github.com/OptionMan/9675117.js"></script>AWBBhttp://www.blogger.com/profile/17405549293861793025noreply@blogger.com0tag:blogger.com,1999:blog-1280164690471046634.post-12837882801546128332014-02-23T22:19:00.001+01:002014-02-23T22:19:40.814+01:00Downloads<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-9Py4SB75GUlCNOliBSS98qx7ws9VSITlaqUeiPGvf2UsNdxw_r7Dydxe4qPdLvHw6r7M7V7brZOnLfr146F0xmXwq2QWAADs8ZmRjxoJprTzyoxUPIaFrrgUMKudoB1bnNOGVKz8Zs4/s1600/Coding.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-9Py4SB75GUlCNOliBSS98qx7ws9VSITlaqUeiPGvf2UsNdxw_r7Dydxe4qPdLvHw6r7M7V7brZOnLfr146F0xmXwq2QWAADs8ZmRjxoJprTzyoxUPIaFrrgUMKudoB1bnNOGVKz8Zs4/s1600/Coding.jpg" /></a></div>
<br />
Code is Available under Github repository: <a href="https://github.com/ArduWellBeingBot/Robot/">https://github.com/ArduWellBeingBot/Robot/</a><br />
<br />
<a name='more'></a><br /><br />
Download it and copy it into your Sketchbook directory.<br />
<br />
A patch needs to be realize onto your Arduino hardware directories:<br />
<br />
You have to add these 4 definition (digitalPinToPCICR, digitalPinToPCICRbit, digitalPinToPCMSK, digitalPinToPCMSKbit(p) ) into the pin_arduino.h file in these following directories:<br />
<ul>
<li>...\Arduino\hardware\arduino\avr\variants\robot_control </li>
<li>...\Arduino\hardware\arduino\avr\variants\robot_motor</li>
</ul>
<div>
<br />
<script src="https://gist.github.com/OptionMan/9146322.js"></script>
</div>
AWBBhttp://www.blogger.com/profile/17405549293861793025noreply@blogger.com0tag:blogger.com,1999:blog-1280164690471046634.post-49981470291443665722014-02-23T22:18:00.000+01:002014-02-23T22:19:04.023+01:00Ultrasonic sensor & Servo<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidQahTZ5mOTVC4X1AAC4_gXT_MMlbTyjBXV_B-T24_AyEfCfildbNgwB3jmZWkVCALo_fTGOIeH4Q6QVUKmm7oaUctEbnbE9e0Jcjr7vstBsyBbcg0t0O1CKF5mJX_GJWs1UzOioHBacU/s1600/US.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidQahTZ5mOTVC4X1AAC4_gXT_MMlbTyjBXV_B-T24_AyEfCfildbNgwB3jmZWkVCALo_fTGOIeH4Q6QVUKmm7oaUctEbnbE9e0Jcjr7vstBsyBbcg0t0O1CKF5mJX_GJWs1UzOioHBacU/s1600/US.jpg" /></a></div>
<br />
<h2>
An Ultrasonic sensor on the AWBB Robot</h2>
We have decided to choose an Ultrasonic range meter mounted on a Servo to be able to find the best direction with no obstacle.<br />
We've detected a conflict with the Melody part of the Arduino Robot. The Melody part is dedicated to play music on the Arduino Robot and uses the same timer used by Servo library.<br />
As playing sound was not mandatory for the AWBB robot, we've decided to suppress this musical part and all its dependencies.<br />
<a name='more'></a><br />
<h3>
Reference link:</h3>
<ul>
<li>Ultrasonic range meter Maxbotix-lv-ez1-ez-1 <a href="http://snootlab.com/adafruit/294-capteur-de-distance-maxbotix-lv-ez1-ez-1.html">http://snootlab.com/adafruit/294-capteur-de-distance-maxbotix-lv-ez1-ez-1.html</a></li>
</ul>
AWBBhttp://www.blogger.com/profile/17405549293861793025noreply@blogger.com0tag:blogger.com,1999:blog-1280164690471046634.post-86439423496774068882014-02-23T14:33:00.001+01:002014-02-23T14:33:22.214+01:00CO2 Sensor<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMuPvqdpANBlXpdMopqXIBANAhzhmepk_Lru4AX7SOhGB1O-5CTkrm67WeIrhKx6Gp_TFmmIa7BeWM37Mkitw3NV3D8icJvOZs6Pd3Iyzewj83Umng3QUU7DWWaCK9dkRKzdQwniEbU5M/s1600/CO2_Sensor_v2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMuPvqdpANBlXpdMopqXIBANAhzhmepk_Lru4AX7SOhGB1O-5CTkrm67WeIrhKx6Gp_TFmmIa7BeWM37Mkitw3NV3D8icJvOZs6Pd3Iyzewj83Umng3QUU7DWWaCK9dkRKzdQwniEbU5M/s1600/CO2_Sensor_v2.jpg" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<h2>
Why measure air quality?</h2>
CO2 quantity in the air is a good way to analyze our environment quality in addition to other indicators collected by the other sensors of the robot.<br />
Depending CO2 concentration in the air several symptoms can appear:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7Z3cGZKUQZrgpfe3SD7iSxwltemePnhcKwA-vbj73rnbQ-x7MT1P9uacDPViCZ2oB1BqPPuQIVX8-U3R8DjseuOagooEof1TaY0cDxUD81iRdBAKYXQS6WqovQoOadxQy4LZ-ZZVHSu4/s1600/694px-Main_symptoms_of_carbon_dioxide_toxicity.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7Z3cGZKUQZrgpfe3SD7iSxwltemePnhcKwA-vbj73rnbQ-x7MT1P9uacDPViCZ2oB1BqPPuQIVX8-U3R8DjseuOagooEof1TaY0cDxUD81iRdBAKYXQS6WqovQoOadxQy4LZ-ZZVHSu4/s1600/694px-Main_symptoms_of_carbon_dioxide_toxicity.png" height="276" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<i>1% of CO2 in the air represent 1000ppm</i></div>
<br />
<a name='more'></a><br />
<br />
Evolution of the CO2 concentration since 1960:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQPg33NI2lu7OIW-dgzCzYR3T1GbOHad_abTdNtO3i6kTEVyEWwVY2gLsuj0iTAryhB8vDgZXXh_8E1VqaIXPjzkM1vGlb-4FJ9tIOpvy8Zi4OvMxqeiyB9KVDuhKDAvFRibVCaeIkPso/s1600/500px-Mauna_Loa_Carbon_Dioxide_Apr2013.svg.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQPg33NI2lu7OIW-dgzCzYR3T1GbOHad_abTdNtO3i6kTEVyEWwVY2gLsuj0iTAryhB8vDgZXXh_8E1VqaIXPjzkM1vGlb-4FJ9tIOpvy8Zi4OvMxqeiyB9KVDuhKDAvFRibVCaeIkPso/s1600/500px-Mauna_Loa_Carbon_Dioxide_Apr2013.svg.png" height="215" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
It's really important to choose a CO2 clean place or to ventilate closed rooms to avoid this bad high concentration.</div>
<a href="http://en.wikipedia.org/wiki/Carbon_dioxide" target="_blank">CO2 Wikipedia page</a><br />
<h2>
How to measure air quality?</h2>
<div>
Several modules exist on the market but we have selected the DFRobot CO2 Sensor v1 for its quality and features:</div>
<ul>
<li>It has MG-811 sensor module onboard which is highly sensitive to CO2 and less sensitive to alcohol and CO, Low humidity&temperature dependency. </li>
<li>Onboard heating circuit brings the best temperature for sensor to function. 5V power input will be boosted to 6V for heating. </li>
<li>It has an onboard conditioning circuit for amplifying output signal</li>
<li>It has a digital output driven by a potentiometer to set the trigger level (not used in our AWBB robot)</li>
</ul>
<div>
<br /></div>
<div>
<h3>
Exploit the voltage output</h3>
The output voltage of the module falls as the concentration of the CO2 increases.<br />
We will need to transform this value into a scientific readable data, in ppm (parts-per-million, 10–6). This value is obtained reading the datasheet of the CO2 sensor and applying the associated formula.<br />
Code is located in file: <span style="font-family: Courier New, Courier, monospace;">Sketchbook\libraries\Robot_Motor\src\CO2Sensor.h</span><br />
<br />
<h3>
Code of the AWBB robot</h3>
Command must be created on both board to communicate and share CO2 value request/answer.<br />
<br />
Command on the Control Board:<br />
<script src="https://gist.github.com/OptionMan/9171441.js"></script>
Reply to the Motor Board:<br />
<script src="https://gist.github.com/OptionMan/9171540.js"></script><br />
<br />
<h3>
Calibrating phase</h3>
<div>
To adjust the coefficients used into the ppm formula, you can go into a clean place outside and be sure than output calculated by our software is '-1' (it means you've got a clean air with CO2 ppm under 400ppm). </div>
<br />
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3Dww6LThjORbpl5jMZcGHGWJTtJ0qmGbm1xxll04wdZidDifBWh8j3ZGqbsNHw1rrqhA1Vj8yM_8JUMhtKCU2d-jp62KpUP71_tXanwe0Vj5wiEK2fuRjVx-NGfWWkkOU1kNvXSJOVDo/s1600/CO2_sensor_box.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3Dww6LThjORbpl5jMZcGHGWJTtJ0qmGbm1xxll04wdZidDifBWh8j3ZGqbsNHw1rrqhA1Vj8yM_8JUMhtKCU2d-jp62KpUP71_tXanwe0Vj5wiEK2fuRjVx-NGfWWkkOU1kNvXSJOVDo/s1600/CO2_sensor_box.jpg" height="320" width="180" /></a></div>
<div>
<h3>
Reference link: </h3>
<br />
<ul>
<li>Wiki page of the module: <a href="http://www.dfrobot.com/wiki/index.php/CO2_Sensor_SKU:SEN0159">DFRobot CO2 Sensor v1</a></li>
<li><a href="http://en.wikipedia.org/wiki/Carbon_dioxide" target="_blank">CO2 on Wikipedia</a></li>
</ul>
</div>
<h3>
</h3>
AWBBhttp://www.blogger.com/profile/17405549293861793025noreply@blogger.com1tag:blogger.com,1999:blog-1280164690471046634.post-64624743710940714862014-02-23T11:03:00.001+01:002014-02-23T14:21:17.724+01:00SoftwareSerial and GPS<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgN8xCYMv_ucK_2MdDXiUJSYdGDi_bJJDRdufgctf2kHFDnG4bTTVKMHgpji2KLeJnWcBUvenGzY8iAID_yDPmcx4oZlCommNSQmkcYpV66uYNYOtZ1wgQu_WIXD2m_QMGSwDZam_iaOA/s1600/GPS.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgN8xCYMv_ucK_2MdDXiUJSYdGDi_bJJDRdufgctf2kHFDnG4bTTVKMHgpji2KLeJnWcBUvenGzY8iAID_yDPmcx4oZlCommNSQmkcYpV66uYNYOtZ1wgQu_WIXD2m_QMGSwDZam_iaOA/s1600/GPS.jpg" /></a></div>
<br />
<h2>
How to use SofwareSerial library to connect a Serial GPS on the Official Arduino Robot? </h2>
<div style="text-align: left;">
We have chosen for our robot this excellent "<a href="http://learn.adafruit.com/adafruit-ultimate-gps">Ultimate GPS</a>" module from Adafruit, because it requires only 2 pins (using serial communication) to communicate with and it's plenty of good functionality (autonomous GPS logger, Time RTC, energy safer...).</div>
<div style="text-align: left;">
<br />
<a name='more'></a><br /></div>
<h3>
Wiring</h3>
<div style="text-align: left;">
Due to lack of memory on the Control Board, we've decided to connect the GPS to the Motor board.</div>
<div style="text-align: left;">
2 digital pin included one using interrupts are required to connect the GPS to the Motor Board.</div>
<div style="text-align: left;">
We decide to connect the TX pin of the GPS to the SPI/ICSP connector on MOSI pin because it's a Digital pin with interrupt management and connector was not used on this board.</div>
<div style="text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhalThXfECyJJhbT3UMR58omIgbRn_B_onc38xG3q7pQ9VwCEPegyg9_c3bOvMNoeiLfn2s-DZlaSjYOhjcekPjWA_dOkvB1cGKeqJSJq5i0N-U_z84idoGz12BFFj2FZM-o2SRLet2fRk/s1600/SBI-Down-GPS.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhalThXfECyJJhbT3UMR58omIgbRn_B_onc38xG3q7pQ9VwCEPegyg9_c3bOvMNoeiLfn2s-DZlaSjYOhjcekPjWA_dOkvB1cGKeqJSJq5i0N-U_z84idoGz12BFFj2FZM-o2SRLet2fRk/s1600/SBI-Down-GPS.jpg" height="165" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: justify;">
The RX pin of the GPS must be connected to another digital pin, we choose TK3 (B_TK3 on the picture)</div>
<div class="separator" style="clear: both; text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZFalOevy0CTosOJ-WTH04-EALG9OAQjB-V5pjS9Otw3TP69zz3GTLfADY58PXu17RxxVBEK_rsRAhyphenhyphen0t8ED-a0-98bNxUezq1ihSrW0EXFIxHQuljNIfgOyGAorh3tIMaAqy217u2lJI/s1600/Motor_board.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZFalOevy0CTosOJ-WTH04-EALG9OAQjB-V5pjS9Otw3TP69zz3GTLfADY58PXu17RxxVBEK_rsRAhyphenhyphen0t8ED-a0-98bNxUezq1ihSrW0EXFIxHQuljNIfgOyGAorh3tIMaAqy217u2lJI/s1600/Motor_board.png" height="451" width="640" /></a></div>
<div>
<h3>
Coding</h3>
</div>
<div>
You have to include the SoftwareSerial library to your project but with Arduino IDE 1.5.4 some core arduino header files must be patched to be able to compile.</div>
<div>
You have to add these 4 definition (<i>digitalPinToPCICR, digitalPinToPCICRbit, digitalPinToPCMSK, digitalPinToPCMSKbit(p)</i> ) into the pin_arduino.h file in these following directories:<br />
<br />
<ul>
<li>...\Arduino\hardware\arduino\avr\variants\robot_control </li>
<li>...\Arduino\hardware\arduino\avr\variants\robot_motor</li>
</ul>
</div>
<script src="https://gist.github.com/OptionMan/9146322.js"></script>
<br />
<div>
<br /></div>
Command must be created on both board to communicate and share GPS request/answers.<br />
<br />
Command on the Control Board<br />
<script src="https://gist.github.com/OptionMan/9169411.js"></script><br />
<br />
Response on the Motor Board<br />
<script src="https://gist.github.com/OptionMan/9169370.js"></script><br />
GPS Management has been coded without interrupt due to problem using Interrupt, SoftwareSerial library and Serial.print() function (I still not not have answer for this trouble, any idea?). <br />
<h2>
</h2>
<h2>
How to well understand the GPS information received?</h2>
<div>
According to the GPS, a location as 4042.6142,N (Latitude 40 degrees, 42.6142 decimal minutes North) & 07400.4168,W. (Longitude 74 degrees, 0.4168 decimal minutes West) To look at this location in Google maps, type +40° 42.6142', -74° 00.4168' into the <a href="http://maps.google.com/">google maps search box</a> . Unfortunately gmaps requires you to use +/- instead of NSWE notation. N and E are positive, S and W are negative. The code has been adapted in consequence. </div>
<div>
<br /></div>
<div>
<div class="row-fluid build-text">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8mbw-lIrSjkVp1LU7JwRysv7DmFkLkrzoVE4VcLb6okiPQDc7mjnKgsvsf-pULoYqNy5gkw9UHO6SUe7aVhJIps96sxQv1j7jy0LV5YgiMcMkGL76VKDr8hsL5pq-IBM2RhDE_rHW04o/s1600/warning-48.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8mbw-lIrSjkVp1LU7JwRysv7DmFkLkrzoVE4VcLb6okiPQDc7mjnKgsvsf-pULoYqNy5gkw9UHO6SUe7aVhJIps96sxQv1j7jy0LV5YgiMcMkGL76VKDr8hsL5pq-IBM2RhDE_rHW04o/s1600/warning-48.png" /></a>People often get confused because the GPS is working but is "5 miles off" - this is because they are not parsing the lat/long data correctly. Despite appearances, the geolocation data is NOT in decimal degrees. It is in degrees and minutes in the following format: Latitude: <b>DDMM.MMMM</b> (The first two characters are the degrees.) Longitude: <b>DDDMM.MMMM</b> (The first three characters are the degrees.) <br />
<br />
<h3>
Related link:</h3>
<div>
<ul>
<li><a href="http://learn.adafruit.com/adafruit-ultimate-gps">Overview of the Adafruit Ultimate GPS</a> </li>
</ul>
</div>
<br /></div>
</div>
AWBBhttp://www.blogger.com/profile/17405549293861793025noreply@blogger.com0tag:blogger.com,1999:blog-1280164690471046634.post-27255159142764240732014-02-22T01:35:00.000+01:002014-02-23T17:39:06.709+01:00SD logging and Arduino TFT LCD screen<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicWxUj-JdkPNGQbgCxSXYC6wE38ppHBteAjKHoUM1VaQ0mowl7K0GUXskZdIanbW6z9FArCAuB_fLCTvL9xpynW6usig7YfhGDsiezSweuxywMBS13XWPzRcEzHL-FiEn4d88xZWMqbY4/s1600/TFT_SD_v2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicWxUj-JdkPNGQbgCxSXYC6wE38ppHBteAjKHoUM1VaQ0mowl7K0GUXskZdIanbW6z9FArCAuB_fLCTvL9xpynW6usig7YfhGDsiezSweuxywMBS13XWPzRcEzHL-FiEn4d88xZWMqbY4/s1600/TFT_SD_v2.jpg" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<h2>
How to write data on SD card of the Arduino TFT LCD screen with Official Arduino Robot?</h2>
By default, on the Official Arduino Robot, µSD card reader located under the Arduino TFT screen is dedicated to read sound or bitmap. header file "ArduinoRobot.h" define it like that.<br />
<br />
For our robot we want to save all our data into the µSD in the way to upload them later to a database using wireless connection.<br />
<br />
<a name='more'></a><br />
<br />
Using the Robot::beginSD() is not interesting for us as it will initialize the Melody class to play music.<br />
<br />
<script src="https://gist.github.com/OptionMan/9130650.js"></script>
We prefer use directly SD method to manage SD directly.<br />
'card' and 'file' are already defined into the main class of robot control 'Arduino.robot.h'.<br />
SD card module is plugged into pin CARD_CS of the Arduino Robot control board. The management of this pin (due to SPI usage) is managed automatically by the LCD library part.<br />
<br />
<script src="https://gist.github.com/OptionMan/9130740.js"></script><br />
<br />
<h3>
Related link:</h3>
<div>
<ul>
<li>Arduino TFT LCD screen</li>
<ul>
<li><a href="http://arduino.cc/en/Main/GTFT">Product page</a></li>
<li><a href="http://arduino.cc/en/Guide/TFT" target="_blank">Guide</a></li>
</ul>
<li><a href="http://arduino.cc/en/Reference/SD">SD library</a></li>
<ul>
</ul>
</ul>
</div>
AWBBhttp://www.blogger.com/profile/17405549293861793025noreply@blogger.com0tag:blogger.com,1999:blog-1280164690471046634.post-16579789485616154372014-02-21T13:19:00.000+01:002014-02-23T18:12:31.830+01:00Assembling & Wiring<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7YuKOCIbOitNsAfAh5Yp6XXzun8sMnLxg3vLzZFHGSr5aQTvMuuexUsRIa5mHKcbVMEJFcaRwXiJwIJcfCO-P-knXq7HOD5MisBWE39ha-tuRCHaBFgOF2brgcQ_JAIWiv3Y8DtdKev8/s1600/Assembling.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7YuKOCIbOitNsAfAh5Yp6XXzun8sMnLxg3vLzZFHGSr5aQTvMuuexUsRIa5mHKcbVMEJFcaRwXiJwIJcfCO-P-knXq7HOD5MisBWE39ha-tuRCHaBFgOF2brgcQ_JAIWiv3Y8DtdKev8/s1600/Assembling.jpg" /></a></div>
<br />
This post describes how we have assembled the robot and connected all the devices to it.<br />
The AWBB robot is easy to assemble, only just a few solder are required to obtain extra pin.<br />
<br />
<a name='more'></a><br />
If you just bought your Official Arduino Robot, please follow this first step before: <a href="http://arduino.cc/en/Guide/Robot">http://arduino.cc/en/Guide/Robot</a><br />
Don't forget to plug the Arduino TFT LCD screen.<br />
<h2>
Rear ball shifting</h2>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3SWbmClb_wsp_kh0U9ORnw-RNZpzP_yPwwqDeHB7bjeUw9f7jW4un7yMZN0zxUsIeuW0k_rLLo_BBctpIx0WMRCfqu9wbzW_uHEvNG15L1DKExKozbMKGVLfWCIeNgHscJGulopRNBvs/s1600/Rear_ball.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3SWbmClb_wsp_kh0U9ORnw-RNZpzP_yPwwqDeHB7bjeUw9f7jW4un7yMZN0zxUsIeuW0k_rLLo_BBctpIx0WMRCfqu9wbzW_uHEvNG15L1DKExKozbMKGVLfWCIeNgHscJGulopRNBvs/s1600/Rear_ball.jpg" height="158" width="320" /></a></div>
In the way to improve AWBB moving, rear ball has been moved far of its original place, fixed to a piece of plastic to allow it to move on surface with relief.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<h2>
Wiring all devices and sensors</h2>
<div>
We've got plenty of data to collect from various sensor, some for the robot moving and some for the environment analysis.</div>
<div>
The main problem is the available number of pin. On a standalone board as the Uno, it's easy, nearly all the pin are available and accessible, not on both board of the Official Arduino Robot (Control & Motor). </div>
<div>
OK, let's deal with it!<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDsl_21BCShr3t8pA9qRvrN3mX-fxF6knKPgDR_1P9jHgv03GOB1q1rzwewVOHwT6PgrP0AoHuZah-TSmfUE2SXcQ5No8hpklZIeQkl_V7K_-UPk5XfkHsG13MWQFC8Up3ISA53WOrykk/s1600/Global_view.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDsl_21BCShr3t8pA9qRvrN3mX-fxF6knKPgDR_1P9jHgv03GOB1q1rzwewVOHwT6PgrP0AoHuZah-TSmfUE2SXcQ5No8hpklZIeQkl_V7K_-UPk5XfkHsG13MWQFC8Up3ISA53WOrykk/s1600/Global_view.jpg" height="242" width="400" /></a></div>
<br /></div>
<div>
<h3>
Control Board</h3>
</div>
<div>
This board already contains a lot of components (compass, LCD, SDCard reader, buttons, knob, EEPROM, & buzzer) and they are all connected, it means too few available pins for our sensors.</div>
<div>
We have connected on this Control board:</div>
<div>
<ul>
<li>Servo motor to manage the Ultra-Sonic range meter (connected to a PWM digital pin TK2)</li>
<li>Ultra-Sonic range meter connected to another PWM digital pin TKD4</li>
<li>Light Dependent Resistor on analog pin TK4 (with a 10kOhm pull-down resistor)</li>
</ul>
As we don't have more free pin for interrupt management and not enough memory, that's all for this board!</div>
<div>
We will broach Arduino Robot Control memory optimization in another post. </div>
<div>
<br />
µSD Card port is used to log all the data coming from sensors.<br />
<br /></div>
<h3>
Motor Board</h3>
<div>
This board only manages wheels, infrared sensors and communication with Control board and we have plenty of free memory, let's use it!<br />
We have connected on this motor board:<br />
<br />
<ul>
<li>DFRobot CO2 sensor connected on analog pin TK2 (<a href="http://arduwellbeingbot.blogspot.fr/2014/02/co2-sensor.html">more details here</a>)</li>
<li>Adafruit Ultimate GPS sensor connected on digital pins MOSI and TK3 (<a href="http://arduwellbeingbot.blogspot.fr/2014/02/softwareserial-and-gps.html">more details here</a>)</li>
<li>Temperature & Hygro sensor DHT22 connected on digital pin TK4</li>
<li>Adafruit Electret Microphone Amplifier (MAX4466) connected on analog pin TK1</li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnmL7fUFVORDSnrb7f85s6GNv5ks0x8WrsCXCoHU3tHPibC5Yn0EbIj2C5NEUP24gdeBdQALVYIxUfoOSdvZitANnfU61nqYbOJrRpOyCbx9K9HE6IIjZKsCsrf_kG8V_bkvmRQhAeZ-4/s1600/Micro.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnmL7fUFVORDSnrb7f85s6GNv5ks0x8WrsCXCoHU3tHPibC5Yn0EbIj2C5NEUP24gdeBdQALVYIxUfoOSdvZitANnfU61nqYbOJrRpOyCbx9K9HE6IIjZKsCsrf_kG8V_bkvmRQhAeZ-4/s1600/Micro.jpg" height="86" width="320" /></a></div>
<div>
<br /></div>
</div>
<div>
<i>Note: Electret microphone and CO2 sensor must be plugged to TK1 and TK2 pin as they are working better on analog mode than TK3 and TK4</i></div>
<div>
<br />
Later, in future version of this robot we will add Bluetooth connection to this board.</div>
<div>
<br /></div>
AWBBhttp://www.blogger.com/profile/17405549293861793025noreply@blogger.com0tag:blogger.com,1999:blog-1280164690471046634.post-29594879493156424022014-02-20T13:18:00.000+01:002014-02-24T22:33:38.669+01:00Overview<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgk8m69E18IBg4y5pNmfaNA-_E9sOf1Jpo4kSWnhj0fVtS5r9ZvCtzGug84zlT8t-0v7xJ-fUbkxgkUYdQPdjPsTMwbzeR1JjhBT7vnIQtcgbYeIr9rmmcol0sOImBrdCbFkDQpal4mlVE/s1600/arduino_robot.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgk8m69E18IBg4y5pNmfaNA-_E9sOf1Jpo4kSWnhj0fVtS5r9ZvCtzGug84zlT8t-0v7xJ-fUbkxgkUYdQPdjPsTMwbzeR1JjhBT7vnIQtcgbYeIr9rmmcol0sOImBrdCbFkDQpal4mlVE/s1600/arduino_robot.jpg" height="220" width="320" /></a></div>
<br />
As part of <a href="http://www.robotchallenge.org/">RobotChallenge </a>2014 organized in Vienna, we've been selected to present our project based on Official Arduino Robot for the category "Hack the Arduino Robot!"<br />
<br />
<h2>
"AWBB" for <i>ArduWellBeingBot</i>.</h2>
This small autonomous robot, free to move itself in a place is able to measure surrounding environment quality. It can track humidity, temperature, ambient noise and light, Air quality in the way to map and classify this place as a pleasant or nasty for humans. All the data can be consulted via internet on a map indicating the place location and a note This robot could be used for example in public places (Mall, Railway Station , Airport, Park…) where people needs or want to stay for a moment . It will allow people to find the best place for them, for their health and it will imply more place’s responsible to improve the environment quality.<br />
<br />
<a name='more'></a><br />
<br />
The goal of all these posts is to describe how to build this robot and to answer to all the questions and problem we've encountered.<br />
<br />
We will focus on the robot part only for the RobotChallenge, the mobile device and the web part will be published later.<br />
<br />
<h3>
Global architecture of the project</h3>
The AWBB robot will communicate to a mobile device using Bluetooth LE connection to share information and to be controlled.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKbVoHFzNmc4eaf9CahhjQ_3l5P41LPcrUk9zu2oYu8xunWROIP8rgeg2pxXxmjRI3h9J3Q1NzD3ApfwdwBlUREVlInpZdetLZL08_d56k_zLSMUjXrvjz-DKW25MEGDk-ztGRF9gTuAY/s1600/global_view.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKbVoHFzNmc4eaf9CahhjQ_3l5P41LPcrUk9zu2oYu8xunWROIP8rgeg2pxXxmjRI3h9J3Q1NzD3ApfwdwBlUREVlInpZdetLZL08_d56k_zLSMUjXrvjz-DKW25MEGDk-ztGRF9gTuAY/s1600/global_view.png" height="311" width="320" /></a></div>
<h3>
Required Material</h3>
AWBB will be equipped of the following sensors to evaluate its surrounding environment ant to be able to move independent:<br />
<ul>
<li>Ultra sonic Sensor</li>
<li>GPS</li>
<li>Temperature & hygrometric sensor</li>
<li>Light Sensor</li>
<li>Sound sensor</li>
<li>CO2 sensor</li>
</ul>
A servo motor will be used to build the Ultra-Sonic scanner.<br />
<br />
Our challenge is to integrate all this device management in only 2 x 28 kilo bytes!<br />
<br />
<div style="text-align: center;">
Follow us on Twitter using <a class="twitter-hashtag pretty-link js-nav" data-query-source="hashtag_click" dir="ltr" href="https://twitter.com/search?q=%23ArduWellBeingBot&src=hash"><s>#</s><b>ArduWellBeingBot</b></a> & <a class="twitter-hashtag pretty-link js-nav" data-query-source="hashtag_click" dir="ltr" href="https://twitter.com/search?q=%23HacktheArduinoRobot&src=hash"><s>#</s><b>HacktheArduinoRobot</b></a></div>
<div style="text-align: center;">
<i>Special thanks to <a href="http://www.sopragroup.com/" target="_blank">Sopra Group</a> and <a href="http://www.dfrobot.com/" target="_blank">DFRobot </a>for their help</i></div>
AWBBhttp://www.blogger.com/profile/17405549293861793025noreply@blogger.com0