I like wireless programming and have been using Wixels pretty extensively. My latest project is called Drawbot which is modeled after the turtle drawbots of the 1980’s. But unlike them it isn’t tethered via a cable to a computer. A Wixel pair lets it draw completely unimpeded, but still get commands from the user’s PC.
This bot made the Hacked Gadgets forum:
Because it uses FORTH is fully remotely programmable. Here’s the bill of materials:
1 small sheet 1/4 Hobby plywood ($3) 2 eBay steppers ($5) 2 Wheels from Propeller Powered ($4) 6 Parallax L mounting brackets ($2) 1 1.25" caster ($1) 10 1" Parallax standoffs ($1) 1 standard Servo ($12) 2 Pololu Wixels for wireless serial ($20) 1 Propeller Platform ($37) 1 Wulfden Robot Control Board ($14) 1 Medium sized breadboard ($4) 2 3 AA battery holders ($6) 1 small piece of brass tubing ($1) 1 paperclip ? 4-40 nuts and bolts
I had the Propeller Platform and Robot Control Board laying around from a dismantled project, so I repurposed them here. A quick start board and a little bit of breadboard work could save a fair bit of the budget. AmForth on a Baby Orangutan would probably work with some porting between Forth dialects. The two hardest parts of the project were cutting and drilling the plywood which took an afternoon, and the FORTH programming which has been several two hour sessions so far.
Here’s my current source code which could use some better comments.
\ Before loading this program load PropForth servo library (change to cog 0, and Nicholas G. Lordi's Robot Control Language \ start the drawbot by initializing the servo library and the robot command language. The 0 GF halts the robot. : start_drawbot sm_start_servos START 0 GF ; \ pen up using servo on pin 0 \ The hex magic number is the servo pulse width determined \ by trial and error : PU 0 h15E0 sm_setpos 500 delms ; \ pen down using servo on pin 0 \ Again, the hex constant was determined experimentally. : PD 0 hCE4 sm_setpos 500 delms ; \ A set of draw moves. \ Move without drawing 2 forward. : SPACE PU 2 GF ; \ Draw a line 4 long : STROKE PD 4 GF ; \ Draw a line 2 long : DASH PD 2 GF ; \ Go down one line and back to the start of the row. : CRLF PU 90 GC 6 GF 90 GC 30 GF 180 GC ; \ Draw a letter H : H 90 GCC STROKE PU 2 GB 90 GC DASH PU 90 GCC 2 GF 180 GCC STROKE PU 90 GCC SPACE ; \ Draw a letter E : E 90 GCC STROKE PU 90 GC PD 3 GF PU 3 GB 90 GC 2 GF 90 GCC DASH PU 2 GB 90 GC 2 GF 90 GCC PD 3 GF SPACE ; \ An L : L 90 GCC STROKE PU 4 GB 90 GC PD 3 GF SPACE ; \ and an O : O 90 GCC STROKE 90 GC 3 GF 90 GC STROKE PU 90 GCC 3 GB PD 3 GF SPACE ; : W 90 GCC STROKE PU 4 GB 45 GC DASH 90 GC DASH 135 GCC STROKE PU 4 GB 90 GC SPACE ; : R 90 GCC STROKE 90 GC DASH 30 GC DASH 60 GC 1 GF 30 GC DASH 60 GC DASH 180 GC DASH 30 GC : D 90 GCC STROKE 90 GC DASH 30 GC DASH 60 GC 1 GF 30 GC DASH 60 GC DASH PU 180 GC SPACE SPACE ; \ Draw the word HELLO : HELLO H E L L O ; \ Draw the word WORLD : WORLD W O R L D ; \ Yes, it's HELLO WORLD in FORTH : HELLO_WORLD HELLO CRLF WORLD ;
Here are two videos of the robot in action: