PHYS S-12 -- Joshua Varon's Final Project


About


Home



Final Project Video


Fig 1. Final Project Video

Acknowledgements

I'd like to thank Professor Melenbrink for his advice and mentorship throughout the entirety of my project. Specifically, his insights with how to use capacitive touch and project integration were both instrumental.

I would also like to thank Kassia for her numerous contributions to my project. Specifically, her help using the vinyl cutter, her ingenuitive solution to cutting copper tape, and her focus with helping me fix circuitry issues.

Similarly, I want to thank Ibrahim for his help in the planning portion of my project. Ibrahim helped me turn my vision into a concrete plan, as well as offering insights into how I can achieve the more difficult aspects of it.

Additionally, I want to thank Bobby for his mentorship in video editing. I learned a lot about video editing techniques, as well as general filmography, which were both crucial in my project.

Lastly, I want the thank all of the teaching staff for keeping the lab open and available to our class as much as possible. I would not have been able to finish my project without their efforts.

Motivation

In the age of digital learning, some educators are struggling with managing the virtual aspects of their classrooms. Along with this, students are finding it difficult to collaborate with others, losing out on both the educative and social-emotional benefits that come from group work.

I believe that these problems would be greatly aided by a drawing machine that works with chalk. While I will only design a proof of concept, I can imagine a similar idea being used such that students and educators can draw on each other's chalkboards virtually. This will greatly improve their ability to work in groups as we adapt to the new age of education.

Planning

To begin, I have to choose which type of drawing machine I want to make. After looking at these precedents, I decided that I wanted to make a drawing machine that used cords with changing lengths for locomotion. These were some of the sketches Ibrahim and I made:

Basic Sketch
Fig 2. Planning with Ibrahim
Drawing Apparatus Design V1
Fig 3. Drawing Apparatus Design V1

As you can see, this simplified into a fairly simple problem. Using basic trigonometry, I would be able to determine the two string lengths to move the chalk to a certain position (one can think of these lengths as radii of two intersecting circles).

Basic Sketch
Fig 4. Trigonometry Sketch

One idea that changed from these sketches was my input device. While I originally planned on using a gyroscope, I eventually decided to use a capacitive touch matrix.

First Drafts

Lesson 5

In Lesson 5 we learned about 3D design and printing. Anticipating my need for a chalk holder, I designed 3 hollow cylinders with different radii.

Basic Sketch
Fig 5. Hollow Cylinders
Basic Sketch
Fig 6. Radii

After printing these out, I was able to test them and find the right radius for my chalk holder.

I then began designing the final holder. This was how the design evolved.

Basic Sketch
Fig 7. First Design
Drawing Apparatus Design V1
Fig 8. Second and Final Design

Lesson 6

In Lesson 6 we learned about input devices, including capacitive touch. I decided to use a capacitive touch matrix as my input device, and began designing one. This one worked as a rectangular matrix, and after doing some testing, did not work well.

Basic Sketch
Fig 9. Square Matrix

I decided to make a new design using the knowledge I had gained from my first time around. This was the design I came up with.

Basic Sketch
Fig 10. Circular Matrix

As you can see, I have a tx plate on the back of my controller, with many rx pads on the front. Additionally, I have a ring connected to true ground going around the outside to let the device have even more knowledge about where my finger is.

Basic Sketch
Fig 11. Front of Device
Drawing Apparatus Design V1
Fig 12. Back of Device

Lesson 7

While not an official part of my project, I took the week of this lesson to learn how to use stepper motors. This was how I wired them up (using the A4988 stepper motor driver).

Basic Sketch
Fig 13. A4988 Wiring

And this was the code I used to drive it.

As you can see I was able to do microstepping fairly easily. I chose not to use any libraries for this task as well, opting to control steps manually.

Lesson 9

In Lesson 9 I made use of ESP-NOW to communicate via radio between two ESP32s. This allowed me to use one ESP for input and another for output. The input ESP was able to do the calculations to determine string lengths, while the output ESP could drive the stepper motors.

This process is fully documented in Lesson 9.

Project Integration

First, I began working on my output device. I started by designing spools to go on the stepper motors.

Basic Sketch
Fig 14. Final Spool

Next, I used what I did in Lesson 7 to connect and drive two NEMA 17 stepper motors.

After this, I made some rough calculations of what I would need to do to move the chalk holder (Lesson 5) to various coordinates. This can be seen in my drawings.

Here are some videos of tests I did.


Fig 15. First Vertical Test

Fig 16. Smoother Horizontal Test

And here are progressively more advanced drawings that the machine was able to make.

3D render of design
Fig 17. Shaky Line
Drawing Apparatus Design V1
Fig 19. First Polygon
Drawing Apparatus Design V1
Fig 18. First Angle

I would eventually return to this device, but for now I moved on to my input device.

To start, I used my matrix from Lesson 6.

I then wired all of the rx pads to analog pins, the tx pad to a digital pin, and the true ground ring to the ESP's ground.

Once I had this done, I wrote this program to determine which position the chalk should move to when I was touching different parts of the matrix.

Going back to my output device, I now needed to figure out how to mount this above the blackboard.

At first, I tried mouting all of the components to a wooden board.

Basic Sketch
Fig 20. Wooden Board with Holes for Stepper Motor

However, Professor Melenbrink pointed out that it would be significantly more elegant if my device could operate at multiple dimensions. To achieve this effect, I decided to mount the motors to brackets which would be attatched to the blackboard. I first created a design to cut on the Wazer waterjet.

Basic Sketch
Fig 21. Sketch of Bracket Net

Next, I bent the brackets into shape.

Basic Sketch
Fig 22. Machine Used to Bend Stainless Steel

I then attatched the motors and spools to them. This was how the final product looked.

Basic Sketch
Fig 23. Final Motor Unit

I also attatched all my circuitry to a wooden board which was placed behind the chalkboard as well.

Basic Sketch
Fig 24. Circuitry

After wiring my project up, this was my how it all looked.

Basic Sketch
Fig 25. Final Project

I then used code similar to that from Lesson 9. This gave me my final project.

Final Project Summary

Materials

Main Components

Project Fair Picture

Basic Sketch
Fig 26. All Drawings Made During Fair

Files Mentioned in this Document

Spool (.F3D)

Chalk Holder (.F3D)

Capacitive Touch Matrix (.DXF)

Bracket Net (.DXF)

Stepper Driver Code (.INO)

Coordinate Calculation (.INO)

Output Code (.INO)

Input Code (.INO)