I use Enchanting in different workshops, with children, young and old, from 6 to 66, with great results. My primary goal is to help everybody realize that coding is not difficult (if you give it a try!), and can be very fun and rewarding. My real purpose is to give kids the tools to keep computers/tablets/phones under control, and be conscious of their usage and limits.
It’s aimed to introduce the basics of robotics and programming. I begin by explaining how to use the sensors and motors by comparing them to human senses, car motors and wheels.
The process of coding behaviours and programming the robot is always the same.
- Goal(s) Definition Step: Imagine what you want the robot to do.
- Sequences Definition Step: Tell the story, with you pretending to be the robot: what you do, what you see, what you hear, what you touch, where you go… for ‘x’ steps.
- Coding Step: Use Enchanting to teach the robot how to perform the nth Sequence of the Story.
- Testing Step: Download and try it out for real.
- Debugging Step: Correct the code to fix it. Then go back to step 4.
- Completion Step: When the Sequence is OK, go back to step 3 and program the next (n+1) sequence.
- Show And Tell Step: When the full story is done (n=x), or you’re fed up/stuck, share your results with the audience, demonstrate your achievements, explain the code, discuss the problems faced and/or the solution(s) found.
To help people imagine what they want the robot to do, and how, I ask them to pretend to be the robot, facing its challenges, understanding the world only through the sensors attached to it, and moving around with motors and wheels instead of legs. This allows me to introduce programming concepts as variables, constants, conditions, blocks, and sensor/motor settings in only five minutes – which is so much easier than if they don’t have a robot handy to imagine themselves being.
After this little introduction, we start by coding a simple behavior together (often square dancing with handshakes). Using a simple visual tool like Enchanting enables people to quickly learn how easy it is to create a functioning robot, and how fun it is to learn from mistakes (a robot crashing into walls instead of avoiding or following them is always followed by lots of laughter!). It’s very important to be able to learn from errors in your everyday life, this is a normal and very efficient way of learning…(We are not at school, isn’t it?)
In a second time, everyone is free to invent their own behaviours, and/or rebuild their robot as necessary to achieve their own goals. Using LEGO technic parts make it easy to repair broken robots, and, even better, to modify the chassis, the size of the wheels, the sensor placement and types, to make the robot perform better, step by step. At this time, my role changes to giving advice and answering questions. I take care to make interactions as “light” as possible, allowing them to discover together and learn for themselves.
The best moments for me are(for me) when we show the results of our coding, whether or not the robots are working. Those special time are always inspiring and full of laughts, and even shyest people can find a way to express ideas, with the robot as target.
What is cool about Enchanting is that if you already had experience with Scratch, you can re-use your knowledge and skills. It is also neat that if you want to make a complex concurrent behavioural framework complete with an arbiter, you can, but you can also program a robot with a six-year-old boy, who is just starting to read, to say hello and wave its hands, in a very simple and clear way, with the same user-friendly environment.
The old French translation included with Enchanting was poor and incomplete. I asked if I could improve it, and the maintainer kindly replied, “Of course!” So I spent a few hours with Poedit reviewing and completing the ‘fr.po’ translation file, from A to Z. This is one of the virtues of open-source projects; you can go in and fix a bug or enhance usability by yourself, and share the improvements with the community. My improved French translation file is now part of the new version of Enchanting, 0.2.3!!! I’m so proud, and very grateful to the Enchanting community; it’s great way of building things together.
The cards, a set of slides, demonstrate the interface and concepts used in Enchanting, enabling kids to be autonomous in their learning. Cards inspire a lot, with kids copying the programs explained, which is another great way to learn!
As you might guess, I urge you to try Enchanting:
- if you have an NXT kit collecting dust due to the complexity of NXT-G,
- if you want to experience educational STEM activities with your kids, in a fun way (‘cause it’s fun to build a robot!!!),
- if you dream of building robots, but have never tried because you were afraid of the (supposed) complexity,
play with LEGO Mindstorms and Enchanting, and you will have fun for sure!
More about “Coding Gouter”, a fun-filled afternoon that can be literally translated as “Snacks & Code”, where kids and parents learn from each other, sharing skills and ideas:
More about “HacKidemia”, which enables young people, with the help of Makers and Hackers, to learn the knowledge and skills they’ll need to invent their future jobs and solve the big problems we all face:
More about “Open Bidouille Camp”, the French “Maker Fair” Initiative:
|The holonomic wheels I use (the strange black/orange wheels on the bottom of the robots), are made by Rotacaster: http://www.rotacaster.com.au/robotics-wheels.html
These wheels, also called “Omni-Wheels”, make fantastic casters, and are great for demonstrating some physics phenomena, such as slipping, friction, and traction. To learn more, see: http://en.wikipedia.org/wiki/Omni_wheel and http://botbench.com/blog/2010/12/20/rotacaster-one-kit-omniwheel/
I use robots inspired by the “ball hunter” and the “5 minutes bot” . They are very easy to build, rugged and multipurpose. Don’t hesitate to browse this inspiring site “nxtprograms”, to copy and hack models; you will learn a lot. It is a really great resource!
Poedit is cross-platform translation-file editor which runs on Unix, Windows and Mac OS X. Unlike other editors, Poedit provides a compact view of the data and a very effective UI.