Build Your Own Arcade Controls Forum
Main => Software Forum => Topic started by: Kevin Mullins on July 25, 2007, 07:36:24 pm
-
Does anyone know enough about programming to figure out how to make a three digit numerical LED display correspond to keypad presses? (only numeric btw)
It's really going to need two aspects in the end..... so that was just the beginning.
The second thing I'd want it to do is show a "currently" selected number when no numbers are being pressed.
This will be working in conjunction with some jukebox software. Possibly Wincab/DOSCab.
Basically the original juke used to display the "currently" palying song constantly....
until someone would go to "select" a song, it would then display the numbers that were being pushed for a brief period and then go back to displaying the "currently" playing song.
I've read a little about controlling this sort of thing through a serial port, but honestly I have no clue when it comes to the programming side of things. The hardware stuff I could probably figure out. I even have a few microcontrollers to possibly use for this if needed, the current display has no circuitry on it at all...... just the 7 segment LED digits.
Does this make any sense?
Anyone care? :laugh2:
-
I think that a microcontroller is the easiest/best/cheapest way to do this. You could do it with discrete logic, but it would be more work/more complex. There may be something out there, but I doubt that you can find a prepackaged module that will do what you want.
You may be able to find a prepackaged module that accepts serial commands, but you'll need something to send those commands (either PC or microcontroller). You didn't specify just what this is doing, how the buttons interface, if a PC is being used, etc...
Rick
-
This will be working in conjunction with some jukebox software. Possibly Wincab/DOSCab.
I think that a microcontroller is the easiest/best/cheapest way to do this.
You may be able to find a prepackaged module that accepts serial commands, but you'll need something to send those commands (either PC or microcontroller). You didn't specify just what this is doing, how the buttons interface, if a PC is being used, etc...
I've pulled a few micrcontrollers from other displays and am hoping to find some sort of serial port programming that will work with them through the pc along with/in conjunction with the jukebox software. I'm just not software/programming swavvy enough to start from scratch on my own.
-
I think that you're going to need a premade module then that accepts commands via a RS-232 serial interface (which has a microcontroller running the show).
Googling "serial LED module" will lead you to these. For instance, the first on the list is - http://www.siliconcraft.net/ (http://www.siliconcraft.net/). These will need the PC to send them data in their format, so some PC software will be needed if your juke software doesn't specifically support them...
Rick
-
This might be silly overkill, but an LED-Wiz can control up to 4 7-segment displays with a few outputs left over for other things.
The displays would need to be CA (Common Anode) and have discrete connection for the grounds on each segment. If that's what you have, you would just need to wire each segment to an output (through an appropriate resistor) and write a simple VB program to manipulate them any way you want. You could also incorporate any fading or animation effects to spice things up a bit.
But the hitch will most likely be getting the information you want from the Jukebox software. Unless it already has some mechanism in place to provide that info to outside code, it won't matter what you try to do with the hardware. It probably won't work. :(
RandyT
-
This is probably one of those things that I'll have to do much more research and experimenting before I even figure out which way to go with it.
I think getting the display to function as a simple keypress indicator shouldn't be too difficult.
Basically picture yourself pushing numbers on a calculator, press a number and it shows up. For a total of a three digit number.
Then make it disappear shortly there after.
This could be controlled from a VB script type program that just recognizes which number key is being pressed and display the appropriate number and would not have to work from the jukebox software at all.
I'll have to check out the LED-Wiz and it's options from you.
This display only has 3 7-segment displays, so it would certainly handle it.
I've never worked with one of them yet.
I am using the Key-Wiz though to interface the original numeric keypad. ;)
Now the second part of it would definitly have to have a command coming from the jukebox software in some manner to display the "currently" playing song and such. Not sure how to figure that part out without help from the jukebox software author.
I'll try to get a chance to pull the original display from the jukebox and take some pics to show how it's setup. Not that many wires if I remember correctly.
This part of the project may go on the backburner until I can devote more time directly to it.
-
I think getting the display to function as a simple keypress indicator shouldn't be too difficult.
Basically picture yourself pushing numbers on a calculator, press a number and it shows up. For a total of a three digit number.
Then make it disappear shortly there after.
This could be controlled from a VB script type program that just recognizes which number key is being pressed and display the appropriate number and would not have to work from the jukebox software at all.
In regards to not having to work with the jukebox software, yes. Difficult? Maybe. If you want the jukebox program to be running at the same time as this VB utility, the program you write will need to hook the keyboard (ala keyloggers) to get the input and then allow it to continue on to the jukebox software. It can be done, but it might be a little tricky.
Now the second part of it would definitly have to have a command coming from the jukebox software in some manner to display the "currently" playing song and such. Not sure how to figure that part out without help from the jukebox software author.
I'll try to get a chance to pull the original display from the jukebox and take some pics to show how it's setup. Not that many wires if I remember correctly.
This part of the project may go on the backburner until I can devote more time directly to it.
See if the author will add a non-visible window (form) to his application with something like "Last Keypress=<key> Now-Playing=<SongNumber)" set as the caption of that window. You might have to work out some kind of "clear" display code as well so things stay in sync with what the program is doing, but you'll need to examine how the jukebox software accepts user input to decide on an approach for that one.
It's quite easy to monitor window titles from a concurrently running application, so if they could accommodate this pretty simple code addition in their software, you'd have the tools you needed to get it done.
RandyT
-
While I don't fully understand this, perhaps Mamehooker could be used to help you with this. I was checking it out some, and it has the ability to send serial data out the com port. If you were to use one of those modules that I linked to, connected it to the serial (com) port, then use mamehooker to send/pass data to it, the only thing left would be to get the juke software to output data that the mamehooker can intercept/read/send. I wonder if the window/form info that Randy was referring to is the same as what mame uses that mamehooker intercepts? (the comms between mame and mamehooker are what I don't understand)
Since you need the jukesoftware to make changes to output data, perhaps trying to get them to use the method that mamehooker can read would be best. Then you can outline to the juke programmer that if he were to do this, that one could use mamehooker and a serial module and then his software would support a LED display of the song number like a real jukebox. I'd bet that a juke software designer would find that ability cool and worth their time. Especially since the mamehooker software is freely available, and the serial module is a plug and play solution.
Rick
-
I was checking it out some, and it has the ability to send serial data out the com port.
That is definitly one of the most common options I have found for running this kind of display. I did a bit of research on some of the chips that I have on similar displays and they all seemed to accept a serial comm type signal. So I'm thinking that's the route to go. Especially if I can use stuff that I already have laying around, kinda fits the BYOAC code. ;)
I'd bet that a juke software designer would find that ability cool and worth their time.
They were very interested at one time, but then both them and I took a short hiatus on the subject. So hopefully I can convince them to look into it some more with me.
Will certainly take a look at the mamehooker software and see what all I can fanagle with it. This is all new to me, like I said.... I'm good with the hardware, but the software thing I have to piece together bit by bit. :P
I appreciate all the inputs thus far for sure. :cheers:
-
Forgive me for not reading every post in this thread. But I will reply to the original question.
I think Randy mentioned that you will need the Jukebox software to output the information, rather than write software yourself. So contacting the author is probably the best way to go.
Check out LCDSmartie (http://lcdsmartie.sourceforge.net/) which is a free open source software to communiate to LCD devices.
I'm not sure if it works with LED displays though. I have example source code in VB6 together with the CommIO.dll used in Mamehooker than you can interface with directly. Or you can of course use Mamehooker, but you still need to find out the protocol used to communicate with the device via comm port. You will have to look up your device on the Net to find such documents or contact the manufacturer.
I've written software to communicate to several different types of LED and LCD devices and they all have their own methods of communication. All of them use the comm port (even USB style interfaced use virtual comm ports) to communicate.
-
You will have to look up your device on the Net to find such documents or contact the manufacturer.
When you use the term "device" I'm assuming you mean like the micrcontroller and such to run the display right?
The display currently has NO electronics whatsoever..... so the controller will be of my choice and that circuitry will have to be built also. I hava few I still need to check out and see if they are useable for this purpose.
I'll definitly check out the LCDSmartie software..... thanks. My understanding is most LCD displays work "similar" to an segmented LED display....just a much lower voltage. So maybe it can be tweaked to do what I need.
(I really do wish I was a tad sharper on the programming stuff myself) :P
-
You are going to need a few separate things to get this to work.
First is the juke software. It is either going to have to send commands out of the PC to your display, or send commands to a helper program.
Second (if needed) is a helper program (perhaps mamehooker). If the juke software will send out of the PC to the display, you won't need the helper program
Third is an interface from your PC to the display.
Fourth is the display's controller.
Fifth is the display itself.
----------------------------
If you use one of the modules (intelligent display) like I linked to earlier, then #4 and #5 would be all in that module. The interface would be a serial cable from your PC's com port to the module. If the juke software can send data out the com port to the display in the format that the display requires, then the helper program is not needed. If the juke software cannot/does not send data out the com port in a format that the module requires, then the juke software will need to send data to a helper program that can interpet the data from the juke software and send the necessary commands out the com port in the format that the module requires.
-----------------------------------
If you want to use a dumb display (which it seems like you are leaning towards), then you need to add some kind of display driver. This can be either a microcontroller/microprocessor or some other kind of logic and driver ICs.
If you use discrete logic, then perhaps you could design a circuit that can interface the printer port. You'd need then to have some latches, and decoders to drive the display. Maybe a 4511 on each digit, etc. The drawback with this design is the reliance on the printer port. Most new PC's don't come with one, so most likely a juke software programmer would be reluctant to add a feature that relies on that. The juke program will also need to directly support your circuitry.
If you want to use a µC, then the software will have to be able to control your display (match electrical specs), and interpet commands somehow. However it receives data, the juke software or the helper program will have to send data in that format. This is preferred, as you don't have to rely on the printer port. This method will allow the greatest flexibility as any interface to the PC can be used. It sounds like this is what you are looking for. There may be a "LED interface board" that will accept data and interface to a dumb display, but I don't know of one (but I've never looked). People/companys that make something like that usually put the LEDs on the board and sell it as a full module...
-----------------------------------------
IMO, using an all in one serial module is your best chance to get the juke programmer to help you out. If you design a one off circuit, then all his work will only benefit you. I think that you may have better luck in getting his support if he knows that his work will benefit others/lots. Most likely, if he spends lots of his time on something, he'd like to be able to add to his feature list. Not that it's impossible that he'd help you out with just your situation, but your chances are better is all I'm saying. If you are willing to do most of the debugging/beta testing that may help you, too. Even more so if you do all the helper program setup/config work.
Good luck - cool project!
Rick
-
That Silicon Craft module looks interesting... I could probably work with that. I have an LED-Wiz (still sitting in the box), I could try to figure out how to talk to that from C...
I need to get my pending changes tested and released, then I can look at driving external displays. I have a couple of four-line LCD's to play with and an LED Wiz, and I may be able to get one of those 7 segment controllers when I get paid again, it's only $25.
--Chris
-
Just wanted to throw this out there...... I was digging around for those other displays that I have been gathering up for the microcontroller type information , of course now that I'm looking for them I can only find one.
But anyways, here's the one chip that I'm looking at right now and is kinda the idea of what I had in mind of using. But will try to dig up the others later to see what similarities they have.
MM5450N (http://www.alldatasheet.co.kr/datasheet-pdf/pdf_kor/9255/NSC/MM5450N.html)
Which might also work very similarly to some of the modules posted about earlier. http://www.siliconcraft.net/products.htm#SC1602MBS (http://www.siliconcraft.net/products.htm#SC1602MBS)
Anyone check out their software download section, may be something of use there. ???
http://www.siliconcraft.net/download.htm (http://www.siliconcraft.net/download.htm)
Food for thought..... as I'm still trying to understand it completely.
I had been kinda looking into the conroller chips themselves to see if there was a common ground approach that would be more useful in multiple applications. (trying to avoid the "one-off" project)
EDIT: Just found something else of interest to poke around with.
http://www.apogeekits.com/led_display_digits.htm (http://www.apogeekits.com/led_display_digits.htm)
-
The MM5450N that you linked to would still need a microcontroller to drive it. It has a serial data input port, but it's not RS-232. It a synchronous serial input, meaning that it needs a clock signal to time/latch the serial data into it, while RS-232 is asynchronous, without that clock.
Rick