After a quick brainstorming session with Ben, we were able to breakdown the software side of our Lego Photocopier into 6 tasks/ steps. The tasks are:
This is the first action that will occur in every photocopy, the acquisition of the image we want to copy. This will consist of just the USB camera with the Vision Toolkit.
After the acquisition of the image it needs to be scaled back so it can be constructed out of Lego pieces (and all of the 6 or so colours we have access to).
Besides seeing the construction of the image out of Lego pieces, we must decide what other interactions the user may have with the software. This could include preview of what the image may look like on screen, the motion of the arm, or maybe an emergency stop (just in case).
The next step is deciding how our mechanical system will construct the image. It could go from left to right, or from the center out, or from the outside in, and etc.
Now that all the planning is done we must build our image, but we first must know where the bricks are. This will be done by the second camera, to find the location and colour of the bricks. This will then be stored for later use. This could also include the orientation/calibration of our build surface.
Finally we can construct our image, using the motion plan and the location/colour of the bricks.
But before we can begin programming we must think of the structure of our program.