Bluetooth enabled drawing robot

Error message

  • Deprecated function: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in _drutex_create_regex() (line 363 of /home/davemr/mo-seph.com/sites/all/modules/drutex/drutex.module).
  • Notice: Use of undefined constant filter - assumed 'filter' in preg_replace() (line 1 of /home/davemr/mo-seph.com/sites/all/modules/drutex/drutex.module(363) : regexp code).
  • Deprecated function: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in _filter_drutex_process() (line 315 of /home/davemr/mo-seph.com/sites/all/modules/drutex/drutex.module).
  • Deprecated function: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in _drutex_create_regex() (line 363 of /home/davemr/mo-seph.com/sites/all/modules/drutex/drutex.module).
  • Notice: Use of undefined constant filter - assumed 'filter' in preg_replace() (line 1 of /home/davemr/mo-seph.com/sites/all/modules/drutex/drutex.module(363) : regexp code).
  • Deprecated function: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in _filter_drutex_process() (line 315 of /home/davemr/mo-seph.com/sites/all/modules/drutex/drutex.module).
  • Deprecated function: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in _drutex_create_regex() (line 363 of /home/davemr/mo-seph.com/sites/all/modules/drutex/drutex.module).
  • Notice: Use of undefined constant filter - assumed 'filter' in preg_replace() (line 1 of /home/davemr/mo-seph.com/sites/all/modules/drutex/drutex.module(363) : regexp code).
  • Deprecated function: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in _filter_drutex_process() (line 315 of /home/davemr/mo-seph.com/sites/all/modules/drutex/drutex.module).
  • Deprecated function: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in _drutex_create_regex() (line 363 of /home/davemr/mo-seph.com/sites/all/modules/drutex/drutex.module).
  • Notice: Use of undefined constant filter - assumed 'filter' in preg_replace() (line 1 of /home/davemr/mo-seph.com/sites/all/modules/drutex/drutex.module(363) : regexp code).
  • Deprecated function: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in _filter_drutex_process() (line 315 of /home/davemr/mo-seph.com/sites/all/modules/drutex/drutex.module).
  • Deprecated function: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in _drutex_create_regex() (line 363 of /home/davemr/mo-seph.com/sites/all/modules/drutex/drutex.module).
  • Notice: Use of undefined constant filter - assumed 'filter' in preg_replace() (line 1 of /home/davemr/mo-seph.com/sites/all/modules/drutex/drutex.module(363) : regexp code).
  • Deprecated function: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in _filter_drutex_process() (line 315 of /home/davemr/mo-seph.com/sites/all/modules/drutex/drutex.module).
  • Deprecated function: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in _drutex_create_regex() (line 363 of /home/davemr/mo-seph.com/sites/all/modules/drutex/drutex.module).
  • Notice: Use of undefined constant filter - assumed 'filter' in preg_replace() (line 1 of /home/davemr/mo-seph.com/sites/all/modules/drutex/drutex.module(363) : regexp code).
  • Deprecated function: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in _filter_drutex_process() (line 315 of /home/davemr/mo-seph.com/sites/all/modules/drutex/drutex.module).
  • Deprecated function: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in _drutex_create_regex() (line 363 of /home/davemr/mo-seph.com/sites/all/modules/drutex/drutex.module).
  • Notice: Use of undefined constant filter - assumed 'filter' in preg_replace() (line 1 of /home/davemr/mo-seph.com/sites/all/modules/drutex/drutex.module(363) : regexp code).
  • Deprecated function: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in _filter_drutex_process() (line 315 of /home/davemr/mo-seph.com/sites/all/modules/drutex/drutex.module).
  • Deprecated function: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in _drutex_create_regex() (line 363 of /home/davemr/mo-seph.com/sites/all/modules/drutex/drutex.module).
  • Deprecated function: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in _drutex_unhide_all() (line 479 of /home/davemr/mo-seph.com/sites/all/modules/drutex/drutex.module).
  • Notice: Undefined index: title in theme_img_assist_inline() (line 1729 of /home/davemr/mo-seph.com/sites/all/modules/img_assist/img_assist.module).
  • Notice: Undefined index: title in theme_img_assist_inline() (line 1732 of /home/davemr/mo-seph.com/sites/all/modules/img_assist/img_assist.module).
  • Notice: Undefined index: title in theme_img_assist_inline() (line 1729 of /home/davemr/mo-seph.com/sites/all/modules/img_assist/img_assist.module).
  • Notice: Undefined index: title in theme_img_assist_inline() (line 1732 of /home/davemr/mo-seph.com/sites/all/modules/img_assist/img_assist.module).
  • Notice: Undefined index: en in drutex_node_view() (line 81 of /home/davemr/mo-seph.com/sites/all/modules/drutex/drutex.module).

Just got a bluetooth enabled drawing robot working. It's based on Sandy Noble's [http://code.google.com/p/polargraph/wiki/Introduction Polargraph] and code+circuits from [http://www.mattvenn.net Matt Venn]. It uses a pair of stepper motors to wind a pen carrying gondola across a sheet of paper.

At the moment, I can control it from anywhere in my flat, it makes beautifully wiggly lines:

Polar drawing bot wiggly lines

Matt is using his as an [http://www.mattvenn.net/2011/09/19/polargraph-energy-monitoring/ energy monitor]; I'm not sure what mine is going to do yet.

The basic code is on Matt's GitHub [https://github.com/mattvenn/arduinosketchbook/tree/master/energyplotterPolar here] and the circuit layouts are
[https://github.com/mattvenn/eagle-circuit-designs/tree/master/energy%20plotter here]

(I'll post my modifications once I've tidied it up a bit)

The circuit is an AVR board, with a chip to drive the steppers and some cunning power supply work. For the bluetooth, I"m using a Roving Networks RN41 module, which gives a serial over bluetooth link. Please excuse the slightly dodgy soldering!

Quick pinout:
* 29 -> GND
* 11 -> +3.3V (using a regulator down from the 5V supply to the AVR
* 14 (UART TX) -> IO 3, via a 10k resistor (as suggested [http://jarkman.co.uk/catalog/robots/sketchy.htm here]
* 13 (UART RX) -> IO 2, via a 2:3 volatage divider to turn 5V into 3.3v
* 21 -> GND via an LED to show status
* 4 -> +3.3V to force 9600 baud rate (it talks to the AVR using a software serial link, which doesn't like working at 115200)