Click here to Skip to main content
15,884,388 members
Please Sign up or sign in to vote.
1.00/5 (2 votes)
To start I am still very new to this field, I took my first real classes for programming and became hooked. I really am brand new to the programming world though, so please excuse my ignorance at this time. I am using this as my dive point into what I hope is a wonderful life choice and passion.

The question I am asking is I had stumbled across a few continuous drawing systems. Falling water, temporary magnetized sand/putty, movement of a pen or ball through sand, etc. and it made me think, how awesome would it be to design a moving piece of art like this.

Thus I broke it down to a few key areas and will work to advance my knowledge enough in each area until this project is a possibility. So I am now reaching out for guidance from those who actually know what is needed to accomplish this project. Please all advice is welcome and appreciated!
1. Developing an understanding of a programming language capable of manipulation of a motorized system, designed for continuous motion.
a. Currently I hold a very low level understanding of C++ and HTML.
2. Determine the best resources capable of implementing said system.
a. Central processing unit of some kind such as a Raspberry Pi to direct the system.
b. Motor system/connecting system: Use of a gear assembly, pulley system, articulating arms/circles, or even magnets maybe?
c. Substance used for the design? I.E. water, sand, metallic goo/putty etc. For this I am thinking sand is the most viable option of low cost and more reuse option.

Once again thank you all for any and all advice and I look forward to speaking with whoever is willing to help!

-James

What I have tried:

With this being my step one I have not tired anything I am just trying to get a plan together.
Posted
Updated 2-May-17 9:24am

I had a huge explanation that I just scrapped.
To put it short: You're taking on too much too quickly.

This is a great subject for Electronics ( a field where you create circuitry with custom inputs and outputs) but very complex for applying to a set board.

The *pi is a great tool for joining the electronics and programming sides of the equation, but the learning curve may be so steep as to be vertical.

I suggest you "mock up" the program without the *pi or external "Rube Goldberg" (RB) you had in mind. You can try this by imagining an 8 bit (1 byte) output (just to keep things simple for now). output a 1 the first bit to give a signal to part A of your RB, output 1 in the second bit for part B. If your RB requires feedback then take in a byte with the appropriate bit set to 1.

This can be turned into an int using the following pattern:

00000000 = 0 no signal
00000001 = 1 (as an int)
10000000 = 128 (as an int)
10000001 = 129 (as an int) which is two signals

If you get this down, then you can program external input and output switches.

and this was my shorter answer o_0
 
Share this answer
 
Completely agree that this is reaching very far and don’t expect to reach this for some time. My goal is to just begin working towards being able to do this. And thank you for your time and willingness to help a newbie!

That being said thank you I will begin working on this in what I know of C++ and when I am able to do this I will post an update for sure with what I was able to do. For this though would you suggest C++ for this kind of application?

Lastly this was simply a project that sparked my interest, however if you have any suggestions for an alternative end goal project I am more than open to suggestions?
 
Share this answer
 
Comments
Rick York 2-May-17 15:49pm    
If I were you I would start with something very simple and straight-forward and then I would work my way up to gradually harder types of things. For example, read a digital input and then set a digital output based on some logic. Then you might want to add an analog input. Then possibly add an analog output. Continue with this progression until you can read the various types of inputs that you want to and drive the types of outputs that you want to. Then you will be ready to tackle the project that is your goal. I think it is important to take small, gradual steps that are possible for you to complete with minimal risk. The goal is to continue progressing in manageable increments so that you maintain motivation. It is very easy to shoot too high and miss and then lose motivation and you should try to avoid that.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900