Now we have a bot that can wander about, bouncing off walls.
That's the head of the snake. Adding a body is a nice craft project. No additional electronics (although I can imagine adding some NeoPixels along the spine) and no additional code (again, unless you add something more to it).
Start by cutting several rectangular pieces of cardboard 10cm x 16cm. Box flaps work well for this. Cut one for each section of body you want.
Next take more pieces of cardboard and cut disks out of it for wheels. Tracing a Circuit Playground Express works well and is a good size. Circles can be tricky to cut out well with a craft knife, but scissors work nicely. Cut 4 disks for each body piece.
Glue pairs of disks together with the corrugations at 90 degrees to each other. This strengthens them as well as alleviating problems from individual disks not being perfectly round.
Take the Circuit Playground Express again and mark 2 pairs of opposite holes. Draw a line connecting opposite pairs to get the center point of the disks. At the center point, put a hole. It should be slightly bigger than the round skewers you are using for axles.
Poke a starting hole with the tip of a craft knife, then enlarge and round it with a knitting needle, Scru tool, or even a golf tee. When poking through cardboard, be extremely careful of your fingers. Even something dull like the Scru tool can hurt if pushed with enough force.
With each rectangular body piece, mark center lines in each dimension, as well as a line along the length of each piece 2cm on each side of the center line. Those last two lines should be 3cm from the long edges. Mark 3cm along the long edge from each corner and draw a line between each pair of corner marks. This will give you a line to cut along to remove the corners. Finally, mark 2.75cm from the center mark on each of the lines 2cm from the long center line. You should end up with something that looks like:
Now we need to trim off the corners and cut slots for the wheels. Make the slots wide enough that your wheel disks have enough room to spin freely.
Cut pieces of bamboo skewers a bit sorter than the width of the body pieces, one per body section. These will be the axles. Slide each one through two wheel disks. Position the wheels in their slots, and hot glue the axles to the body pieces, along the the half-way line. Just be careful not to get any glue where the wheels meet the axle. This will be the underside of the body piece, partly because of how messy hot glue can be, and partly to give a smooth top surface for later decorating.
There are any number of ways to connect the body pieces together. A quick, cheap, and easy way is to use small binder clips and cardboard rivets.
Place a binder clip on the ends of each body piece except the final end. Place one in the middle of the head piece, sliding the existing one to the side. You'll still need that original clip for the back of the bot to slide on.
Flip the handle parts on the underside of the clips so they lie against the body pieces. place the extending clip handles on two body pieces together so that they overlap and slip a rivet through them, securing it with the flat part of the rivet. Do this with front and rear clips of subsequent body pieces to assemble a chain that will be the body of the snake.
What's a CircuitPython controlled snake bot with some Blinka trappings?
Now's where those scissors and gluestick skills pay off. Get some construction paper in appropriate colors, a couple googly eyes, and a glue stick.
Start by cutting pieces of purple construction paper to match the shape of the body pieces, complete with wheel cutouts. Glue those onto the top of the body pieces. Next cut pieces of pink to fit on the edges. Two are needed per body section. They'll be almost 16cm long, a bit less than 3cm wide (just wide enough to reach the wheel cut-out), with a corner cut off each end to match the body piece. Glue one of those on each side of the body pieces. For both of these shapes, making a cardboard template is useful.
Next cut "lollipops" out of some light blue paper, about 3cm long. The round heads will be halfway over the purple/blue line. You'll have to trim the tops off the lollipops where they are against the wheels.
The head can be simpler, a purple cover will do.
Start by cutting a piece of corrugated cardboard the same width as the base piece of the bot head. Start with it quite a bit longer than the head. Measure how high it has to be above the base piece and mark across the cover piece where it needs to be bent to make a front flap. Depending on how you built the bumpers, this will be long enough of a flap to reach something to glue to. If you added the nose/center bumper, the top of that switch ia a good choice. Now you will need to cut partially along that line, only through the top layer and into the corrugations. Cut a couple millimeters to either side of that line as well. The goal is to remove one outside layer and the corrugation layer, while leaving the other outside layer untouched.
This channel will allow you to make a clean 90 degree bend. Fill the channel with hot glue and fold it to 90 degrees. Hold it there while the glue cools. To reinforce it, you can run a heavy bead of hot glue along the inside of the corner.
A gentle bend to have the back of the cover slope down toward the back end of the base piece completes the head cover. [I was fortunate enough to find a piece of Digikey box that was prescored for some reason in exactly the right place.]
Now it simply has to be mounted on the head. Use some zip ties to get wires out of the way as required and glue the cover in place, holding it until the glue cools.
Finish the effect by gluestick-ing an appropriately cut piece of purple paper over the cover and decorate as desired.
It's interesting how fairly complex looking behavior can emerge unplanned from very simple rules. Westworld is probably not far off when they say that human behavior can be codified in ~10,000 lines of code.
Here's our snake bot spontaneously demonstrating that most dog-like of behaviors.