This is a project from 2014 and was a collaboration between myself and Leif Ahlman at Drones Networking.
Both Leif and myself have witness that engineering in schools have been downprioritized for other subjects. There are of course exceptions but in general many of the Engineering teachers that we talked to, say the same thing. Engineering is not considered as vital as it used to. This is a situation that both Leif and me feel strong about and would like to turn around. We see that engineering is the future and the topic will generate many jobs in the future!
We did a lot of brainstorming to figure out how to do this until one day I saw that fully working robot vaccum cleaner was being sold extremly cheap at a larger electronic online store. It does of course not come with any advanced sensors like LIDAR or camera but it has the sensors required and for a beginner within robotics it was a perfect match, not too advanced and still something that can useful when it is finished. We bought a couple of robots and started dismantling them. To our joy it turned out that this model was very easy to hack.
But we wanted more than only to let our students, dismantle a robot. We wanted them to learn how to program as well. After many late evenings and nights we finally came up with what we named Dustino: An Arduino-based robot and can replace the mainboard in the cheap robot vaccum cleaner. Even the connectors can be reused, just remove the old board, mount the new board, insert the connectors, done!
- H-bridge for controlling the wheels
- ATMega32U4 with a 16 MHz crystal
- ISP
- RX/TX LED:s
- Reset button
- USB connector
- 5V regulator
- Power indication
- Bump sensor
- Main powerswitch
- Battery level
- Usercontrolled LED
- 8V regulator (supply for misc motors)
- FETs for controlling misc motors
We also developed a Arduino library and many examples of code to support teachers and students.
// Dustino
// (c)2014 Hobbytronik
// www.dustino.se
//
// Description:
// Go forward until the robot bumps into something. Reverse and turn randomly at a direction
//
#include <Dustino.h>
Dustino dustino;
void setup()
{
dustino.init();
// Create a seed for the random function
randomSeed(analogRead(A9));
}
void turn(int dir)
{
// Turn off motors
dustino.setMotorSpeeds(0, 0);
delay(200);
// Reverse away from the obstacle to give the robot space to turn
dustino.setMotorSpeeds(-200, -200);
delay(1200);
// Check which direction to turn
if(dir == 0)
dustino.setMotorSpeeds(-150, 150);
else
dustino.setMotorSpeeds(150, -150);
// Random for how long the robot shall turn
delay(random(800, 1200));
dustino.setMotorSpeeds(0, 0);
}
void loop()
{
// Check if robot has hit something
if(dustino.isBumperSensorActive())
{
dustino.setLED(true);
turn(random(0, 1));
}
else
{
// The robot can continue forward
dustino.setMotorSpeeds(200, 200);
dustino.setLED(false);
}
}
We wrote a manual and setup a site. We had the first lessons with student between 10 and 16 years old in spring 2014. They were all given a robot and their task were to program a fully functional robot vaccum cleaner. The course went very well and we did receive some very positive feedback.
Summary
Unfortunately the project did not succeed commercially. We didn’t have the money to setup a large scale production and were not able to find someone that wanted to support us financially. It was however a very nice and fun project and one of our most successful project so far!
References