Inchworm Robot
I initially made this robot as a class project that satisfied the requirements to make something move 7 feet in a minute without using wheels or anything wheel-adjacent. After bringing it back home, I made further improvements to produce the finished robot that I'll walk you through creating, without any of the trial and error I experienced. There is an optional wireless remote control that can be made, and it'll be clear what steps and parts are optional for the creation of the wireless remote.
Sorry about making you download the video! Watch it though, as it'll help you understand the mechanics of the robot as you're assembling it.
Downloads
Supplies
Inchworm Parts:
Arduino Nano x1
Mini breadboard x1
9v battery (and pigtail connector) x1
Micro servos x3
Light-weight foam material or a 3d printer to make the body
Grippy substance to add friction (I used weatherseal but even things like cabinet stoppers would work)
Wax paper (may not be necessary in all cases, but it aids the sliding motion by decreasing friction)
Zipties x3 (depending on length - doubling up may be necessary)
Lots of wires
Remote Parts:
Arduino Nano x1
Arduino joystick x1
Mini breadboard x1
9v battery (and pigtail connector) x1
More wires!
Make the Body Parts
If you're using foam, just try to cut out the parts as closely as you can, but it doesn't need to be perfect as you can always cut off more if there's conflicting movement. Don't worry about cutting out any of the hollows, just make the main shape.
For 3d printing, the STL files are linked below. BodySegment2 is hollowed out, so when assembling make sure the hollow faces downward.
Assemble the Parts
Screw the double horn attachment on all the servos to fit the shape in each 3d printed attachment and then screw the servo horns in the designated holes on the parts. There should be thru holes where the servo horns are meant to go so the horns can be secured from the outside of the part, but the holes are small so they may need to be enlarged with an awl or drill bit.
On the feet, position the servos on the blocks and line up all parts approximately in the middle of each gap. Then drill holes through the feet and ziptie the servos to the feet. Do the same with the middle servo. If you're using foam, just use tape to secure the servos. It'll work in a rough-prototype way.
Put your grippy substance on the outsides of the feet to increase friction, and on the insides tape wax paper to decrease friction.
Wiring and Coding
Attach the front servo (furthest from electronics) to pin D4, middle servo to D5, and back servo to D3. Connect all the grounds and 5v, then connect the 9v battery ground pigtail to a ground pin and the power part to the VIN. This should give the Arduino Nano power.
Both remote and non-remote code files are attached below. Make sure you have the right code before uploading.
OPTIONAL Remote Creation
Connect the joystick to the remote's arduino. 5v and ground go to the respective arduino pins. Y-axis goes to A7, X-axis goes to A5, and the button (SW pin) goes to D6. The 9v battery connects as described above on the inchworm robot.
Using the attached diagram of the tranceiver, wire both tranceivers to both arduinos with these pins:
Ground - Ground
3v VCC - 3v VCC
CE - D10
SCK - D13
MISO - D12
CSN - D9
MOSI - D11
IRQ - Not connected
Wire both tranceivers to both arduinos in this exact way. Then upload code and test!
Tips to Work
It works the best on a smooth surface like hardwood floors or linoleum. After being used on dirty floors, the grippy parts may lose traction, but this can be easily fixed by cleaning the grips with some rubbing alcohol. Please leave any questions in the comments, and I'll try my best to get back to you!