Jump to content

Amusements

  • Posts

    1,842
  • Joined

  • Last visited

  • Days Won

    18

Everything posted by Amusements

  1. Plugged everything in this morning and it all works:) Turn the key switch to the left, and you can insert notes and get change, or turn the key switch to the right and you can get MFME credit (using the arduino Leonardo set up). I spent the rest of the day cabinatising everything. Just got the front panel to finish off tomorrow and this part of my prototype experiment is done. Technically I could also add another double pole key switch and use this as a 3rd Hopper payout (via triac to relay) so long as the coins match the way the JY-142 board is set up. The only downside with this board, is that despite there being 2 hopper outputs, there is only 1 pulse input.
  2. After the successful 3rd Hopper test (using Triac "X" output), which also included the ability to turn tokens in to cash. IE turn a 4.80 Token win, in to 4 pound coins, and leave the 80p in memory - then adding it to the next token payout. It is now time for the original experiment (Note Changer or Machine Credit). All the wiring is finished, and everything is ready to be tested tomorrow. So hopefully, I can turn the key switch anti clockwise, and insert any number of different notes and press the green button for change, or turn the key switch clockwise and get credit on MFME instead (this makes different keypresses using an arduino Leonardo board in MFME depending on the note inserted). Fingers crossed:)
  3. I agree. This was just a sidetrack experiment for turning tokens payouts in to cash. Unfortunately my new ID#2 Pacdrive now seems to be voltageless (still shows up as Pacdrive #2) which means I will continue on my original quest, IE: Notes to credit (works already with Arduino Leonardo), and notes for change which should work with this JY-142 board.
  4. @davep180 @Road Hog Mad Experiment done! So I set up everything as mentioned above, and played JPM SYS5 Fireball, (because it is generous on tokens) and needless to say, it took me 52 bleeding squid to get a 4.80 jackpot! + 1 repeat. Anyway it all works! I have it set up so that it clocks up the token payouts, and you press a button to collect the pounds. It can be changed to pay out instantly in the settings. There is provision for 2 hoppers, so you can set up 2 different Triac payouts in MFME to = 2 different coins. So now we know that using 4 hoppers without an arduino is possible, and converting tokens to Pounds (including memorizing balance) is also possible. I have an arduino Uno in the post for my next experiment.
  5. Unfortunately my last experiment did not work, using Triac->hopper1 & Triac->hopper2 on Pacdrive 1 and Triac-> hopper1 on Pacdrive #2 at the same time. Only one or the other works. However that still leaves the Triac output, which should be able to power a relay, and that could be used by an arduino, to convert it in to spinning the hopper and counting a coin through the opto. (Experiment coming soon) Unexpected find! I have just started experimenting with my JY-142 coin changer board, and found out something that may interest you! You can set it up to take X amount of pulses/switches (Think relay from the token triac output) and pay X amount of coins, and have it keep the balance in memory (shows on a display). In other words you could theoretically set up tokens to payout via triac (#) in Pacdrive settings, and connect the output to a relay, then connect the relay to the pulse/switch input on this board. The board would then wait for 5 token pulses, and payout a pound. For 4.80 it would pay out pound and leave balance for the next payout. I may try this properly later.
  6. I don't see why not. All it does is short out 2 pins on the board.
  7. That diagram looks right. Pin 1,2,3 = +V (+12V o. +24V DC) Pin 4,5,6 = -V (GND) Pin 7 = motor start Pin 8 = (not used) Pin 9 = coin signal Pin 10 = (not used) Ask Stoney if he has the same trouble as you.
  8. Do you have any diagrams of the hopper, and how you have connected everything to the Pacdrive and Ipac?
  9. The first ones you mention pay out 20p tokens, 10ps, 20ps and pound coins, so you can only choose pound coins, and multiples of 10p on your set up. Another option is to have a 10p hopper and a 20p hopper that would cover tokens, 20ps and x5 for pounds. If you list the all cash ones, that do not have pounds enabled, we can help with them. My personal set up uses Hong Kong Dollars in Hopper 2 and 10 Bahts in Hopper 1. So coin values don't matter to me, so long as they pay out the right amount, and credit accordingly. Regarding a 3rd Hopper. So far testing 3 hoppers, on 2 Pacdrives, I can only get 2 hoppers (Hopper 1 and a Hopper 2) to work per game. It does however seem that you could add a tube payout for a 3rd coin payout using the triac output. Unfortunately I can not test this properly due to no access to them type of parts, but I do get a pulse off the triac output on the Pacdrive that will fire a relay....So last night I ordered an Arduino Uno board, to see if I can piece together some more code I found on Git Hub. Hopefully that should be able to take the triac payout pulse, and fire a relay to trigger the Adrunio, which in turn should spin the hopper until it detects the OPTO sensor coin out pulse.
  10. Well almost a month later, and my reset counter still has not arrived (tracking say clearing customs), my leonardo board got cancelled, and my extra hopper got sent to Texas by accident, and to top it all, my expensive "surprise" board got mysteriously rejected, and sent back to China! The only good news, is that a new order for a Leonardo board from another seller did arrive (cheaper too), and thanks to help from Ross we can now convert each note pulse to the exact MFME key we need. So a slight change of plan.. Using the hardware I already have on hand, I am building an MFME add-on, which will test a 3rd hopper (triac mode only), Note changer, and Note creditor. Hopefully it should be ready by weekend.
  11. It's interesting to see a casino type game in an MFME cab. Do you have any future plans to add coin/note inputs and hoppers?
  12. I remember the boards that Retrofruit mentioned. My local arcade had one fitted to a Super Jester for the 4.80 jackpot. The long pauses before payout kind of spoiled it. I preferred tokens anyway. If the machine you are trying to adjust takes a pound, then there will be a tick box for pounds to pay out. Each tech is different, but usually standard per tech. List the machines you are trying to alter, and we may have the check box number you want.
  13. Quick update. The code above works great for the UK notes, and with some small changes it will work for any currency For Thai Bahts this is what I am now using. [code] /* This program expects pulses of logic high coming from a bill acceptor into pin 9 on an arduino leonardo. It counts the number of pulses, then pretends to be a usb keyboard and sends x,y,z keypress's when corrisponding pulses have been received to pay for credit. */ // The pin on the arduino where CREDIT (-) [Common] is connected #include <Keyboard.h> #define INPIN (9) int cents_per_pulse; // how many cents per pulse. for most bill acceptors this is 100 or $1 per pulse, but it can often be configured and coin acceptors will be different int min_pulse_width; // the minimum pulse width to acccept int max_pulse_width; // the maximum pulse width to accept int debounce_speed; // ignore changes in input line state that happen faster than this int pulse_count; // how many pulses have been received so far in this pulse train int cost_of_service; // Trigger service when this number of cents have been received unsigned long pulse_duration; // how long was the last pulse unsigned long pulse_begin; // when did the last pulse begin unsigned long pulse_end; // if they pulse was within min and max pulse width, when did it end unsigned long curtime; // what is the current time int post_pulse_pause; // how long to wait after last pulse before sending pulse count int pulse_state; // what is the current input line state (1 for high, 0 for low) int last_state; // what was the last input line state int min_cost_of_service; // Trigger service when this minimal number of cents have been received. //++ int max_cost_of_service; //++ void setup() { pinMode(INPIN, INPUT); // Pin 0 is the pin where the pulse output from the bill acceptor is connected. Change it // Serial.begin(115200); // You can comment all the Keyboard lines and uncomment all the serial lines to make it print to serial instead (useful for debugging) Keyboard.begin(); pulse_begin = 0; last_state = 0; min_pulse_width = 40; max_pulse_width = 60; debounce_speed = 4; post_pulse_pause = 300; cents_per_pulse = 100; pulse_end = 0; pulse_count = 0; cost_of_service = 1; min_cost_of_service = 2; //++ max_cost_of_service = 10; } void loop() { pulse_state = digitalRead(INPIN); curtime = millis(); if((pulse_state == 1) && (last_state == 0)) { // this means we entered a new pulse pulse_begin = curtime; // save the begin time of the pulse last_state = 1; // set the previous state } else if((pulse_state == 0) && (last_state == 1)) { // this means a pulse just ended pulse_duration = curtime - pulse_begin; // calculate pulse duration if(pulse_duration > debounce_speed) { // ensure that we don't change state for very short (false) pulses (this is called debouncing) last_state = 0; } if((pulse_duration > min_pulse_width) && (pulse_duration < max_pulse_width)) { // check if the pulse width is between the minimum and maximum pulse_end = curtime; // save the end time of the pulse pulse_count++; // increment the pulse counter } } if((pulse_end > 0) && (curtime - pulse_end > post_pulse_pause)) { // check if we've waited long enough that we don't expect any further pulses to be forthcoming if(pulse_count >= min_cost_of_service && pulse_count <= max_cost_of_service) {//++ // Serial.print(pulse_count); // Serial.println(); switch(pulse_count) { //++ case 2: //++ // 20Baht, 2 pulses. //++ Keyboard.write('x'); //++ break; //++ case 5: //++ // 50Baht 5 pulses. //++ Keyboard.write('y'); //++ break; //++ case 10: //++ // 100Baht 10 pulses. //++ Keyboard.write('z'); //++ break; //++ } } pulse_end = 0; pulse_count = 0; } } [/code]
  14. Thanks Ross:) Hopefully this should help anyone who wants to add a cheap (ITC Pulse) note changer to their MFME cabinet! I will reprogram my board with this code shortly and see what happens. All I have to do now is change the service amounts (Notes here are lower value than UK) and the keys to x,y,z so they do not conflict with any known MFME shortcuts. Thanks again for the input!
  15. Stoney is right. Before Pound coins came out there was only 10p, 20p and token tubes, or 10p and 50p tubes on clubbers. Sensors back then only disabled change for 50p when 10ps were low. When pound coins did come out, things changed regarding sensors on the tubes, but mainly to show that Pound coins were low, and to default to 10p tube payouts. What your suggestion might be possible with extra hardware + programming.
  16. Hi Guys I have hooked up an ITC note acceptor to MFME through a Leonardo Arduino Board, but am only getting so far as I have never coded C++. Here is the code I am using, which works perfectly for pressing the letter 'z' on a keyboard - after a certain amount in notes have been inserted. In my case 5x20 Baht, 2x50 or 1x100. What I am trying to do is generate an 'x' for 20 Baht, 'Y' for 50 Baht and a 'z' for 100 Baht. Here is the code below (taken from GitHub and edited accordingly). ----------------------------------------------------------------------------------------------------------------------- #include <Keyboard.h> /* This program expects pulses of logic high coming from a bill acceptor into pin 0 on an arduino leonardo. It counts the number of pulses, pretends to be a usb keyboard and sends an F3 keypress when enough total pulses have been received to pay for a service. */ // The pin on the arduino where CREDIT (-) [Common] is connected #define INPIN (9) int cents_per_pulse; // how many cents per pulse. for most bill acceptors this is 100 or $1 per pulse, but it can often be configured and coin acceptors will be different int min_pulse_width; // the minimum pulse width to acccept int max_pulse_width; // the maximum pulse width to accept int debounce_speed; // ignore changes in input line state that happen faster than this int pulse_count; // how many pulses have been received so far in this pulse train int cents_received; // Counts how many cents have been received int cost_of_service; // Trigger service when this number of cents have been received unsigned long pulse_duration; // how long was the last pulse unsigned long pulse_begin; // when did the last pulse begin unsigned long pulse_end; // if they pulse was within min and max pulse width, when did it end unsigned long curtime; // what is the current time int post_pulse_pause; // how long to wait after last pulse before sending pulse count int pulse_state; // what is the current input line state (1 for high, 0 for low) int last_state; // what was the last input line state void setup() { pinMode(INPIN, INPUT); // Pin 0 is the pin where the pulse output from the bill acceptor is connected. Change it // Serial.begin(115200); // You can comment all the Keyboard lines and uncomment all the serial lines to make it print to serial instead (useful for debugging) Keyboard.begin(); pulse_begin = 0; last_state = 0; min_pulse_width = 40; max_pulse_width = 60; debounce_speed = 4; post_pulse_pause = 300; cents_per_pulse = 100; pulse_end = 0; pulse_count = 0; cents_received = 0; cost_of_service = 1000; } void loop() { pulse_state = digitalRead(INPIN); curtime = millis(); if((pulse_state == 1) && (last_state == 0)) { // this means we entered a new pulse pulse_begin = curtime; // save the begin time of the pulse last_state = 1; // set the previous state } else if((pulse_state == 0) && (last_state == 1)) { // this means a pulse just ended pulse_duration = curtime - pulse_begin; // calculate pulse duration if(pulse_duration > debounce_speed) { // ensure that we don't change state for very short (false) pulses (this is called debouncing) last_state = 0; } if((pulse_duration > min_pulse_width) && (pulse_duration < max_pulse_width)) { // check if the pulse width is between the minimum and maximum pulse_end = curtime; // save the end time of the pulse pulse_count++; // increment the pulse counter } } if((pulse_end > 0) && (curtime - pulse_end > post_pulse_pause)) { // check if we've waited long enough that we don't expect any further pulses to be forthcoming cents_received += pulse_count * cents_per_pulse; if(cents_received >= cost_of_service) { // check if enough money has been paid for the service // Serial.print(pulse_count); // Serial.println(); Keyboard.write('z'); // Send a z keypress cents_received = 0; // reset cents_received so it's ready for next payment } pulse_end = 0; pulse_count = 0; } } --------------------------------------------------------------------------------------------------------------------------------- Does anybody have any idea how to improve the code on this, to generate keypresses for different notes? Hopefully others will be able to use this to add note acceptors to their MFME cabs in the future. Thanks in advance guys:)
  17. From a recent experiment, it looks like you can run up to 4 hoppers, so long as you are using a 2nd PacDrive (ID#2) and are only setting up older games that use the Triacs as hopper payouts. I cant confirm this 100% yet as my extra hoppers have mysteriously not arrived (been waiting a month so far), but when I tested using a lamp and pressing a [ key in place of a 3rd hopper, things seemed to work.
  18. Thanks for the update John:) Here is the feed back: I revisited AS, and downloaded the latest file (ignored the unsafe MS bollox) and then promptly got "update failed".....However, upon running AS and hitting "Enter" Said machine initialized and ran. So a big leap forward:)
  19. If I remember rightly.... Right click over the reel in edit mode [Create Overlay] Click reel Properties/Overlay and then click Transparency - set from cursor position and apply. Something like that anyway.
  20. Thanks for the reply. I checked my Reg, and it shows up on my "I" drive, so that is correct, it is also the last released version. Obviously it is not on the same drive as the sim, so that must be the problem.
  21. Hi John. I finally got this running (Avoiding the Microsoft warnings). It runs very smoothly on my system and looks amazing!!! I don't get any errors when trying to run a machine, but MFME does not start up after pressing enter, so I am wondering if MFME has to be in C drive to get found?
  22. They already have bulbs in them. Check with the seller to see if they are LEDs.
  23. Win 10 is being annoying now! I have reported this as safe. Hopefully others are doing the same.
  24. Most of the buttons around these days use LED's and will run on 5v-12v. All the ones I have ordered came with a micro switch & bulb. Maybe post a link before you buy. For me Ebay is usually more expensive than aliexpress, shopee, lazada, made-in-china, so shop around. I used female spade connectors, and shrink tubing for all my buttons/LEDS. My wire was cheap twin core, but I labeled everything as I went, and made a diagram for future reference. Have a look for an arcade power supply, there are some with 5,12,24v combined. You should not need a 5v output as you can get that off your Pacdrive and Ipac. (One has a negative ground, and the other has a positive ground). Other ideas: A baking tray cut in half works well as a payout tray. A key switch to power the hopper on if it jams. Or to churn out coins at will. A 2 way switch to swop the opto outputs - if you are running 2 hoppers. Then you can switch between hopper 1 and 2 in MFME config. Esc key, F3 (full screen), F6 (random Game) buttons hidden out of site, come in handy. Anyway..Good luck:)
  25. You should be able to use your encoder in the mean time. If your encoder can create a key press, then all you have to do is make sure that the buttons you are using in MFME match. You can edit the key presses in MFME for each button.
×
×
  • Create New...