BTBotControl is an Android application that allows you to remotely control a micro controller-based robot using Bluetooth (i.e. Arduino). It also allows you to (optionally) view a video stream from an IPCamera mounted to your robot. This could be any type wireless IP camera or phone that has the ability to broadcast a video stream/images to the web. Example Foscam, Ai-Cam etc.
Over the summer we installed hardwood flooring – which needs constant sweeping and cleaning . What to do… What to do… Well, most of us would just sweep it, right? Some of us might even go buy a Roomba. But, then again, some of us build something to do it for them. Why? Because we can…
Pulito (Italian for ‘clean’) is simply put, a sweeper robot. Much like a Swiffer and Roomba combined. The intent was to build a robot that could navigate around sweeping hard surface floors, stay away from carpeted areas, make its way under our couches and seek out a docking station when the battery runs low.
I find that I am often using this approach for getting more touch sensors on my NXT without using multiple ports. So, for the sake of prosperity, I wanted to keep a record of the setup.
If you are have a set of Cybermaster Touch Sensors hanging around, you can multiplex them for use on the NXT. Years ago, these sensors were quite rare, but now they can be readily found on Bricklink for a decent price. For those that are unaware of these sensors, they are the trans-green (clear) touch sensors that come with the Cybermaster kit and look similar to the standard MINDSTORMS RIS ones, but with one significant difference – each of them have an inline resistor so that when the circut is closed, each passes current with a different resistance. In addition to this, the value returned varies depending on which combination of sensors is pressed. So, not only can you detect individual sensors, you can also detect states of multiple sensors being pressed. If my memory serves correct, you can detect 6 sensor states (1, 2 or 3 | 1 and 2 | 2 and 3| 1 and 3 )
You can program these sensors easily by setting them up as temp sensors using RAW values. You will get values between 0 – 1023. You can also code in such a way that you are looking for specific values (eg 655), as when a sensor is pressed, the resistance returns an exact value (it does not float between a number range). Also dont forget that you will need an NXT to RCX converter cable.
Sample RobotC program:
Sample NXT-g program:
NXT-g Cybermaster Touch Sensor Multiplexer
I recently had the chance to test out a set of Dexter Industries Thermal Sensors produced for the NXT. For those that are not aware, Dexter Industries has entered the market of producing LEGO Mindstorms NXT-compatible sensors and has come up with some pretty cool ideas such as the dSwitch (allows you to switch in-home devices on/off using the NXT) and some cool new ideas such as solar charging for the NXT as well as a flex sensor (stay tuned for more on this).
We recently picked up one of those Aquasaurs kits for the kids – which lets you hatch and care for some neat little aquatic fish (or shrimp) that date back to pre-historic times. After reading the instructions we got everything set-up and all was good, until we read the part about the temp of the water needing to remain between 72 – 80F. Problem is, we tend to keep our house around 70ish, and during the day, we have our automatic thermostat drop the temp to more frigid temps (to conserve you know!). We quickly realized that these things would likely not get past the larvae stage at those temps. For the first two days, we had the tank propped up on the stove under the halogen lights to keep the water warm. However, over time, they would heat the water too much and need to be monitored / turned off for periods of time. We needed to come up with a longer term solution.
One option would be to simply go out and drop $$ (insert cost here – I don’t know) on a aquarium heater – but that would be too easy. I’d rather take my $300+ extra NXT & temperature sensor and make them work for a bit. Now you ask yourself, how the heck would the NXT heat the water. Well, that’s where dSwitch from Dexter Industries comes in. Interestingly enough, the dSwitch did not come to me with the intent of using it to heat the Aquasaurs tank. It was more like irony and good timing that I just received the dSwitch and we got the Aquasaurs going.
Sometimes I build robots that attempt to solve real world challenges. Other times, robots are built based on random ideas. This robot is a case of solving a LEGO challenge – specifically, with their Technic tracks/treads #575518. At no fault of theirs, these plastic tracks are slippery on many surfaces. Great for carpets, flat areas, dirt (if you dare) – and great for turning as well. However, when you try to climb with them, they are as slick as ice.
If you Google them, you will find some great ideas on making these treads more ‘sticky’. Some have used 1/2 Technic pins (which fit nicely into the supplied holes), others have used elastics wrapped around them – all great ideas that work fine. I attacked the challenge from a different angle. The result is DG – or Dual Grip (yes, the name is somewhat plain). DG went through numerous revisions as I worked out kinks related to weight, stability, traction, sensors, flex etc. At the bottom I have included some pictures on previous versions of DG – some changes significant, others subtle.
The idea was to have a treaded robot that could navigate varying terrain, turn quickly and of course, climb. Based on my experience with my other robots using the same tracks (eg UNV and DynaTrax), I found that they were not very good when it came to inclines. I figured that the LEGO rubber wheels have great traction on most surfaces, so why not slap a set of them along with the treads. However, this posed another challenge. I did not want both wheel systems in contact with the ground at all times as this would make turning tougher and be redundant.
What better way to test a colour sensor then to create a brick sorting robot! After getting my hands on a HiTechnic colour sensor, I first took a stab at creating a robot that could navigate a room and detect colour. There was only one problem, it could not really do what I was hoping for. I was nieve in thinking that I could build this robot and it could detect colours from a distance. After reading the fine print on the provided documentation, I quickly realized that the colour sensor is only capable of reading colours at very close range (~ 1 cm). My bad. Of course, you could still build a robot that uses the ultrasonic or other sensor to get it close to objects, then read the colour… but that’s for another time.
BrickSorter uses this colour sensor to detect the colour of bricks and sort them into a variety of cups. The program is quite simple, gravity and studless beams allow for each brick to slide down the track on its own. when a brick is next, the colour sensor takes a reading (more on this later), the sort motor turns the sort rails to the correct cup, the sort rail motor changes its angle depending if the cup is close or far and finally the kicker motor kicks the brick in motion.
After a lot of fooling around with the cup placement (which seemed to be the hardest part of this project!), I managed to get the sorting pretty much bang on. Of course, the video shows some goofs, but that is mostly due to the small sized cups (its all I had!)… Anyway, I found the sensor to be accurate most of the time, but ambient light still influenced the readings at times and caused for the odd random missorting of a brick. I had to shoot the video about 10 times to get cup placement and sorting goofs worked out.
Your first question is probably “what does UNV stand for?”. Well, its nothing special – I simply could not come up with a name for it, so what better way to tag it then simply unnamed vehicle. After receiving a bunch of the new tread links, I wanted to create something grand with them. Scouting the web, I came across these multi-purpose robots (see below) that can be outfitted for police / bomb squad use, or for scientific work. Thought they looked pretty cool, so they were the inspiration. UNV was sitting around for months before I finally got around to taking pictures and a video of it. Read on for details…
WifiCamBot was one of my adventures in building a robot that could be remotely driven around while transmitting video via a live feed through an IP-based network camera wirelessly.
The idea came from my wanting to do something simple. Survey underneath my deck to see what sort of critters etc were making a home there. The deck was high enough for a rover-like vehicle to fit and drive around. I did not want to have wires tethered to the system, so I used a Panasonic BL-C30 WiFi camera with a built-in webservr to transmit live video via the web.
In this case, I have a webserver where I created a subdomain specifically for the camera to broadcast its info to. Loaded the Java components to receive the streaming video and render it on the site. The site also allows for remote control of the camera via WiFi. So, the entire robot, power and electronics are all onboard. There were a few challenges with this approach. 1) Power – The Wifi camera required 12 volts dedicated power. I did this by wiring 2 battery packs together in series (required a custom modified motor wire). This also added a fair bit of weight to the robot. In total there are 2 battery packs for the WifiCam and 1 for the PowerFunctions motors. That is 18 AA batteries. No worries though – the PF motors still have lots of torque.
Sometimes my robot building ideas are spurred by nothing more than wanting to make use of one or more cool items that I get from time-to-time. In this case it’s two – tread tracks that can be had if you own the Technic Snowmobile (8272) and a TechnoStuff Tilt/Accel Sensor. I was fortunate to have received a huge bag (a few hundred segments along with wheels) of the new tread tracks a while back and begun playing with them to see how they compare to their smaller black Technic counterparts. In a nutshell, I like these ones better as they are larger (more suited to the size of robots and Technic creations I build) and stronger – they dont come apart as easy. They also have pin holes in them to boot, so the sky is the limit for making large tracked vehicles.