Previous posts

Post 1 - Introduction

Post 2 - Installing OpenCV - Prerequisites

Post 3 - Installing OpenCV

Post 4 - Installing Pygaze

Post 5 - Installing eye tracker

Post 6 - SPI communication

Post 7 - SPI communication in Python

EyePrints - Post 8 - Getting started with Kinetis

EyePrints - Post 9 - Mechanical design

EyePrints - Post 10 - Mechanical design: the plotter

EyePrints - Post 11 - Eye tracker software

EyePrints - Post 12 - Getting started with the kit

EyePrints - Post 13 - KDS Project

EyePrints - Post 14 - The drawing board

 

In this post, I will show some pictures and video of the plotter

The plotter has a servo that can lift the pencil when the painter wants to move to another area without drawing anything on the board

 

The servo is controlled by a small Python script

 

import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
GPIO.setup(11,GPIO.OUT)
pwm=GPIO.PWM(11,50)

To put down the pencil, the start method of the pwm object is invoked

pwm.start(7)
pwm.start(0)

To lift the pencil up, the start method of the pwm object is invoked with different values

pwm.start(5.5)
pwm.start(0)

Both values (7 and 5.5) has been determined empirically. The second invokation of the start method (pwm.start(0)) is required to "stop" the servo. The PWM signal generated by the Rapsberry Pi is not very stable, so the servo keeps on correcting its position. The pwm.start(0) function prevents the servo from moving continuously around its final position

 

IMG_20160617_171549.jpg

Here is the plotter with the pen in the "up" position

IMG_20160617_170353.jpg

 

And here is the pen in "down" position

IMG_20160617_170225.jpg

 

Finally, here is a video of the plotter in action