My project is an electronic Art App controlled by Arduino Uno.
The app connects to Arduino port. goes full screen, and starts drawing abstract geometrical figures based on parameters it reads from the Arduino. The user can can control what the app is drawing using potentiometers, switches, and a push button. Everything can be controlled by Arduino, there is no need for keyboard and mouse (after connecting to Arduino port). App can be used for meditation, or just to relax. Drawings can be saved in real time using push button.
Push button 1 – clears app screen
Push button 2 - save the screenshot of the drawing
Switch 1 – Start/Stops drawing
Switch 2 – controls line type. Line type can be an Arc (Bezier curve) or a straight line
Potentiometer 1 – controls line width
Potentiometer 2 – controls an angle for a drawing
Potentiomenter 3 - controls drawing speed
The app itself is written in C#.NET. To communicate between .NET and Arduino I used open source Sharer library, it is awesome and it can be found here:
https://github.com/Rufus31415/Sharer
Fun fact: When testing the board I ran into a problem that all analogRead() functions returned incorrect values. I could not figure out why, it was driving me crazy. I was sure that I fried both of my Arduinos somehow. But finally I figured out that connections on my $1 breadboard were not wired properly. I changed the breadboard and everything started working right away.
Schematics (updated):
Demo video: (can also be found on YouTube: https://youtu.be/DOUr6JplXHg )
Additional demo video for using save screenshots and changing drawing speed
Couple of screenshots:
and
and
This is how the board looks like:
Arduino code, and NET main module with math and Arduino communication code will be attached soon.
Update: Code on Github: https://github.com/ilvyanyatka/ElectronicArtWithArduino
Before I added "Save screenshot" functionality, the code was cross platform. Now .NET code is Windows specific. To make it cross platform again one need to remove all the functionality related to "Select Windows Dialog" and "Take Screenshot". I am planning to come back to it later.
Top Comments