Coming Soon from Dexter Industries: a 6 DOF IMU

19 07 2011

Wow, a lot of new sensor/ NXT stuff these days – this is the third in row: Dexter Industries comes with a 6 DOF IMU. It was first leaked on I’d Rather Be Building Robots, where Xander wrote:

Dexter Industries are currently developing a great new sensor, a proper 6 Degree of Freedom (DOF) Inertial Measurement Unit (IMU) for the NXT. It consists of two sensors on a single board; a 3-D gyroscope and a 3-D accelerometer. Both sensors can measure their respective values on the X, Y and Z axes.

The sensor, like many of the other Dexter Industries products before it, comes with a very bright U-R-Blind LED™ to indicate when it’s powered on. This light is also useful when trying to find your way out of a dark cave.

I’m currently working on a driver for it which will be part of the Driver Suite, of course.

The following image cannot be displayed: Xander's Photo of DI's 6 DOF IMUI’m imagining it’s going to be a lot like what Aswin did for his ball balancing bot. I hope the DI one’s gonna be just as precise – see A Grain of Sugar. Again, once people start doing stuff wit hthis sensor, I’ll post links below:





New from HiTechnic: a Barometric Sensor (via I’d Rather Be Building Robots)

17 07 2011

About to board, so I don’t have time to write up a post, so here’s a reblog of Xander’s post at I’d Rather Be Building Robots:

New from HiTechnic: a Barometric Sensor HiTechnic have released a new sensor: a barometric sensor that can also measure temperature! If you ever wanted to make your own weather station, then this is perfect for the job! It measures the pressure in 1/1000th of an inch of Mercury, which can easily be converted other units like Pascal and PSI. The temperature is measured in 1/10th degrees Celcius. I already have a driver and test program for it and I’ll be sure to release it very shortly … Read More

via I’d Rather Be Building Robots





“Coming Soon…” from Mindsensors: Two Android Sensors for the NXT

9 07 2011

The people at mindsensors are great; they created the famous NXTCam, NXT SumoEyes and much, much more. On their “coming soon…” page, minsensors publish the new Mindstorms sensors they’re working on. Right now, it features a touch screen overlay for the NXT display (!) and an altimeter. The last two sensors on there right now are both android related.

20110708-182718.jpg20110708-182923.jpg
Mindsensors’ NXTShield (left) and Teemino (right). image 1 source, image 2 source

NXShield for Arduino

… “is designed to fit on an Arduino. It will have 4 NXT motor ports, 4 NXT sensor ports and several RC servo motor ports. The NXShield will attach to an Arduino Duemilanove or Uno or similar Arduino clones. … The programming for the NXShield will be on Arduino, using usual Arduino C/C++ programming environment.”

Teemino – Android ADK and Arduino compatible board

“Using this board, you can use your Android phone as an integrated robotics controller, (not just a remote).” On MindBOARDS, mattalan37 said that “The new Android device is similar to the coming device for the Arduino Uno (and similar form factor boards). This new mindsensors device will also be compatible with the Arduino Mega.”

So there you go: mindsensor’s upcoming android – NXT sensors. Basically they’re going to make your NXT sensors and motors fit to an Arduino Uno, eliminating the NXT block :(. The good part about this is the lightness of the board, so you’d be able to make lighter, faster (flying?) robots.

As soon as people start experimenting and doing stuff with the sensors, I’ll add links below.





Dexter Industries’ NXT Thermal Infrared Sensor

27 06 2011

EDIT: I was working on a (/this) post about the stuff that people have done with Dexter Industries’ thermal infrared sensor, when it hit the shelves today (24/06/2011), so here is a more up to date version of it.

First off: some images

The following image cannot be displayed: Dexter Industries' Thermal IR Imaging Sensor; Front ViewDexter Industries’ thermal IR sensor, front view. image source

The following image cannot be displayed: Dexter Industries' Thermal IR Imaging Sensor; Hind View The following image cannot be displayed: Dexter Industries' Thermal IR Imaging Sensor; Side View Dexter Industries’ thermal IR sensor, back and side views, respectively. image source

The cool thing about this sensor is that it can read temperatures of up to 380° C (700° Fahrenheit), more than double the amounts their NXT thermometers measure. And that with the same accuracy of .5 degrees Celsius!

Based around the MLX90614, the sensor has a resolution of 0.2 degrees Celsius. It can read “both the ambient temperature (the temperature of the air around the sensor) and the surface temperature of the object that the sensor is pointed towards” (source). So, since it’s a non-contact based thermometer, it can detect heat at a distance; a flame can be spotted up to 2 meters (6 feet) away.

And that’s exactly what Xander Soldaat did. He built a pan and tilt rig and pointed it towards a candle, taking 80 x 90 readings. Those he put into excel, and turned them into these two images:

The following image cannot be displayed: Xander's Excel Graph of his Experiment        The following image cannot be displayed: Xander's Thermal Image of his ExperimentXander’s results. image 1 source, image 2 source 

He did the same with a glass of water, and also made a video of his rig. You can see those at his blog post over here.

With the introduction of their latest sensor, Dexter Industries also published a new manual wiki. The manual for their infrared imaging sensor is available over here, packed with descriptions, explanations and warnings. It’s for sale for just under 55 USD.

Here’s a (hopefully) full list of things people did with the sensor; if you did something new, or see something I missed, just leave a comment and I’ll add it:





The Fin Ray Effect® – for LEGO?

21 06 2011

Like my last  Festo-based project Bionic NXTPod 3.0, my next project will use the Fin Ray Effect® (see bottom of page). Since it’s kind of difficult to find out what exactly the Fin Ray Effect® is online, I’ve tried to scramble together as much information as possible online to get a good understanding of it, and how it might work with LEGO MindStorms, Technic and pneumatic pieces (quite a mouthful:)). In the end, I hope to use this information to create a fast color sorter for LEGO balls or small bricks.

The Basics

The Fin Ray Effect® is based on the basic principle of how fish’s, especially rays’, fins work. In other words, “the Fin Ray Effect® is a design based on the functional anatomy of a fish’s fin”. A part using the Fin Ray Effect® is made up of two struts or rods, which are joined at their tips forming an acute triangle. It can also be done using three, four or six rods, to add the third dimension, like in the Bionic Tripod (the same goes for versions 3.0 and 2.0). Oftentimes, there are also supports in between the rods to keep them apart and make the structure steadier and more flexible.

The following image cannot be displayed: Fin Ray Effect StructureBasic structure of the Fin Ray effect®. Image source

To move the structure, you simply move the ends of the rods up or down, and the movement gets translated into a smooth circular sideways motion.

The following image cannot be displayed: Fin Ray Effect MovementTwo lineal forces applied to the rods make the end curve sideways. Image source

Applications of the Fin Ray Effect®

Festo has already used the Fin Ray Effect for several robots in their Bionic Learning Network. They include:

The Bionic Tripod series

Underwater robots

Airborne robots

Miscellaneous

The last one I found out about is Festo’s bionic material sorting gate, a colored ball sorter using the Fin Ray Effect®, which is going to be the inspiration for my next project. The goal is to go for at least 50 successful sorts per minute (the Festo one does 3 per second). The above websites were also the sources I used for writing up most of the rest of this article.

Connecting with LEGO

To recreate the Fin Ray Effect® in LEGO, you would need to find LEGO pieces to replace all of the following:

  • Two actuators
  • The support beams
  • The struts/ rods

For the actuators, there are a few possibilities. The “best” option would be to use Firgelli linear actuators (L12NXT), to control how far the actuators move. The problem is the price tag: they’re currently sold for 55 USD each. The next option would be the LEGO ones, but since those are mostly controlled with power functions, they wouldn’t be too precise. They’d be very big and clumpy with a NXT servo attached.

The following image cannot be displayed: Firgelli's Mindstorms Linear Actuator (L12NXT)Firgelli’s Mindstorms based linear actuator. Image source

Stepping away from motorized/ electric actuators, next would be pneumatics. They’ve got quite some advantages: speed (if they’re modified), as much strength as you pump into it, and they’re relatively cheap. The only problem is that they’re not directly controllable from the NXT, and virtually impossible to keep or even get to a specific place using LEGO alone. The only options would be open or closed.

The following image cannot be displayed: Bionic NXTPod 3.0's actuators initial designSimple NXT servo motor based linear actuator; better version here

As a last resort, you could build your own linear actuators, like I did. It isn’t going to be very compact and probably not as strong as a “real” one, but it’s the cheapest option by far (given that you have a NXT :))

The connection beams aren’t much of a problem either. You could just use regular rounded technic beams. They’d have to become smaller towards the end, though. It’d also be best if they went down in size gradually, so don’t use something like 11, 11, 9, 9, 7, 7, etc. because that’d compromise the flexibility. Something like 11, 9, 7, 5, etc. would work much better.

It’s also important to make the supports slightly turnable, so the beams don’t always have to be at a 90° angle from the struts. Remember the support beams are only there to keep the rods apart, not make them immovable.

Most difficult to figure out are the struts; there are pretty much only two options available. The first are the hollow hoses found in some Technic sets, usually in silver or black. These are very hard to get, so aren’t really usable for bigger constructions.

A yellow soft axle hose; usually seen in black. image source

The other ones are very good though. They’re thin, you can connect them using a simple pin in between, and they’re flexible but try to get back to their original position as much as they can. And you can get them for less than half a dollar each, over here! The problem is that these soft axle hoses aren’t very strong by themselves, so it’s a good idea to use two of them in parallel.

So there you have it: using the Fin Ray Effect® in LEGO is possible, and, with the right materials, can provide an interesting new way of building robotic arms and such.

Fin Ray Effect® is a trademark/brand of EvoLogics Gmb





RobotC: Precise Motor Positioning Tool

27 05 2011

UPDATE: Download this program w/ setup, usage instructions and a demo here; get the driver (optional) here.

Programming my current project, Bionic NXTPod 3.0, I broke the actuators a few times by having the slide run into either the top or bottom. This was caused by my motor control: every time it went up or down, the encoders were reset, not considering whether or not the motor was exactly on target. As the errors built up, the actuators were torn down.

Looking for a solution, I saw HiTechnic‘s motor PID block – for NXT-G – which lets the motor move to an absolute encoder position, without resetting in between. Using this method, the error – usually not more than 2-3 degrees – is eliminated every time the motor moves to a new position, because the block compares the desired position to the actual position, not the assumed “0 point”. For example:

  • The motor needs to go to 200 degrees and then back to 100
  • The program starts, and the motor overshoots to 201 degrees
  • Without the HiTechnic block: the motor would move back 100 degrees – because it thinks it’s at exactly 200 degrees – ending up at 101
  • With the HiTechnic block: the motor would move back 101 degrees (201-100) ending up at 100
But, since the block’s for NXT-G, that wouldn’t work for me. So, I made a similar (but not quite as versatile) RobotC function:

void PositionMotor(char motorToTurn, int absoluteDegrees){
  if(nMotorEncoder[motorToTurn] == absoluteDegrees){}
  else if(nMotorEncoder[motorToTurn] < absoluteDegrees){
    bMotorReflected[motorToTurn] = false;
    nMotorEncoderTarget[motorToTurn] = absoluteDegrees-nMotorEncoder[motorToTurn];
    motor[motorToTurn] = 75;
    while(nMotorRunState[motorToTurn] != runStateIdle){}
    motor[motorToTurn] = 0;
  }
  else{
    bMotorReflected[motorToTurn] = false;
    nMotorEncoderTarget[motorToTurn] = nMotorEncoder[motorToTurn]-absoluteDegrees;
    bMotorReflected[motorToTurn] = true;
    motor[motorToTurn] = 75;
    while(nMotorRunState[motorToTurn] != runStateIdle){}
    motor[motorToTurn] = 0;
  }
}

All you do is input the motor you want to move – like “motorA” or “motorC” – and the amount of degrees, measured from your “0 position” (by default, this is the position your motor is in when the program starts), and it does all the work for you.




Dexter industries WiFi Sensor Demo by Mightor: Spin Pretzel

9 05 2011

EDIT: the live stream will be taken down on May 15th 2011.

Since the Dexter Industries WiFi sensor is coming out (soon?), Mightor is writing a RobotC driver/ library for it. And the proof of concept video is AWESOME. It features Pretzel, one of his NXTs, which(/who) you can see at this live stream. The cool part is that you can command its(/her) motor, just by going to a webpage and putting a speed into the URL! From his blog:

I am currently streaming a live feed of my NXT on UStream.  You can easily control the motor on my NXT using URLs like:

The
power to the motor can range from –100 to 100, with 0 being “brake”. Be nice to the poor little NXT and observe these simple guidelines:

  • Don’t try to feed it garbage, nobody will think you’re a l33t h4xor if you crash the NXT and if I track you down, I will send my NXT powered, hellfire missile armed quadrocopter to your house. It’s fully autonomic but it has some bugs, so waving a white flag may be perceived as a threat instead and it will act accordingly.
  • It may crash and it may not respond as quickly as you’d like but give it time and don’t hammer it.
  • If the light on the left is not ON then it’s not running.
  • Don’t bother leaving messages in the comments or mail telling me it has crashed. I’ll check periodically to see if it is still responding and restart it if necessary.

It’s a very small webserver programmed in ROBOTC running on the NXT. It uses the new Dexter Industries WiFi sensor for the NXT. You can download the code right here: [LINK]. You’ll need to download my driver suite too as it uses the common.h file from there.  The code is rough and mostly undocumented. Usual caveats apply. This program and driver will be part of the driver suite.

Try it!

The following image cannot be displayed: Pretzel, as seen in the live stream





HiTechnic Experimenter’s kit I2C output addresses

2 05 2011

I couldn’t find all of these addresses anywhere, so I tested them to see what pins (B0 – B5) they’d turn on. A white box means that that address is turned on, and a black box means it’s off. Thanks to Xander and bullestock for helping me complete this list:

The following image cannot be displayed: I2C output addresses on HiTechnic Experimenters Kit





Coming SOON from Dexter Industries: Wifi for the NXT

10 04 2011

New info available! From the DI blog:

Dexter Industries brings Wifi to Lego Mindstorms NXT.

We’ve built our first prototype and we’re shipping them out to our beta-testers and collaborators.  The hardware is done, and over the next few weeks we’ll be working to develop some killer software applications that will bring all the power of the internet and wifi to Lego Mindstorms NXT

Picture available, too:

Wifi-From-Dexter-Industries





How To: make Custom NXT – PF Cables

26 03 2011

This guide will tell you how to create your own Lego Mindstorms NXT to Lego Power Functions cable, to control any PF motor or light, how to program it, and what you can do with it.

What you’ll need:

  • An expendable regular NXT cable
  • An expendable PF (could be an extension cord, light, motor of XL motor)
  • Soldering equipment
  • Insulation wire
  • Some very basic electricity knowledge
  • If under 18: permission from parent/ guardian to solder, and cut your NXT/ PF wires

Steps

  1. Get a good workspace set up; make sure you’re either outside or keep some windows open (solder is toxic); also lay something on your table to catch falling solder.
  2. Cut the NXT and PF cables in half, keeping about 5 cm (2 inches) of wire on both.
  3. Strip both wires down to the copper; for the NXT cable, cut off the blue, yellow, green and red wires; strip the black and white onesNXT to PF illustration 1
  4. Connect one of the middle two PF wires to the white NXT wire (it doesn’t really matter which one; if you’re making multiple cables, though, keep consistent), and connect the other one to the black wire.NXT to PF illustration 2
  5. Solder these connections and individually insulate them so they’ll never be able to touch each other
  6. Twist the wires together and insulate the whole thing to complete your cable, you can heat shrink it if you have the means to.NXT to PF illustration 4

Programming

Since both the Lego power functions and Mindstorms NXT work on 9v (6 AA batteries), programming them together isn’t very difficult. All you need to do is use a regular motor function (or motor block in NXT-G) to send power through one of the three possible ports (this won’t work with sensor input ports). One very important thing, though, is to turn off the built in motor PID control, because the program doesn’t get any feedback from the PF it’s controlling. So, it’ll always turn the power to 100 to compromise the speed it doesn’t think it has.

So this (RobotC code):

task main(){
  int waitMSecs = 50;
  nMotorPIDSpeedCtrl[motorA] = mtrNoReg;
  nMotorPIDSpeedCtrl[motorB] = mtrNoReg;
  nMotorPIDSpeedCtrl[motorC] = mtrNoReg;
  motor[motorB] = 25;
  motor[motorC] = 50;
  while(true){
    motor[motorA] = 0;
    wait1Msec(waitMSecs);
    motor[motorA] = 100;
    wait1Msec(waitMSecs);
  }
}

would make the PF function connected to…

  • Port A: flicker on and off every 50 mSecs
  • Port B: turn on to 25% of the maximum power
  • Port C: turn on to 50% of the maximum power

So, now you’re able to connect ANY Lego power function straight to you’re NXT, and, without any difficult programming, control it straight from there very accurately, with the possibility to use timers, loops, reverse power, dimming and much more!

Links:





Coming (soon?) from Dexter Industries: WiFi for the NXT

25 03 2011

Earlier today, Dexter Industries, the folks responsible for the dFlex, NXTBee, dSolar and much more, released a preview to some of their upcoming products. One of those was a WiFi sensor for the NXT (!!), to “let the NXT communicate with the internet”. This’d open up a million of possibilities for NXT to PC communication, NXT to NXT communication, data storage, data sharing (live?), etc, etc, etc.

WiFi blocks for the NXT have been made before though, but they’ve never been for sale (as far as I know).  Sjef Fransen, for example, has done something similar for “Lego Beyond Toys“, see picture below.

It’s unknown when it’ll come out.





NXTBee’s invasion

9 02 2011

New from Dexter Industries: the NXTBee has arrived! From their website:

The Dexter Industries NXTBee’s are now up for sale. We have some example code to get you started in RobotC, and we’re working on NXT-G blocks for the sensors.

Goodbye slow, short, and unreliable communications over bluetooth. Hello easy, fast, far-reaching, and awesome communications between the Mindstorm NXT’s and other devices with XBees.

It’ll be for sale in three editions: regular, naked and pro. The regular one gives you:

  • Fast, long-distance wireless communications.
  • Communicate Far: Send data over 300 feet.
  • Communicate Fast: High speed communication between NXT’s.
  • Communicate Wide: Talk to multiple NXTs and other devices and robots.
  • Communicate Easily: Minimal configuration with advanced options for secure and mesh networking.

NXTBee Regular

In addition, the NXTBee naked has:

  • Fast, long distance wireless communication the NXT.
  • Just the adapter. No radio included.
  • Configurable for XBee and XBee PRO.
  • Slide an XBee or XBee PRO radio into the sockets and go!

NXTBee Naked

And, finally, the NXTBee PRO adds:

  • Fast, long distance and easy-to-use XBee PRO adapter and radio for the NXT.
  • Communicate Far: Send data over 1.2 KM.
  • Communicate Fast: High speed communication between NXT’s.
  • Communicate Wide: Talk to multiple NXTs and other devices and robots.
  • Communicate Easily: Minimal configuration with advanced options for secure and mesh networking.

NXTBee Pro

The three models (regular, naked and pro) will be available as singles, costing $55.01, $33,02 and $78.00, respectively, as well as being sold in pairs, for about double those prices. More info:





Why I haven’t been building lately

31 01 2011

Lately, I’ve been bothered with a problem almost every MindStorms building individual hates: my batteries were empty. Since I started keeping the batteries I used to power my robots (a few months ago), I’ve used 36 batteries. 36! So, after long consideration (about half a minute), I went to BrickLink and got the 1978003 rechargeable battery set from brickshop holland. It’s charging as I write this, and I can’t wait to start experimenting with it. Here’s some pictures:

Picture of Lego Mindstorms NXT rechargeable battery (old version)

Picture of Lego Mindstorms NXT rechargeable battery (old version) next to regular AA batteries

36 NXT-consumed batteries vs. one IMMORTAL(ish) rechargeable battery

Please note that this is the older version of the NXT rechargeable battery, not the one available at the online Lego shop. The only places to get it are ebay, BrickLink, Markplaats, etc.





NXTstep Bluetooth Dongle Resource

23 01 2011

The NXT STEP has published a resource to find good, NXT-compatible Bluetooth dongles. Everyone can add to this list by leaving a comment at the post including the following (copied from original post):

  1. Brand/Name of Dongle
  2. Price
  3. Where to get (web link, or store name etc)
  4. Confirmed compatible operating systems
  5. Notes (if applicable)

Don’t wait; click here to go to the official post (and comment), or click here to visit the NXT STEP blog.





Putting the HiTechnic Magnetic Field Sensor to the Test

20 01 2011

Since I received my HiTechnic magnetic field sensor, I’ve always wanted to put it to the test. In this post, I’ll discuss the sensor’s response time and it’s precision, to see if it can be used as angle sensor. These tests were inspired by a comment on mightor’s blog by Sparra Mc.

First, let’s look at the time it takes for the sensor to update its reading. The main part of the testing program is a 10-seconds loop with about four commands and no waiting, so the program runs through it thousands of times. The magnetic field sensor value is taken at the beginning of the loop, and then compared to the previous value. If the values are the same, nothing happens and the loop restarts. If they’re different, though, a variable holding the total amount of readings is increased by one. After the loop ends, this variable is divided by ten to get the readings per second. The experiment was repeated 25 times. These are the results:

HiTechnic Magnetic Sensor Readings per Second bar graphThese values average to about 325 readings per second, which is even more than HiTechnic specify of their website! So, the HiTechnic magnetic field sensor updates about every 3 mSecs.

Even though a low update time is important, precision matters, too. My second and last experiment focused on that. The program it runs on makes the motor (with magnet attached to it – the magnet was positioned to give the maximum possible value at the experiment’s start) run slowly, while taking a magnetic field reading every ten encoder ticks. That resulted in a total of 36 readings. The below graph shows those readings vs. the position (in degrees) the motor was in.

Motor Encoder vs Magnetic Field Sensor Value line graphThese values look precise enough, and, if the magnet was horizontal in the beginning (to give a 0 value), one could use it as a rotation sensor. The only problem being that the value gets negative, which might be confusing to program.

Overall, I think the HiTechnic magnetic field sensor is great and performs awesomely. With its precision it could be used for almost anything, including for (some suggestions from around the web):

  • distance measurement
  • communication
  • angle measurement
  • in-floor beacons for decision making
  • much more!

So, to anyone reading this, I would STRONGLY recommend buying the HiTechnic magnetic field sensor! More info:








Follow

Get every new post delivered to your Inbox.

Join 34 other followers