To begin the prototype, I have to start brainstorming ideas for ways to improve the mBot. During a consultation with my teacher, I described my concern that the robot does not complete function B (wall avoidance) very well and that I wanted to fix this. However, Makeblock already has a robot for this (it's the third one), so I decided to do something else instead.
Research
I began researching and I got the idea to build a claw for the mBot, and that the claw would be 3D printed. So I started looking for some links:
But I ended up using this one as my base, and developing it to serve a different function.
http://www.thingiverse.com/thing:18339
This claw was designed to hold a can of Red Bull... I don't drink Red Bull... so I will change its function. :)
I had a vision from the beginning that the claw on the mBot would be able to successfully hold and drive around with a cup of water (or tea, yum) without spilling it. So that will be my goal. I will try to build a claw that will successfully transport a liquid in a cup, without spilling it.
As the base, I will be using the school lunchroom cup. I will have to measure this, and make sure the claw will go around it without letting it slip out.
Today I tinkered the size of the claw so that it would be able to grip the cup (the orange cylinder on the right is the size simulator). It will be printing soon and I will be hooking it up to the mBot and coding it. I will also have to figure out how I will be connecting the claw to the robot (perhaps by another 3D printed piece and screws).
While waiting for the print, I decided to do some more coding research ...
The first print was successful-- no piece was deformed in the process, and the print took about 48 minutes.
However, when I changed the size of the claw on Tinkercad, I forgot to change the size of the actual base that connects to the servo, so I had to change its size and reprint it. (Engineering is failing and retrying, is it not? But at least I learned how to correctly set up the 3D printer for a print, and now I feel completely comfortable using it. )
Thankfully, the second print fits, and it only took 17 minutes to finish. The next step is to assemble it and figure out how to connect the servo to the mCore board.
After two or so hours of torturing it, I finally finished making they claw... however, it is very wobbly and unstable because of its size (it does not fit the servo). I may have to reprint and use the original size of the maker, meant to hold a "Red-bull" can.
On the next day, I came to school and the claw just fell apart, so I decided to stay after school and reprint the smaller version of the claw. This move was a result of my temporary feeling of failure with my original. Later however, I ended up finding a way to make the bigger claws work.
On the day of the AP World History exam, I ended up finishing the bulk of my claw prototype. With extensive assistance from my teacher, I was able to figure out how screws and nuts worked, as well as how to connect the claw to an Arduino Uno and find code for it. I was very challenging to align the teeth of the gears together, and even now, the functionality of the claws and the screws could be significantly better.
This is the claw functioning on its own, struggling its way to opening and closing. I ended up scrapping the base piece and connecting the claws right to the servo. It was challenging, but with multiple bolts and the correct size screw (which was very difficult to find) I was able to make it work.
The next step was to figure out how to connect the claw to the mBot and how to make it function so that the robot would be able to "see" and object in order to then pick it up. Because the mBot's ultrasonic sensor had a built in cable, it would have been hard to manipulate it. So, my teacher recommended using a separate ultrasonic sensor, and figuring out a way to connect the two.
In this stage, I decided that I would not try to manipulate the mCore board connected to the robot because not a lot of information about it is available. I tried to research ways to attach a servo to the mCore, but I found nothing. So, I decided that I was going to, in some way, connect the Arduino board to the robot and work from there.
It took me some time until I did enough research and found that perhaps the best way to connect my servo with the ultrasonic sensor was through a breadboard, which I conveniently had brought with me alongside with my Arduino Uno. So, for my final prototype design, I followed the instructions of this website and connected the ultrasonic sensor to the breadboard to form the "eyes" of my robot a bit elevated from the ground to create space for the claws on the bottom. I then plugged in the pins of the servo along the same currents as the GND and 5V on the breadboard. I still have to check whether it actually works...
This is my finished prototype (my little robot Blue Crab... maybe I should call it mCrab).
I would have spent more time figuring out the circuitry of it but the claw took up a lot of time.
Needless to say, there is a lot of work to be done in the redesign stage.