Drawing Bot







A Brief Description

Required Equipments

How it works?

Block Diagram

Algorithm

Detailed Pin Diagram

Problems Faced

Group Members Information

Course Teacher

Project Video






A Brief Description



In this project we have designed an embedded system which can draw an image identical to the one given as input. The input is just an two dimensional array indicating pixel matrix for that image. We used bluetooth communication to get this two dimensional array from another device which can sense the image and process the matrix and send it to our device via bluetooth.
After receiving whole matrix, our device starts drawing that image. The devie has two controllable wheel aided with stepper motor which can move the device in any direction in 2d surface. It draws the image with a pen aided with a servo motor to move it up & down.






Required Equipments







How it works?



In this project we use Arduino uno microcontroller. The current design is an device , which will wait for an image, in the form of a matrix(pixel of image) from another device for drawing. For doing so an Arduino UNO microcontroller is interfaced to an HC-05 bluetooth module. At first, we consider that the image is 2 dimensional. We designed it to receive data of 1 Byte at a time through serial communication. In Arduino, integer size = 2 Bytes. So we put the first byte(size is 1 Byte) in lower 8 bits & the second one in upper 8. Thus we form an integer from 2 consecutive bytes each. Then we put this integer in a 2 dimensional array in such a way that the integer put at an index of that array indicates bitmap of a specific region. For example, if the array is named B, B[0][2]=1 means 0000 0000 0000 0001 is the bitmap of region (0,32) to (0,47) of the image.
After completion of receiving signals & constructing array for all regions of the image, our device goes to a region & put down its pen at a pixel if any dot is found there. If the next pixel is also found with dot, it keeps its pen down, otherwise puts it up. It covers all regions like this one by one. To reduce time spent for moving, we always select adjacent uncovered regions as next to draw, for example, if device finishes any column, it goes to the last row of next column.






Block Diagram




                                                                       pin diagram

                                                                                                                                               fig.1 Block Diagram






Algorithm




       1.Start
              2.All pins of arduino UNO are set up & servo is attached
              3.Bluetooth module is on
                     4.Arduino waits for a serial communication
                            5.If receives a signal
                                   6.If recieved data bytes are greater than 2
                                          7.Take the first byte and multiplying seond byte by 256 to make an integer and entry in matrix in specefic index
                                   8.If any pixel is unknown go to (5)
                                   9.Else go to (10)
                     10.Go to an pixel on matrix
                            11.if a dot is found on a pixel
                                   12.If the pen is upn
                                          13.put the pen down on that pixel
                                   14.If the next pixel is not dot
                                          15.put the pen up
                                   16.If all pixels is not covered
                                          17.go to (10)
                                   18.Else go to (4)
       19.End






Detailed Pin Diagram




                                                                       pin diagram

                                                                                                                             fig.2 Pin Diagram




Problems Faced


  1. The most diffiult problem we had to solve is to manage the data received through the GPS receiver. It receives a lot of data in a very short interval and it was difficult to sort out only the necessary attributes in a very short time.

  2. We needed to place the pen exactly middle between two wheel. We faced a lot of problem to drill the board to place the pen exactly between two wheel.

  3. As the wheel are made of Nylon, Nylon can't properly grip on paper. So we had to use grip.

  4. We faced a lot of problem to process the big matrix on the arduino uno as it's ram is only 2 kb.






Group Members Information


Section A2: Group 3






Course Teachers


  1. Mohammad Saifur Rahman

  2. Md. Aashikur Rahman Azim

  3. Md. Iftekharul Islam Sakib






Project Video





Back to top