In this tutorial, I'll show you how to use the LEGO MINDSTORMS EV3 datalogging capabilities to measure how fast a fidget spinner spins.

I use a Colour Sensor in reflected Light Mode, positioned above one of the lobes of the spinner. When the sensor is pointed directly at table, it gives a high reflected light reading, however, when one of the lobes of the spinner passes under the colour sensor, the reflected light readings change. By measuring the time between each lobe passing under the sensor (and taking into account there are three lobes) the rpm of the spinner can be calculated.

I set the Experiment up to run for 10 seconds, and to take 1000 samples per second. The spinner is moving pretty quick so we want to grab as much data as we can.

After we run the experiment, we upload the data and get the following:

If we zoom in on the data, we can clearly see the lobes of the spinner as they pass under the Colour Sensor.

The first part is before we get the spinner spinning. By zooming in on some data, we can clearly see how the spinner reflects different amounts of light depending on what is directly under the Colour Sensor. I was surprised at how clearly you can see the various parts of the spinner. You can clearly see the silver parts of the bearing nestled inbetween the black moulded plastic.

Click for larger version

By measuring the time between any two common locations on the graph, you can calculate how fast one lobe of the spinner goes past. Keeping in mind that there are 3 lobes on my spinner, you can calculate the rpm of the spinner at different times.

By using the analysis tool, we can measure how long it takes the spinner to do one spin. You'll note I've taken the first 'high' part of the graph, where the spinner sees the white table, and then again at the 4th 'high' part. This is because there are 3 lobes of the spinner.

You can see that the start of my section crosses the x-axis at 2.16 seconds, and ends at 2.30 seconds. This gives a time of 0.14 seconds per revolution.

To convert into revolutions per minute (rpm) we divide 60 by the time for 1 revolution. 60/ 0.14 = 428 rpm.

I calculated the speed at the start and again around 8 seconds after it had started spinning. My spinner went from 428 rpm to 215 rpm during this time.

This would be an awesome experiment in class as it would be possible to see the relative slowdown between different types of spinners.

I was recently invited by CQUni to give a guest lecture. I spoke for about 45 minutes on the topic "Don't Teach Robotics, use Robotics to Teach". The main crux of the talk was that in education, we generally want to teach problem solving, computational thinking etc. The robots are just a really good platform in which to teach those concepts.

I talk quite a bit about the Australian Technologies Curriculum as well as how robotics can be used to meet that curriculum. We had a few audio issues at the start, but they are fixed by the 4 minute mark.The talk was live streamed out to half a dozen or more CQUni campuses around Australia.

It's been hot here in Australia. Maximums have been around 30C-35C all week and the humidity up over 50%. We get the occasional news story about the dangers of leaving kids and pets in cars on days like today and it is easy to understand why.

It's been on my to-do list for a number of years, to actually log what the temperature rise in a car is, and I got a few hours today to set up an experiment and find out (an hour was spent just trying to find my temperature sensor!)

So here is the setup. An EV3 Brick and a NXT Temperature probe (Your LEGO Education supplier should have them in stock).

I started up a new experiment in EV3-G and set the Experiment Units Setup to have a Duration of 20 minutes and a Rate of 5 Seconds between Samples.

I started the experiment with the EV3 on my outside table in the shade for 2 minutes to get a baseline reading of the air temperature.

After 2 minutes I drove my car out of the garage and parked it in full sun on the driveway. I put EV3 brick and sensor on the passenger seat, making sure it was still in the shade inside the car.

20 minutes later (well, 18 if you count the 2 minutes resting on the table) and I went to retreive the EV3 and uploaded the data. You can clearly see the 2 minutes resting before it goes into the car at around 32C - 33C (around 90F). It then rockets up to over 44C (112F) in the space of just over 15 minutes.

It is a great visual reminder of just how hot it can get in there, in a very short period of time!

I was asked a few weeks ago if I'd like a review copy of these cards and I thought, 'why not?' and then promptly forgot about them. Fast forward to last week and they rock up on my doorstep as promised :)

I was a huge fan of the old SCRATCH Cards, designed for version 1.4. They were freely available for download and I even went to the trouble of laminating several sets for use with my workshops. They were well put together with simple, small activities that kids could work through at their own pace and with 12 different cards, each highlighting a different aspect of SCRATCH, it was a great way to get kids up and running.

Things have been been greatly improved since, with the release of the box set of 75 (Yep, 75!) Cards for use with SCRATCH 2.0 from No Starch Press. These cards have been put together by Natalie Rusk, one of the lead developers of SCRATCH at MIT.

My first impressions; I'm really impressed. It is great to see them laminated (will make them last longer in a classroom). I also really like the way they have grouped them into projects based around theme. Each theme has a header card that briefly describes the project, and then lists the other cards in the series that you need to complete to finish the project. I'm a big fan of this method of instruction, guiding the kids into breaking down a large problem into several smaller problems (a central tenet of Computational Thinking) and then letting the students have lots of small 'wins' as they progress through the cards.

Some of the projects are structured such that you can complete the cards in any order, others need to be completed in a specific order.

Each card has two sides (obviously). On one side is the 'Aim' of the card (what the student hopes to achieve by completing the card, the other side gives some basic instruction on how to assemble the code blocks. It will point you in the right directions for finding sprites or changing backgrounds, but a rudimentary knowledge of Scratch certainly helps to fill in the gaps.

The only thing that I would have liked to have seen more of, are some prompts to get kids to make changes to their code and explore the effect on their program. There are a few 'tips' scattered amongst the cards, but a deliberate structure would have been nice. ie. "What would happen if you changed xxx to zzz? Try and and see what happens. Now you make your own change and see it it does what you expect".

I was recently sent the newest Humanoid robot offering from Meccano, the Meccanoid XL 2.0. It is apparently an upgrade from last years G15KS. Full disclosure, this was sent to me for free with no expectation that I send it back.

First up, it is a great build, my kids were drawn to it immediately. It is big (4' / 1.2m) tall which makes it quite a sight to see. The voice interactions are great and there is an impressive amount of commands you can use. Just a quick caveat, out-of-the-box, my Meccanoid had no response other than "I'd love to do that, right after you update my firmware". Firmware update was quick and painless.

Building:

Mechanically, the build was great fun for me. I love these kinds of systems and quite happily spent 5 hours putting this guy together. While the box says suitable for ages 10+, I think a 10 year old would really struggle and get quite frustrated at times. I like to think I'm quite good at these, and yet it still took me 5 hours. I think this is more suited to a parent/child combination working a few hours over several days.

When you open the box, there is literally a kilogram of nuts and bolts, so you know that you're in for a long build. The supplied hex-head screwdriver is great, but I found the accompany nut-holder tool pretty much useless. The times I needed something to hold a nut in a confined space, the tool let me down badly.

Meccano have copped flak for having all these parts in plastic rather than metal, but that didn't really phase me. One this this has allowed, is for the plastic parts to be moulded with nut housings and raceways. What this means is that you can place a nut in the housing, and once the bolt engages, it will hold itself in place, no tool necessary. There are a few parts where a 'raceway' has been moulded in, allowing you to slide the nut into the correct place, rather than having to delicately hold it into place. A lot of the angle connectors have moulder lugs in them which allowed for easy registration with their mating faces.

If you enjoy tinkering with mechanical stuff, you'll love putting this together.

The major downside was the instructions. I spend a *lot* of time teaching kids, and clear instructions are paramount. Meccano instructions were sadly lacking in many places. First up, they were too dark in places which made counting holes a little difficult (was it the 3rd or 4th hole from the end?) There were a few sequence of instructions in which I would wonder to myself "Why did they do it in that order?" With a little more thought put into them, they could have have made them a bit easier to assemble. When assembling the parts that have motor wires, they neglect to show you when to put the cables. On a few parts I inadvertently pinched the cables. Luckily I hadn't tightened the parts enough to cut through the cables and was able to reroute the cable along what I thought was the correct path.

Programming:

Meccano claim that there are 3 ways of programming the G15KS, There is no information on their website about the XL2.0 however. The L.I.M. (Learner Intelligent Motion) programming is a little better. In this mode you can manually move the robots arms, head and feet around, and the robot will 'remember' the actions and play them back to you. Again, this is a lot of fun, but it doesn't really introduce kids to the concepts of Computational Thinking or Programming.

The G15KS had a motion capture mode when you could put your smartphone in the chest of the robot, and by utilising the smartphone camera, you could get the robot to do the same actions as you (Think exercise instructor out the front and the robot mimicking your actions). This appears to have been removed for the XL2.0 but I can't find any info to support this.

Voice Activated commands are a lot of fun and a great way to play with the robot, but I wouldn't exactly call it 'programming'. After a protracted attempt to load the Firmware Update software on my computer (requiring Microsoft .NET 3.5SP1), I could upload the latest firmware. After a quick systems check by the robot (checking that it was moving the correct arms), we could jump into Voice Activate commands. I'm not sure if it was the Aussie accent, but both myself and my 6 year old son struggled to get this to work nicely. Sometime it would recognise a command, sometimes it wouldn't. Overall though, he enjoyed seeing the robot react to his voice far more than I did.

The last way is via the App. With this app, you are given a virtual Robot on your smart phone/tablet that you can manipulate by dragging the arms/head/feet around. Similar to the LIM system, it'll remember this and play back when you need it.Something I did stumble across (but not through any info on the official Meccano website) is a new feature called Behaviour Builder. This has a lot more appeal for me as it implied you could string together different behaviours, and have them triggered on different inputs etc. This would be a great way to start teaching kids about the fundamentals of programming, namely Sequence, Selection and Iteration.

Rag Doll avatar. You can click and drag his limbs aroundBehavior Builder

The Help screenshots are great for the basics. They tell you about the inputs and the outputs and what you can control. It seems a little incomplete however, as I found icons with no explanation about what they did.

Help Screens

The side palette toggles between inputs and outputs. On the inputs side, you can trigger the next action based on a few different things - Timer, Counter (To use as a FOR loop), Meccanoid Brain buttons or the Servo angle. This last one was the most fun, as you can trigger actions by lifting the arms of the robot or something similar.

On the output side, you can control the Feet motors, any of the Servo motors, make sounds and change the lights in the Eyes/Servos/Brain to just about any colour you want. You can also set in motion a animation sequence that you may have already created with the Rag Doll Editor. One thing that would have been nice would have been to have access to the pre-recorded movements that are available in Voice Command mode, ie. Kung-Fu, Dancing or Shake Hands. Unfortunately if you do want to do something similar, you have to plan out your own movements from Scratch.

I was able to do some basic programs whereby some basic inputs trigger some basic actions. When trying to do something a little more complex, using counters or timers, I couldn't seem to get them to work.

A bit more Googleing and I found these two awesome videos from Meccano. They were great in describing some of the more complex parts of the software. Hopefully they put out more of these as they were well done and fantastic in showing off the software capability.

This made things far more interesting, and would increase its relevance in a classroom situation. It is a little fiddly, but I eventually got the hang of creating an IF statement with the combined component. The Counter icon is a nice way to implement a FOR loop, but with no documentation on this function yet, I can't see kids figuring that out for themselves.

Creating an IF statement

Having spent so much time on a variety of other Graphical programming environments, there were a few things which felt a little clunky. I can foresee kids getting frustrated trying to cut connections and re-position icons. Sometimes when the icons are dragged, the connecting wires stay logically connected, but they redraw often in weird directions, sometimes going behind other icons.

The icons required to drag out are tiny and drag smoothly to where you drop them. I gave up on my phone after a while and switched to a tablet just to save my sanity. In all fairness, this is likely how a classroom would run the programming given the prevalence of tablets in class.

Conclusions:

This was a fun build for myself and while the software seemed very basic at first, I am beginning to see the potential of some more complex programming down the track. I however had a lot of experience with these types of platforms and I feel like a 'regular' kid might be at best, able to string together a few instructions and perhaps an occasional branched program.

Does this fit in a classroom? I don't think so. The build is way too long and fiddly to have kids working on it. The voice activated commands would get lost in the ambient noise of a classroom. The programming, while showing promise, just isn't quite ready for a novice classroom teacher to preset to a class other than the absolute basics. In addition, Meccano haven't released any Lesson Plans or Curriculum links so teachers would need to do those things themselves.

Is it an impressive robot for home? Definitely. It has a lot of great 'play' opportunities (although it struggles with our Aussie accents) and if there is a parent in the household that might be slightly techy / programming inclined, I can see the educational possibilities beyond just the 'play'.

Did I miss anything? Do you have something more to add that I've missed? Please let me know in the comments below.

This is a bit of a long spiel, of a topic that I've been mulling over for the last few years.

I’ve been teaching with robots for over 15 years now and one of the most common question I get from Teachers is “Which robot platform should I get for my school?” I’ve used over a dozen different platforms quite extensively and at the end of the day, I truly believe that it doesn’t really matter :)

In the education realm, we should never be solely focusing on ‘Teaching Robotics’; instead we should be using ‘Robots to Teach’. Just like any other educational tool, Robotics platforms are just a means to teach different concepts. Technology comes and goes, and in this day and age is seems to be coming and going faster every day. Teaching students a very specific tool (such as just a single specific robot platform) is fine for the moment, but unless the students understand the broader concepts behind the technology, once something newer and shinier comes along, they will be right back at the beginning, learning a new technology.

By using the platform to teach (rather than teaching the platform), we instil in our kids the ability to solve higher order problems, think more broadly and be more adaptable with the tools they have on hand. When a new technology comes along, they are more likely to understand the tool more rapidly and begin using the tool to help solve their challenges.

We use these platforms to teach programming, computational thinking, problem decomposition, mechanical engineering, branching statements, directional terminology and so on, and so on. The robot itself is just a platform that is used to teach these concepts so it doesn’t really matter which one you choose. There will be a variety of factors that will guide teachers in to choosing a platform that suits their school best and they should include;

Price. If there is a robot platform that is amazing, but it costs $5000 / robot, is that a better investment than an adequate platform that is $200 / robot? For the same amount of money, a cheaper robot can engage more students.

Availability: Can you easily get them in / into Australia (or whichever country you are in)? Are spare parts or add-ons easy to source?

Age appropriate Programming Language: Graphical or Text based? Do you need a platform that can span across both to appeal to a wide range of ages?

Curriculum Resources: Are educational based activities easy to come by? While it would be awesome to have the time to use robots in class because they are fun, in reality everything we do needs to be meeting some parts of our Curriculum. Are those activities affordable/ adaptable / assessable?

Teacher support: Often the ‘robotics’ teacher/s at a school might be only one or two teachers, which makes it a little more difficult to bounce ideas around. Many robotics platforms have good extended Educator communities in the form of mailing lists, forums etc.

Professional Development opportunities: Are your staff comfortable in using the equipment in class. Too often I’ve seen cupboards of equipment sitting idle in a classroom because the teacher who originally used it has now moved on and no-one else at school knows how to use the gear. Is the equipment easy to use and it is just missing a teacher willing to take it on?

Reliability: If you are spending too much time just getting the platform up and running, then that is time that could have been time spent solving challenges.

At the end of the day, I think the best robotics platform is the one that teacher feels most comfortable using. If they are comfortable with it, then they will teach with it, just like any other tool at their disposal.

I'd really appreciate any thoughts / comments / rebuttals you may have in relation to this. I'd prefer to keep all the conversation centrally located on my facebook page (www.facebook.com/domabotics) but feel free to reply on whatever platform you have read this on.

I was recently interviewed on our local radio station as part of their Education2.1 segment.

It's 10 minutes long and Wayne Chalmers and I chat about robots in the classroom, how I got into the field and some suggestions for teachers that may be looking to incorporate robotics in their classroom.

I had an email from a teacher recently asking for some advice on how to put together a voting machine using the LEGO MINDSTORMS EV3. I quickly put together this example as a starting point.

The build is ridiculously easy - The EV3 and 2 Touch Sensors.

The program however is a little more complex. It would be a great way to teach a variety of more complex concepts like variables, parallel processing and looping.

(click for larger version)

There are three parallel tasks; Task 1 sets up a variable (Bob) and makes sure it is zero when the program starts. It then runs an unlimited loop in which it waits for a touch sensor to be 'bumped' (pressed and released). It then takes that variable and adds one to it and stores the number back into the variable. Task 2 does exactly the same thing for a different variable (Sue). Task 3 takes the Bob variable and combines it with some text so that the display says 'Bob: 7" as opposed to just the number by itself. It then displays that Text on the screen at position 0,0 (Top left). It then does the same thing with the Sue variable and puts it at position 0,3 (Middle left roughly). The important thing to note is that this second display block has the 'Clear Screen' input parameter set to FALSE to make sure that we don't clear out our Bob Text.

If you wanted to extend it further, you could set the loops to run for only a few minutes, and then you a Compare Block and Switch Statement to declare a winner (or a draw!)

I'm often asked to give quick demos of my robots to show off what they would be capable of in a classroom setting. I have three different models that I regularly fall back to to show off basic movement, the Ultrasonic Sensor, the Colour Sensor and the EV3's ability to play music. Description and Project file under the video.

1. Line follower. A simple line following robot using a single Colour Sensor in 'reflected light' mode. The program is a basic edge follower using a Switch statement inside a Loop

2. Obstacle Avoider. Using the Ultrasonic Sensor, this robot backs up when it gets close to an object. I put in an extra little 'back up and shake' routine as well as a sound effect to give it a little more personality.

3. Music Maker. This design only needs a Colour Sensor being used in 'Colour' mode. An extended Switch statement identifies which colour is under the sensor and then plays the appropriate note.

I've included the .ev3 file below if you want to use them for your self.