Loading
janicko

Ozobot Sokoban Bumper

by janicko Jun 29, 2018
Download All Files

Thing Apps Enabled

Please Login to Comment

Thanks very much for your Sokoban grids on your /ozo/ page and the .stl files! I understand that the Ozobot reads code that I have pasted down on the black line between the blue-red and the red-blue-red stripes. I have two questions:

  1. What does the Flashing Code do? Does it prepare my Ozobot to read the code I've pasted down? Why should I load it onto the bot?

  2. What do the two codes, at the beginning and end of the "learning" section, actually tell the bot to do? Read and remember code? Are these two color combinations used for any other purposes in the Ozo language?

The standard Ozobot codes modify its behaviour at the next intersection. I.e. if you wanted to solve the grids using standard codes you'd need to paste them into the grid and you wouldn't be able to e.g. act differently on the same line if you pass it for the 1st time and for the 2nd time (because Ozobot would read the same code from the same line).

The flashing code loads custom program into the Ozobot which enables you to "teach" Ozobot the instructions up front (by pasting the custom codes - different from standard ones - into the learning section). The first marker tells Ozobot to enter the learning mode, i.e. to start remembering the codes/directions. The robot reads the codes until the end marker (or to be specific first unknown code) is detected, then proceeds to the first intersection from where it starts executing the set of instructions it "learnt" before.

This enables you to solve the puzzle without a computer. If you want to solve the particular level by creating a custom program (e.g. in OzoBlockly) then you don't need to flash the code from the page into the robot and you'll flash your custom code into the robot instead.

I.e. the codes used in the challenge are not standard codes and on their own do not really tell robot to do anything. However, in combination with the program above (i.e. if you flash it into the robot) they behave as described above.

Thanks, Janicko! Your explanation is a big help. I'm setting up a summer program in which I'm hoping to get teenagers to teach younger kids to program solutions to mazes (and sokoban puzzles). I appreciate your time and effort to explain how your code works.

That's good to hear. I hope the kids will like it.

However, please try it in advance to see how it behaves and what sort of situations you may encounter. I think this program (reading custom codes) is reaching limits of Ozobot capabilities and the interpretation of the codes may be sensitive to light conditions, Ozobot battery levels and other things (I'm not sure how "younger" kids you meant and how cleanly can they e.g. cut/glue).

I've tried it with the class of 8-year-olds and while the smartest and most skilled of them were able to solve the puzzles and enjoyed it, some of the kids spent a lot of the time "fighting" with Ozobot not reading their code properly. So instead of focusing on problem solving and enjoying they were frustrated with the robot "not working", which is not an experience that would be desirable in an entry-level program which should attract them.

Agreed! I try out any new ideas for learning on my non-programmer colleagues; if they can enjoy the experience, then a middle school (7th and 8th grade) kid can spend time solving puzzles and not "fighting" the machine. Again, thank you for your efforts.

Do you know of any other Ozobot games, puzzles, or mazes that kids will enjoy (other than the ones on the Ozobot.com site)?