Received some additional information from Derrick on the Sketching bot... (edited for length):
What I am attempting to do with this robot is to have it create dense pen drawings and use the light sensor to have the robot respond to the densities by choosing to switch to a different task in the program once the pen density reaches a desired point.
I had used previously to the NXT robot a RCX 2.0 kit to achieve a similar result with much success. When I designed the RCX I had used the ball point pen as the caster on the robot. The problem with this was that the pen always needed to be on the surface on the paper, so when the robot was doing an arbitrary task like backing up from the edge of the paper it was always marking.
I am using NXT as an opportunity to utilize the third motor as a means to pick up and put down the pen. This means that when the robot is executing an arbitrary task (i.e. moving back
to the center of the paper) it will not be marking on the page.
I have the light sensor on the front of the NXT to detect the black tape that I have
put around the edge of the paper so the NXT knows when it has gotten to the edge of the paper. The pen is secured to the extra motor in the center of the robot.
So far the most successful program I have created has 2 independent tasks running. The main task is the process of the robot drawing. What I have started to do to keep things from
getting to repetitive is by setting up a switch block in the task that has a couple of different "sketching" programs and the robot has a random block choosing between the two programs. The other program is waiting for the trigger of the black tape so the robot can back up
and turn around.
One of the initial problems I had was how to tell the NXT to pick up the pen when it found the black line, but not to pick it up if the pen already happened to be up. I ended up setting up a
logic variable for this. So when the NXT found the black tape at the edge of the paper it would check to see if the pen was already up or not. If it was then it would just back up and turn around. If it wasn't then it would pick up the pen before executing the back up and turn around command.
I am struggling with some of the quirks in the NXT-G programming like how to tell the NXT to immediately stop the present program when it finds the black line.
The drawings I have achieved so far with the RCX and the NXT project have obviously very non-representation and fairly geometric, but that is what I have really been going for.
Being an artist who primarily works with drawing media I find it to be a significant challenge to take the pen out of my hand and to make my interaction with the art making primarily about designing and programming the robot. I hope to eventually get program to a complexity where the NXT will have to make a lot of it's own decisions (albeit a bit randomly) on how it
will uniquely approach each drawing, but that is still a ways off!