About these ads

Monthly Mindstorms: September 2012

30 09 2012

This is the second installment of “Monthly Mindstorms,” a new series of posts that will summarize the most important news in Mindstorms NXT of the month. News will be organized into the following categories: general news, new sensors, MOCs, and maybe some more that I will add later. Enjoy!

General News

Sept 7th: The Mindstorms NXT Annual Online Competition

Maersk Fan is hosting the first ever Mindstorms NXT Annual Online Competition, judged by himself, nxtstep101, and idkwhoyouare. Head over to Xander’s article at the via link below to find out everything you need to know on a single page, and hit up the source link to submit!

Via: Bot Bench Source: TMAOC

Sept 8th: EUREKA! Problem Solving with LEGO Robotics

Daniele Benedettelli over at The NXT Step reported that Claude Baumann has just released a new Mindstorms NXT book called “EUREKA! Problem Solving with LEGO Robotics.” See the source link for more information and sample content.

Via: The NXT Step Source: ntspress

Sept 8th: RobotC v3.50 released (and 3.51 the 22nd)

From the RobotC blog:

The ROBOTC Development team is proud to announce that ROBOTC 3.50 for the LEGO Mindstorms, VEX Cortex and PIC, Arduino, and Robot Virtual World platforms is now available! The new ROBOTC 3.50 update is free-of-charge for ALL existing ROBOTC 3.0 license holders.Download today and try out all of the new features and enhancements available in ROBOTC 3.50!

Check out the source link for the changelog.

Source: RobotC Blog

Sept 24th: Control a NXT Robot with Android and HTML5

The NXT Step published an article about Wolfgang Beer’s Android + HTML Mindstorms NXT controller.

Source: The NXT Step

New Sensors

Sept 11th: HiTechnic Force Sensor

HiTechnic will soon (“early October” to quote the source link) release an awesome new sensor: the HiTechic Force Sensor. Xander reports that it’s super easy to program, gets very precise readings, and will give you some very useful data. Hit up the source link fo moa.

Source: Bot Bench, image

MOCs

Sept 1st: LEGO Mindstorms NXT 5-axis Robot S750

This assembly robot by akiyuky is awesome! In the demo video, it stacks four colored blocks together to put together a chair. The machine features five axes of movement, and builds the chair with surprising accuracy and speed. Check it out below.

Source: akiyuky (YouTube)

Sept 4th: Segway with Robot Driver

Laurens Valk, creator of the NXT Discovery Book and Inventor’s Guide, has done it again! This time, he released an awesome segway, with the Alpha Rex as its driver!

Source: Robot Square, Laurens200 (YouTube)

Sept 17th: Great Ball Contraption

Even though this isn’t all Mindstorms (it does have an NXT partion), it’s oh so awesome:

The video actually went viral, and now has over five million views.

Source: akiyuki (YouTube)

Sept 20th: The People Behind Cubestormer

The NXT Step reports that the people behind Cubstormer (that awesomely fast LEGO Mindstorms NXT rubik’s cube solver) have published a writeup on their project. See the source link below.

Via: The NXT Step  Source:  Arm Blog

If you’d like your stuff featured here next month, or if you think there’s anything missing from this month’s post, please contact me on my Google+ or my Twitter (sending me a story does not guarantee that it will be in the post).

About these ads




Monthly Mindstorms: August 2012

30 08 2012

This is the first installment of “Monthly Mindstorms,” a new series of posts that will summarize the most important news in Mindstorms NXT of the month. News will be organized into the following categories: general news, new sensors, MOCs, and maybe some more that I will add later. Enjoy!

General News

Aug 24th: RobotC 3.5 Beta Released

The new RobotC v3.5 Beta has been released to the world, so go check it out! Some of the new stuff:

  • Full ANSI-C support to support pointers, recursion, and stacks with an updated compiler and updated robot firmware.
  • New and Updated Debugger Windows
  • Updated documentation
  • More! See the source link below

Source: RobotC

Aug 26th: RobotC: Driver Suite v2.8 Released

Xander Soldaat, the man behind the awesome RobotC third party sensor driver suite, has released a new version of the code, adding support for two new sensors and lots more. See the source link for the complete change log and a download link.

Source: Bot Bench

New Sensors

Aug 20th: Dexter Industries: NXTBee USB Adapter

This awesome new toy will let you connect your NXTBee to your computer, for highspeed NXT to PC communication. From the blog post:

The NXTBee USB is a radio for communicating with your NXTBee devices, allowing you to send and receive information to the NXTBee from your computer. Send data to your NXT, receive data from [your] NXT.

Source: Dexter Industries Blog

Aug 27th: HiTechnic: MiniScope

HiTechnic has some new goodies for us: the MiniScope. From their website:

An oscilloscope is one of the most commonly used measurement instruments used in the electronics industry. At the most fundamental level, an oscilloscope enables the variation of an electronic signal with time to be viewed as a graph. This means that waveforms can be readily displayed and analyzed.

The HiTechnic MiniScope is specially designed to work with the SuperPro board. It fits into a standard breadboard making it easy to use with testing new circuits.

Via: Twitter, Source: HiTechnic, image

Aug 30th: Mindsensors: Light Sensor Array (Coming Soon)

Xander also got us some juicy news about Mindsensor’s new Light Sensor array, which features 8 individual sensors to help you follow lines like you never have before. Read all about it at the Bot Bench source link below.

Via: Bot Bench Source: Mindsensors

MOCs

Aug 3rd: Lightplot

A very nice, very creative project here: it’s called lightplot, and it does exactly that. The robot shines a laser pointer onto a flat white wall, and a long exposure camera captures what it “draws”. See the source links for more information; especially check out the Vimeo one for the project’s awesome video.

Via: The NXT Step Source: rethinkfx, Ben Cowell Thomas (Vimeo), image

Aug 5th: Controlling your robot with a TV remote

Xander over at Bot Bench published a great story about how you can use your TV remote with a Sony PS2 Controller Interface from Mindsensors, and also included RobotC code so it’s easy to get started right away. See his video below for a demo:

SourceBot BenchXander Soldaat (YouTube)Mindsensors

Aug 6th: LEGO Mindstorms NXT Curiosity

After NASA’s Curiosity Rover successfully landed on Mars earlier this month, The NXT Step ran a story about Will Gorman and Doug Moran’s LEGO Mindstorms NXT Curiosity Rover. It is a very impressive thing to see, and it’s packed with some very cool functions. Check out the video below for a demo, and see the source links below for a lot more on the rover.

Via: The NXT Step Source: willgorman (YouTube)

Aug 6th: NXTified Rescue Helicopter

Yet another very nice NXTification from Anika Vuurzoon: the 9396 Rescue Helicopter. From the video description:

It can turn, tilt forward and backward, do all the original function and much more.

To learn more about the helicopter, see the video below and, as always, the source links.

ViaThe NXT Step SourceVuurzoon (YouTube)

Aug 8th: Mindstorms NXT Laser Cannon

R J McNamara brings us this very cool NXT Laser guided cannon. From his blog:

I was asked by my son to build a LEGO® Mindstorms NXT Sentinel Cannon for him to play with and take to school to show his friends. My initial thoughts was to build a LEGO Zamor equipped Cannon for the job. Upon reflection, I could see the Robot, and a couple of dozen Zamor Spheres leaving home for school, with only the Robot returning. I thought why not up-scale the Zamor Firing Mechanism and use Pin-Pong Balls as projectiles instead.

Source: R J McNamara

Aug 15th: New NXT X-Y Plotter

Another one from R J McNamara: a very nice X-Y plotter. It is a very impressive-looking device, and the write up on his blog is very detailed as well. Go check it out at the source link.

Source: R J McNamara, image

Aug 20th: Coltar, Lego Mindstorms NXT Guitar

A very creative project that “mixes art and science.” From the RobotC blog:

By mixing imagination with ingenuity, PhilippLens created the hybrid guitar using a LEGO Mindstorms NXT brick with a color sensor and two touch sensors (one on the Coltar itself, the other on the ‘pick’). Using the touch sensors to control chords and the color sensor to control which notes are being ‘strummed’ allows the Coltar to emit a surprisingly large range of notes.

Via: RobotC Blog Source: PhilippLens (YouTube)

Aug 25th: full Size LEGO Cart

:O was my initial reaction. This beast of a machine is capable of transporting a 40-kilo child! Hit the source links for more.

Via: The NXT Step Source

If you’d like your stuff featured here next month, or if you think there’s anything missing from this month’s post, please contact me on my Google+ or my Twitter (sending me a story does not guarantee that it will be in the post).





Mindstorms NXT Sudoku Game Pt. 4: Initial Release

27 07 2012

Read more about my Sudoku game here: part 1, part 2, part 3, part 4

Although I spent most of today packing for vacation (you probably won’t see too many updates on this site the coming three weeks), I managed to squeeze in a couple of hardcore programming hours, which allowed me to finish a first working version of my sudoku game. Some screen shots:

So here’s how it works:

  1. The user selects a difficulty (the higher the difficulty, the less visible clues) using the left and right arrow keys and then clicks the orange button
  2. A completely random Sudoku is generated and displayed on the screen
  3. The arrow keys are used for navigating the grid: the left key moves the cursor over one spot to the left, and the right arrow key moves the cursor down one spot. If the user reaches a side/ corner, the next arrow click will bring the cursor to the other side of the playing field, as illustrated below:

  1. Clicking the square orange key when an editable cell is selected (“clue” cells aren’t editable) will increment the cell’s value by 1, unless its value is 9, in which case the cell will be reset to 0
  2. Clicking the rectangular gray key will check the user’s version of the sudoku against the answer key (a copy of the generated sudoku without the non-clue cells removed), and tell the user how many errors there are. If there aren’t any, a “You win!” message will appear and the program will be aborted; if there are errors (including un-solved cells), the user will be asked if he/ she wants the wrong cells reset — if yes, the program will clear these cells, if no, they’ll remain wrong and the user will return to the game

So overall I’m very pleased with the game, because it was quite challenging to make it work doing some pretty difficult things, such as:

  • Generating a completely random Sudoku from scratch every time the program runs
  • Deciding which cells could safely be hidden from the user while still keeping the Sudoku solvable
  • Making a custom, smaller, font for the NXT to be able to show a grid around the numbers.

Anyways, if you’d like to download the most current code for this project, see this page here:

https://sourceforge.net/projects/dimastero/files/Sudoku/?

Changelog:

  • v1.0.0 (7/27/2012) Initial release
  • v1.0.1 (7/27/2012) Added documentation

Read more about my Sudoku game here: part 1, part 2, part 3, part 4





Mindstorms NXT Sudoku Game Pt. 3: Smaller Font

24 07 2012

Read more about my Sudoku game here: part 1, part 2, part 3, part 4

Especially after the program got up to the point of being able to hide parts of the Sudoku from the user, the grid that was being displayed wasn’t very clear; it was hard to see what numbers were together in the 3*3 blocks.

The obvious solution was to simply place a grid around it, but, with the 64*100 pixels screen and the 7 pixel high font, that didn’t work. So instead, I made my own font for displaying digits to the screen, which is featured in the picture below.

Writing pseudo code for this would be a waste of time, but the general idea is that the function makes a black rectangle, 5 pixels high and 3 pixels wide, and then uses a couple of for loops to erase parts of it again.

Here’s a link to the RobotC function: [LINK]. I would’ve put it here, but the formatting thought different.

Next, I’m going to make a way for the users to be able to select cells in the Sudoku, move to different cells, and fill in numbers in those cells. And then all that’s left is checking the user’s score.

Read more about my Sudoku game here: part 1, part 2, part 3part 4





Mindstorms NXT Sudoku Game Pt. 2: Hide and Seek

23 07 2012

Read more about my Sudoku game here: part 1, part 2, part 3part 4

Today I got some more work done on the Sudoku game for Mindstorms NXT: the program is now able to smartly hide parts of the complete Sudoku grid, leaving necessary clues.

The following image cannot be displayed: Sudoku Image 3

The way the removal code works, it goes to a random position on the grid a number of times depending on the difficulty, and then uses two solving methods to check how many numbers would fit in that spot. If more than 1 fit, it means that the user would not be able to solve for that cell, so the number is kept as a clue; if only 1 number fits, however, the cell is hidden from the grid to be solved by the user. Here’s the pseudo code for the hiding part:

  1. Copy the full Sudoku grid from the sudoku array to the userSudoku array (the former will be kept as an answer key)
  2. Enter the outer for loop that repeats difficulty times (the harder the puzzle, the more clues need to be hidden; default is 30)
  3. Reset the tries variable
  4. Increase the tries variable by 1
  5. Check whether the tries variable is above 100. If it is, skip forward to displaying the Sudoku; if not, continue
  6. Reset all the Boolean variables in the numbers array to true
  7. Set variables j and to random numbers between 0 and 8
  8. Check whether userSudoku[j][k] is equal to 0. If it is, go back to step 4; if not, continue
  9. Enter a second level for loop that determines l and repeats 9 times
  10. Enter a third level for loop that determines and repeats 9 times
  11. Check whether userSudoku[j][m] is equal to l. If it is, set numbers[l] to false
  12. Exit the second and third level for loops
  13. Enter a second level for loop that determines l and repeats 9 times
  14. Enter a third level for loop that determines and repeats 9 times
  15. Check whether userSudoku[m][k] is equal to l. If it is, set numbers[l] to false
  16. Exit the second and third level for loops
  17. Check how many variables of the numbers Boolean array are true. If this is 1, set userSudoku[j][k] to 0; if not, go back to step 4
  18. Exit the outer for loop

So this results in the program setting a number of cells in the userSudoku grid to 0 (and all cells equal to 0 aren’t displayed) and thereby hiding parts of it from the user’s view, creating an actual Sudoku puzzle, like the ones in the screen shots above and below.

The following image cannot be displayed: Sudoku Image 4

The next step is to make smaller text for the NXT, because, the way it is now, the numbers are too close together and I can’t display a grid around them (there is only a little screen estate available; 64*100 pixels). This won’t be too difficult though, because I’ll only need to make single digits (0, 1, 2, 3, 4, 5, 6, 7, 8 and 9).

Read more about my Sudoku game here: part 1, part 2, part 3part 4





Mindstorms NXT Sudoku Game Pt. 1: Generator

19 07 2012

Read more about my Sudoku game here: part 1, part 2part 3part 4

I’ve always wanted to make a Sudoku game for Mindstorms NXT, and, since it’s the holidays and it’s been raining all day, I finally got a start on it. The basic idea is that the NXT will generate a completely random (but correct) filled-in Sudoku grid, then determine what boxes can be emptied for the user to fill in, then let the user fill in those boxes, and finally check the user’s answers.

Today, I got around doing the first part: a fairly short (54 lines of code) RobotC program that generates and displays a full filled-in Sudoku grid on the NXT’s screen. Here’s the pseudo code:

  1. Clear the sudoku variable (a 9*9 array that will hold the grid)
  2. Enter the outer for loop that repeats 9 times and determines the number, i, that is going to be placed in the next cell (cells are filled in order: all the 1s are first, then all the 2s, etc.)
  3. Clear the block Boolean variable (a 9 variable array that will register whether number i is already in each 3*3 cell block)
  4. Enter the inner for loop that repeats 9 times and determines j, which represents the row the number from the outer for loop is placed in (this is because the same number can only be placed in the same row once)
  5. Set variable k to a random number between 0 and 8 to determine what column number i will be placed in
  6. Reset the tries variable
  7. Increment k by 1, or, if k = 8, reset it to 0
  8. Increment the tries variable by 1
  9. Check whether the tries variable is less than 9; if yes, continue, if no, go to step 1
  10. Check whether i is already present in the column; if yes, go to step 7, if no, continue
  11. Determine which block i is going to be placed in by looking at which row, j, it’s in, and which column, k, it’s in
  12. If i is already present in the block i is going to be placed in, go to step 7, otherwise, continue
  13. Place i in the sudoku array, in row j and column k
  14. Set the corresponding block Boolean variable to “true”
  15. Write i in the correct place on the screen
  16. Exit the inner for loop
  17. Exit the outer for loop

The results of that are shown in the picture above: a completely random Sudoku, made entirely by the NXT. Worth noting is that the program will get stuck,  because, since the placement of the numbers is random, there are bound to be conflicts.

When this happens, steps 8 and 9 will reset the program, and it will keep on re-running until a complete Sudoku is created. Sudokus will therefore take anywhere from a split second to an infinite amount of time to generate. The average is about 4 seconds.

There are also some other things going on, like a simple UI for the user to choose a difficulty level while he/ she waits for the NXT to finish generating the Sudoku, but that’s not included in the above pseudo code. Below are some screen caps from said interface.

The next step is to make the program determine which numbers can be derived from the remaining set and hide some of them from the user. The difficulty level will determine how many of these numbers will be hidden: each progressive difficulty level will hide one more cell than the level below.

Read more about my Sudoku game here: part 1, part 2part 3part 4





Google Science Fair: My Project

3 04 2012

As you  might have noticed, I haven’t posted to this blog in quite a while. But I have a great excuse: my dog ate the posts I was working on my project for the 2012 Google Science Fair! The idea behind the GSF is that you come up with a question that you then answer with an experiment, and report about. So, without further ado, my question:

To what extent is it possible to use free existing online tools to create interactive, easily accessible robotic utilities that can be controlled by users all over the world?

To prove this, I set up an experiment where people would “call” the robot, like last time, except that, this time, it wasn’t open to everyone, and I made appointments with 20 people to be able to take precise measurements of how well they did. To get good results, I rebuilt the car, and even added some new functions to it — it was now able to all the following:

  • Drive forwards and backwards (instead of just forwards)
  • Turn left and right
  • Grab a ball (all new)

That way, I was able to measure how well the users performed doing several tasks. For a full explanation of what I did and what the results were, check out my project page:

https://sites.google.com/a/googlesciencefair.com/science-fair-2012-project-ahjzfnnjawvuy2vmywlyltiwmtjydwssb1byb2ply3qy7ugzda/home

Since I’m finished with that (for now), I can promise you I’ve got some very exciting stuff coming up for you, so stay tuned!








Follow

Get every new post delivered to your Inbox.

Join 41 other followers