A few random thoughts on building robots with Python
A million years ago on Make Magazine I wrote “Zen and the Art of Making” – Experts stay still; beginners are constantly moving. An expert can point out the difficulty in every project, while the beginner can only see possibilities. I’ve been thinking about robotics (specifically for young folks) and how it has been at a stand-still in many ways for so long. It’s expensive, hard, and unwelcoming. I jotted down some thoughts over the last few weeks while making a robot-a-night, reminds me when I started Hack-a-Day for some the same reasons. My constraint was 30 minutes, materials – junk/trash/recycled part, and I had to film a video with my phone at the end, post it, and the code.
This is a work in progress…
Building robots, especially for beginners, is for the experiences. “Expertise” is a collection of thousands of mistakes, which is later called knowledge. Robotics are imprecise, and robots are built on mistakes.
Robot building projects are experiences that connect skills and chart out the skills to learn. Reading and simulation is not enough! Starting out with a “how a motor works” book is not as useful as making it move in person, or reversing the motion just with changing the polarity.
Every robot building experience is preparation for a future problem to solve that is not known. The physical world is different, everywhere.
Building robots can transform many of the mysterious complexities of the world and “how things work” into smaller, learnable experiences that build on top of each other. It’s more like oil painting than architecture.
Building robots is creating real things that combine art, craft, math, and programming skills for specific reason, by example, with working examples.
Robot materials can be cardboard, paper cups, spoons, string…starting with stuff you’re going to recycle anyways gives the creator the permission to play, while creating experiences that are familiar combining multiple skills. The more expensive the robot, the less mistakes that can be made!
Block-editors (for code) are just as important as physical building blocks (for example, LEGO-compatibles). Strings in code are just as important as strings on a pulley. Each needs dedicated time and focus to explore, break, fix, and repeat.
Writing code for robotics needs to be real-time, have frequent iterations, most time cannot be spent waiting compiling and sending. This is perfect for CircuitPython. The REPL in the beginner code-editor “Mu”, the auto-start after save and the “shows up as a USB drive” features of CircuitPython makes projects easy, fast, and has instant results. It can take less than 5 minutes to have a robot speak “hello world” and move around.
More later – pt.
Alice came to a fork in the road. “Which road do I take?” she asked.
“Where do you want to go?” responded the Cheshire cat.
“I don’t know,” Alice answered.
“Then,” said the cat, “it doesn’t matter.”
– Alice in Wonderland
CRICKITs of the week!
CRICKIT “TREK” – To boldly go where no Python has gone before – video & guide.
MARBLE MADNESS with CRICKIT, it’s rollin! – video & code.
Crickit Collapsible House, huff and puff! Watch out piggies’ – video.
Crickit Cart Bot Navigation – video.
New CircuitPython 3.0.0 Beta Release!
We’ve released the next beta version of CircuitPython 3.0.0. Please test it and let us know how it goes on Discord.
PLOT of the week!
Sensor graphing with plotter. CircuitPython + Mu + Heartbeat Pulse VIDEO CODE GUIDE
In the newsletter here so far, we’ve had COLOR, POTENTIOMETER, BUTTONS AND SWITCH, CAPACITIVE TOUCH, SOUND, MOTION, TEMPERATURE and LIGHT.
News from around the web!
Greg is working on microcontroller computing fractals to e-Ink in a CircuitPython interpreter.
Thonny Beta has support for MicroPython and CircuitPython
MQTT with Adafruit IO – Example CircuitPython code for using MQTT with Adafruit IO. Tested with CircuitPython releases 2.3.1 and 3.0.0.
ASCII art in Mu with MicroPython.
EduBlocks Editor For microbit – Getting Started.
PyDev of the Week: Naomi Ceder from Mouse vs Python
Adafruit CircuitPython Weekly for June 11th, 2018 Recording
Get your own Blinka PCB pin from OSH Park
June 22nd at 3pm ET the Adafruit team will be doing a “HackChat” on Hackaday.io all about Crickit and CircuitPython. We’ll add all the specifics once hackaday posts’em up.
July 23rd to July 29th, 2018 is EuroPython, a community conference with a call for proposals until May 20th on every aspect of Python: programming from novice to advanced levels, applications and frameworks, or how you have been involved in introducing Python into your organization.
New Learn Guides!
CircuitPython Made Easy on Circuit Playground Express from Kattni
CircuitPython’s stable release is 2.3.1 and its unstable release is 3.0.0-beta.1. New to CircuitPython? Start with our Welcome to CircuitPython Guide.
20180608 is the latest CircuitPython library bundle.
v1.9.4 is the latest MicroPython release. Documentation for it is here.
3.6.5 is the latest Python release. The latest pre-release version is 3.7.0b5.
The CircuitPython Weekly Newsletter is a CircuitPython community-run newsletter emailed every Tuesday. It highlights the latest CircuitPython related news from around the web including Python and MicroPython developments. To contribute, edit next week’s draft on GitHub and submit a pull request with the changes. Join our Discord or post to the forum for any further questions.