6 of 6 people found this helpful
This is quite general, I'm not sure what part you specifically need help with and I can't advise on your entire project. If you mean how to detect presses, then as you mention, buttons (switches) could be used. If you mean to detect variances in how it is pressed, i.e. more analog than a digital on-off value, then the search term is sensors, but bear in mind most will be opaque and won't have a backlight, so you'll have to investigate if that is feasible or to design how to implement that. You could examine existing products too.
If you meant how to have RGB lighting, search for neopixel or WS2812B (combined with arduino) and you should find some ideas.
You mention Arduino but also Python, so I wasn't sure how that ties together since a normal Arduino uses a C-like language, although there is 'circuitpython'. Regarding MIDI, the Arduino documentation explains how to connect that here https://www.arduino.cc/en/tutorial/midi
If you go with circuitpython there may be less tutorials/examples on the Internet, since I guess it may not be as widespread as normal Arduino C-like language.
6 of 6 people found this helpful
Expanding a bit on what Shabaz has outlined... Adafruit has a project which seems similar to what you have described: https://www.adafruit.com/product/1929
It is open source and there are links to native format files for Eagle to create the hardware schematics and PCB. So you could recreate or modify it. Alternatively they sell the parts although they may not currently have all in stock. They supply code which uses Arduino which with a small amount of modification would work with any number of microcontrollers.
I have played around with CircuitPython for making music and suggest using C / Arduino libraries instead. It may be possible to do it with CircuitPython but it does not implement interrupts and as Shabaz says there are less examples of use.
2 of 2 people found this helpful
Hi Shabaz and Frank, thank you for your replies!
In response to Shabaz: The buttons only need to activate the sound/colour of the data points on or off rather than an analog type switch.
We we're planning on using python because some of our group memebers already had limited experience with that language but we're happy to use a C language - is there a massive difference between python and C languages?.
The MIDI tutorial also seems very helpful so we'll be using that for sure!
The next step for us at the moment is converting our data values into a MIDI tone that plays a note that scales according to an increasing or decreasing relative value. Any suggestions on how this can be done would be great
In response to Frank: The adafruit kit seems pretty spot on for what we need, do you know what we need to run it or is it pretty much plug in and play(after building it of course)? Also, are speakers included or is that something else that needs to be added?
As the kit is out of stock at the moment, would the button grid setup something that can be attached to another board? such as an arduino uno?
3 of 3 people found this helpful
There is a fair amount of difference between Python and C / C++ as far as languages go, but Arduino is set up for beginners and isn't hard to learn. In my opinion C with some C++ is better suited to microcontrollers - it is smaller, faster, and with the Arduino IDE and libraries it isn't hard to learn.
I haven't used the Adafruit kit but what they sell is known for being well documented and working. I have not read through their documents so you will need to do that - I think that kit just outputs the MIDI when a button is pressed as configured but I could be wrong. Looking at the picture I don't see an amplifier or speaker. While the kit is not in stock, it looks like they have all the parts listed in the Bill of Materials except for the M4 Feather. The button grid connects over I2C so it shouldn't be a problem connecting it to other boards and according to this link they have Arduino and CircuitPython libraries for it. If I were buying a new board I would probably get one of the newer ATSAM M4 boards for this application and the larger the memory and speed the better if you want to use CircuitPython.
If you get on their forum and ask some of these questions I suspect they will get back to you as long as your questions are about their products.
Thank you very much for you help Frank!
I think we have a good place to properly start now
You are welcome. Make a post if you can and let us know how it goes and if you have a specific question don't hesitate to start a new thread. There are a lot of helpful people here.
Hi again Frank!
With some more digging from your suggestions, we've come up with a item list for what we need and we're hoping to just run it by you to double check it's what were after and there are no glaring compatability issues etc:
This board seems to contain everything we need, in terms of processing both RGB and sound with an audio output. We will expand the rgb/button area to 8x8 with 2 of these RGB drivers. Then 4 of these buttons as the inputs.
At this stage we don't need an enclosure and we will be plugging in a speaker/headphones into the audio jack on the board.
We can't thank you enough for you suggestions!
1 of 1 people found this helpful
The board does look like it does everything and I have used that microcontroller and it is getting good support. I can’t confirm it absolutely because I haven’t used that exact hardware but looks good. Be sure and order the cables for connecting the keypads if you don’t want to solder. It looks like a fun project and good luck...
I'm hoping to use an arduino and some basic code in a group assignment and have zero experience with arduinos and very little coding knowledge.
I'd like to create an 8x8 grid of buttons that contain RGB lightning, and are attached to a speaker of some description to play a tone. The intention is to create a soundpad-esque (like a launchpad) tactile device that enables me to play a tone or series of tones when one of the buttons in the 8x8 grid are pressed. I'd also like to be able to have a colour displayed on the RGB lighting attached to the associated button.
I shall be using python to play a data value as a MIDI tone or series of tones, along with using a different data value to select a colour.
I am looking for hardware advice, as I have very little experience with Ardunio or circuitry in general. I will have access to a vast array of tools and five weeks to become competent enough to create such a project, along with a team of 5-8 people to assist. We are all in a similar boat with experience, however are eager to learn. I have already looked into multiple tutorials and other resources but it appears the options are near endless, so any assistance with recommendations or advice on this build specifically would be greatly appreciated.
Thank you for your time!