Is there any way to automatize a controller hitting 1button?

vaillian

Member
I want to get 999,999 Starchips in yugi oh and i thought about using a controller who has macro features, i have a pc controller who has turbo feature and macro feature. Its possible to make a macro that works in the game to farm. > x x o start works quite well to win without doing anything but i cant using turbo on the macro. If i could i could win for sure and let my controller do all the work.

So can i do? There some kind of magnets, if they come to contact with the magnet fields they trigger the function for the button they are supposed to work. So what kind of signal or anything could i put in there hitting one button all the time?

KgPJpBhmpnud-rxm-qbpcJszo9CfxIuG2xMX79SZFryh2sRPpX1DHclxqSdHBVkg8yk5LG3a9wK0GgqSycRLfA%3D%3D
 
Re: Is there any way to automatize a controller hitting 1but

If you just want to hit the macro button repeatedly, you could probably rig up a turbo using a 555 timer and a transistor.

I couldn't tell you how to wire it all up, though.

Depends a lot on the controller layout and how long the macro takes. Also, transistors still confuse me because I haven't actually played with any yet.
 
Re: Is there any way to automatize a controller hitting 1but

You can use a 555 timer as ttsgeb suggested, then set it up for whatever speed you can get away with in game. I'd probably use a PIC instead of a 555, but you'd then need to code it up, where a 555 just needs a few external components to set it up. There are loads of calculators and such online to pick all of the right values out for you.

I'd use a 4066 switch IC instead of a Transistor though, the SN74HC4066N for example. The output of the 555 would go to one of the Control lines, then those 2 switch lines go to the button you want to press. The 555 output pulses on/off/on/off, so the 4066 control line turns on/off/on/off, and the button gets pressed over and over again. Just need to make sure it's off longer than it's on, so the Macro has time to run before it starts all over again.
 
Re: Is there any way to automatize a controller hitting 1but

RDC said:
You can use a 555 timer as ttsgeb suggested, then set it up for whatever speed you can get away with in game. I'd probably use a PIC instead of a 555, but you'd then need to code it up, where a 555 just needs a few external components to set it up. There are loads of calculators and such online to pick all of the right values out for you.

I'd use a 4066 switch IC instead of a Transistor though, the SN74HC4066N for example. The output of the 555 would go to one of the Control lines, then those 2 switch lines go to the button you want to press. The 555 output pulses on/off/on/off, so the 4066 control line turns on/off/on/off, and the button gets pressed over and over again. Just need to make sure it's off longer than it's on, so the Macro has time to run before it starts all over again.

do you mean this?



From what i know the grey wire are for the controll panel where all the buttons are, they colored go to the controlelr court to the usb connector and the white to the shoulder buttons. So if i take the white wire and put there where this little led light is in the video it will work like i would hit the button?

1L50nNEBlBFq30_3GqbTUrqRwV2SYOVgLP22T_ZidVizSzEaCOF4_EPUYzQrzIOjaKL5gMY19sNTaburymJDHQ%3D%3D
 
Re: Is there any way to automatize a controller hitting 1but

Yes for the 555, but you'll need to use different value Resistors and Capacitors so it's timing works how you need. You'll also need to use a modified Astable setup so it has a longer off time than an on time, as that's just how the 555 chip work.

No for how to wire it up to the controller. You can't wire the 555 straight up to the controller, and definitely not to the white wire there, which is a ground line, that's not going to press any buttons at all.

I'd ditch the 555 idea and code up a 12F683 PIC and use it instead. You can adjust the timing to pretty much whatever and have it be far more precise. An alternate Tact button or even a switch would be used to run the code or not, so switch on or button pressed it would press the controller button over and over with a 1 second delay as it's coded below. If the switch is on, press button, wait 1 second, press button, wait 1 second, repeats forever. Switch off nothing happens.

Code:
/*******************************************************************************

Code to do a repeating button press with a 12F683 and a 4066 switch IC
Alternate switch or button is used to make the circuit run or not

*******************************************************************************/

// Define the names for the IO pins used

#define RUN_MACRO_BUTTON GP4_bit
#define CONTROLLER_BUTTON GP5_bit

void INIT(){
OSCCON = 0b01110111;                     // Set 8mhz Frequency
CMCON0 = 7;                              // Comparator off (not using it and can cause issues if left on)
OPTION_REG = 0b00000000;                 // Setup Option Reg for WPU
WPU = 0b00010000;                        // Enable Weak Pull Up on GPIO4
ANSEL = 0;                               // Analog Off (using pins as Digital, on/off)
TRISIO0_bit = 0;                         // Set TRIS GPIO0 as Output
TRISIO1_bit = 0;                         // Set TRIS GPIO1 as Output
TRISIO2_bit = 0;                         // Set TRIS GPIO2 as Output
TRISIO3_bit = 1;                         // GPIO3 is Always Input no matter what it's set at (MCLR)
TRISIO4_bit = 1;                         // Set TRIS GPIO4 as Input
TRISIO5_bit = 0;                         // Set TRIS GPIO5 as Output

CONTROLLER_BUTTON = 0;                   // Make sure the controller button is not pressed
}

void main(){

 INIT();
 
 while (1){                               // Run forever
   while(RUN_MACRO_BUTTON == 0){          // While the run button is pressed or switch is turned on
   CONTROLLER_BUTTON = 1;                 // Turn on 4066 for controller button (press)
   delay_ms(50);                          // Time button is pressed
   CONTROLLER_BUTTON = 0;                 // Turn off 4066 for controller button (release)
   delay_ms(1000);                        // 1 Second delay before doing it all over again
  }
 }
}



____________________________________________________________________________________________________________________________________
____________________________________________________________________________________________________________________________________

If the controller is a Common Ground type (all of the buttons have one side connected to Ground) you could ditch the 4066 and only need the 12F683 for doing the button press. The code would need changed in that case as well.

Code:
/*******************************************************************************

Code to do a repeating button press with a 12F683 on a CG type controller
Alternate switch or button is used to make the circuit run or not

*******************************************************************************/

// Define the names for the IO pins used

#define RUN_MACRO_BUTTON GP4_bit
#define CONTROLLER_BUTTON GP5_bit

void INIT(){
OSCCON = 0b01110111;                     // Set 8mhz Frequency
CMCON0 = 7;                              // Comparator off (not using it and can cause issues if left on)
OPTION_REG = 0b00000000;                 // Setup Option Reg for WPU
WPU = 0b00010000;                        // Enable Weak Pull Up on GPIO4
ANSEL = 0;                               // Analog Off (using pins as Digital, on/off)
TRISIO0_bit = 0;                         // Set TRIS GPIO0 as Output
TRISIO1_bit = 0;                         // Set TRIS GPIO1 as Output
TRISIO2_bit = 0;                         // Set TRIS GPIO2 as Output
TRISIO3_bit = 1;                         // GPIO3 is Always Input no matter what it's set at (MCLR)
TRISIO4_bit = 1;                         // Set TRIS GPIO4 as Input
TRISIO5_bit = 1;                         // Set TRIS GPIO5 as Input
}

void main(){

 INIT();
 
 while (1){                               // Run forever
   while(RUN_MACRO_BUTTON == 0){          // While the run button is pressed or switch is turned on
   TRISIO5_bit = 0;                       // Set pin to Output for button press
   CONTROLLER_BUTTON = 0;                 // Turn on the controller button (press)
   delay_ms(50);                          // Time button is pressed
   TRISIO5_bit = 1;                       // Turn off the controller button (release)
   delay_ms(1000);                        // 1 Second delay before doing it all over again
  }
 }
}

 
Re: Is there any way to automatize a controller hitting 1but

RDC said:
Yes for the 555, but you'll need to use different value Resistors and Capacitors so it's timing works how you need. You'll also need to use a modified Astable setup so it has a longer off time than an on time, as that's just how the 555 chip work.

No for how to wire it up to the controller. You can't wire the 555 straight up to the controller, and definitely not to the white wire there, which is a ground line, that's not going to press any buttons at all.

I'd ditch the 555 idea and code up a 12F683 PIC and use it instead. You can adjust the timing to pretty much whatever and have it be far more precise. An alternate Tact button or even a switch would be used to run the code or not, so switch on or button pressed it would press the controller button over and over with a 1 second delay as it's coded below. If the switch is on, press button, wait 1 second, press button, wait 1 second, repeats forever. Switch off nothing happens.

Code:
/*******************************************************************************

Code to do a repeating button press with a 12F683 and a 4066 switch IC
Alternate switch or button is used to make the circuit run or not

*******************************************************************************/

// Define the names for the IO pins used

#define RUN_MACRO_BUTTON GP4_bit
#define CONTROLLER_BUTTON GP5_bit

void INIT(){
OSCCON = 0b01110111;                     // Set 8mhz Frequency
CMCON0 = 7;                              // Comparator off (not using it and can cause issues if left on)
OPTION_REG = 0b00000000;                 // Setup Option Reg for WPU
WPU = 0b00010000;                        // Enable Weak Pull Up on GPIO4
ANSEL = 0;                               // Analog Off (using pins as Digital, on/off)
TRISIO0_bit = 0;                         // Set TRIS GPIO0 as Output
TRISIO1_bit = 0;                         // Set TRIS GPIO1 as Output
TRISIO2_bit = 0;                         // Set TRIS GPIO2 as Output
TRISIO3_bit = 1;                         // GPIO3 is Always Input no matter what it's set at (MCLR)
TRISIO4_bit = 1;                         // Set TRIS GPIO4 as Input
TRISIO5_bit = 0;                         // Set TRIS GPIO5 as Output

CONTROLLER_BUTTON = 0;                   // Make sure the controller button is not pressed
}

void main(){

 INIT();
 
 while (1){                               // Run forever
   while(RUN_MACRO_BUTTON == 0){          // While the run button is pressed or switch is turned on
   CONTROLLER_BUTTON = 1;                 // Turn on 4066 for controller button (press)
   delay_ms(50);                          // Time button is pressed
   CONTROLLER_BUTTON = 0;                 // Turn off 4066 for controller button (release)
   delay_ms(1000);                        // 1 Second delay before doing it all over again
  }
 }
}



____________________________________________________________________________________________________________________________________
____________________________________________________________________________________________________________________________________

If the controller is a Common Ground type (all of the buttons have one side connected to Ground) you could ditch the 4066 and only need the 12F683 for doing the button press. The code would need changed in that case as well.

Code:
/*******************************************************************************

Code to do a repeating button press with a 12F683 on a CG type controller
Alternate switch or button is used to make the circuit run or not

*******************************************************************************/

// Define the names for the IO pins used

#define RUN_MACRO_BUTTON GP4_bit
#define CONTROLLER_BUTTON GP5_bit

void INIT(){
OSCCON = 0b01110111;                     // Set 8mhz Frequency
CMCON0 = 7;                              // Comparator off (not using it and can cause issues if left on)
OPTION_REG = 0b00000000;                 // Setup Option Reg for WPU
WPU = 0b00010000;                        // Enable Weak Pull Up on GPIO4
ANSEL = 0;                               // Analog Off (using pins as Digital, on/off)
TRISIO0_bit = 0;                         // Set TRIS GPIO0 as Output
TRISIO1_bit = 0;                         // Set TRIS GPIO1 as Output
TRISIO2_bit = 0;                         // Set TRIS GPIO2 as Output
TRISIO3_bit = 1;                         // GPIO3 is Always Input no matter what it's set at (MCLR)
TRISIO4_bit = 1;                         // Set TRIS GPIO4 as Input
TRISIO5_bit = 1;                         // Set TRIS GPIO5 as Input
}

void main(){

 INIT();
 
 while (1){                               // Run forever
   while(RUN_MACRO_BUTTON == 0){          // While the run button is pressed or switch is turned on
   TRISIO5_bit = 0;                       // Set pin to Output for button press
   CONTROLLER_BUTTON = 0;                 // Turn on the controller button (press)
   delay_ms(50);                          // Time button is pressed
   TRISIO5_bit = 1;                       // Turn off the controller button (release)
   delay_ms(1000);                        // 1 Second delay before doing it all over again
  }
 }
}


where do i know if something is grounded? I uploaded a video showing the whole thing


Doesnt it really work just with a ne555? All i need is a button to be hit all 5 seconds.
 
Re: Is there any way to automatize a controller hitting 1but

All i need is a button to be hit all 5 seconds.

That sounds like you need a button to be pressed and held for 5 seconds, not pressed over and over again.

If you're trying to do this without adding any new buttons or a switch to the controller then you will have to use some type of programmable chip to do that. The 555 does not work that way, all it's going to do is turn on and off until it dies.

I can't tell from your video if the shoulder buttons are common ground or not. They have a 3 wire connection, so they're in some type of common layout, but I don't have that controller here to test. You will have to use a meter and Ohm out each side of the button's contacts to either of those GND wires and see if one of the contacts measures 0ohms. You will also need to measure the voltage on the other contact with the controller working and make sure that it is 5v, because if it's not you could damage the controller wiring some 5v chip up to it.

This is why the 4066 was recommended, as it would not matter what kind of button layout it had, the button would get pressed by the 4066 switch and be isolated from everything, the same as if you used some other button for it.

If you need to press the L1 button over and over to repeat the Macro, AND the controller is a common ground type, then you could use a 555 chip with a long enough on time to let the Macro complete, but you will still need a button or switch to connect the 555 to the L1 button line or the thing will be pressing L1 over and over all of the time.

R1, R2 and C1 are whatever values you need for whatever time frame you're setting it up for, there are 555 timer calculators all over the web for that. The Off time of the 555 would be the button pressed time, while the On time is the button released time and the time needed for the Macro to complete.

 
Back
Top