Alot of feedback I recieved from the walkaround had me thinking more about the software side of my project and ways to make things easier for beginners.
After a lot of different ideas taking into account the feedback it seemed important to make things more visual for the user. To accomplish this I am expanding the arduino IDE into something that retains all of its current style/layout/function, but also more visual and beginner friendly benefits.
The main feature is that half the screen is dedicated to the code while the other half is a visual representation of the hardware system.
Hook up hardware modules - when you plug into computer and go into ‘debug’ mode a debug program constantly runs on the arduino to check what ports being used and what modules are there. Real time updates taking parts in and out. Exit debug mode and debug program goes off arduino and replaced by users program again. SEEN BELOW
Click on one of the modules on the visual side and the assciated code to that output terminal is highlighted.
When the software knows what hardware modules are attached, the user can hit 'find projects' and get other project code that uses the same hardware you have. This could be done by an online database that can be updated and added to. This can leave potential to allow users upload there own projects to this database to share.
With build mode you can simulate hardware modules even if you dont have the actual module. You can drag them into your scene and connect them to terminals. This way users can make crazy stuff and simulate it before moving to hardware.
On the hardware side of things there is lots I have been working on. Now since this software recognizes if and what module is attached, it needs a way to identify the unique module. To accomplish this I am using 555 timers on the circuit board inside the module to create a HIGH LOW pulse. Each type of module will pulse at a different rate using different resistances. This pulse is read by the software and can be attributed to specific modules.
How this will be done is through a seperate circuit than that of the LED for example. Since I am using telephone cables as connectors, this allows me to utilize up to 8 different wires within the cable. This seperate circuit will run the 555 timer and send its information to the arduino pin BESIDE the one running the LED module. So hooking up and programming a module for the 5 pin on the arduino will mean that the 555 timer circuit will relay into pin 4. The idea is seen below.
When I design the circuit board and enclosure that hooks into the arduino itself, you wont be aware that the module is using 2 arduino pins. I was planning to not use all 14 digital pins anyways because of size / unessesary complexity.
On the CAD side of things, I have made the LED module taking into account connector and circuitboard size.