El secreto detrás del rock virtual: Cómo fabricar tu guitarra casera para Clone Hero.

Publicado el 28/07/2023 12:07:00 en Programación General.
Author: [x][x] hielasangre | Total de votos: 10   Vote



La idea de este post es mostrar, como darle vida a una guitarra de videojuego de play 2 (en realidad podría ser de cualquier consola) y aprovecharla para darle una segunda vida... En mi caso yo la consegui por USD 7,5 .
Existe muchas formas de poder realizar esto mismo, de hecho si buscan en google sanjay guitar, tienes para varias plataformas; Pero mi idea era hacerlo a mi manera (que ganas de complicarme la vida, já)

El modelo de guitarra que conseguí es el de la krammer:



Además de eso, utilizamos cable UTP (pueden usar el que les resulte más cómodo) y una raspberry pico.
El funcionamiento de esto en realidad seria que cuando la raspberry pico, detecte que se presiono algún pulsador en los pines asignados, mande una señal de teclado a la PC.
En cuanto al procedimiento que realicé, fue desarmar por completo la guitarra, quitarle los cables que tenia que comunicaba las placas entre sí, y asignarlas a los pines en la raspi.



NOTA: en algunas guitarras debido a los componentes electrónicos que traen las placas (las cuales no se pueden quitar porque funcionan de soporte para los pulsadores de la guitarra, en el caso de querer sacarlos hay que fabricar nuevas placas) se deben cortar ciertas pistas del circuito, de lo contrario vamos a tener un efecto rebote o presión fantasma (se toca sola, como muchos de lo que estan leyendo el post)



Luego de cablear y soldar, improvise un código que me permite jugar, y comparto el mismo:

import time
import digitalio
import board
import usb_hid
from adafruit_hid.keyboard import Keyboard
from adafruit_hid.keycode import Keycode

botonA_pin= board.GP15
botonS_pin= board.GP14
botonJ_pin= board.GP13
botonK_pin= board.GP12
botonL_pin= board.GP11
botonArriba_pin= board.GP9
botonAbajo_pin= board.GP8
botonEnter_pin= board.GP7
botonH_pin= board.GP6
teclado = Keyboard(usb_hid.devices)

botonA = digitalio.DigitalInOut(botonA_pin)
botonA.direction = digitalio.Direction.INPUT
botonA.pull = digitalio.Pull.DOWN
botonS = digitalio.DigitalInOut(botonS_pin)
botonS.direction = digitalio.Direction.INPUT
botonS.pull = digitalio.Pull.DOWN
botonJ = digitalio.DigitalInOut(botonJ_pin)
botonJ.direction = digitalio.Direction.INPUT
botonJ.pull = digitalio.Pull.DOWN
botonK = digitalio.DigitalInOut(botonK_pin)
botonK.direction = digitalio.Direction.INPUT
botonK.pull = digitalio.Pull.DOWN
botonL = digitalio.DigitalInOut(botonL_pin)
botonL.direction = digitalio.Direction.INPUT
botonL.pull = digitalio.Pull.DOWN
botonArriba = digitalio.DigitalInOut(botonArriba_pin)
botonArriba.direction = digitalio.Direction.INPUT
botonArriba.pull = digitalio.Pull.DOWN
botonAbajo = digitalio.DigitalInOut(botonAbajo_pin)
botonAbajo.direction = digitalio.Direction.INPUT
botonAbajo.pull = digitalio.Pull.DOWN
botonEnter = digitalio.DigitalInOut(botonEnter_pin)
botonEnter.direction = digitalio.Direction.INPUT
botonEnter.pull = digitalio.Pull.DOWN
botonH = digitalio.DigitalInOut(botonH_pin)
botonH.direction = digitalio.Direction.INPUT
botonH.pull = digitalio.Pull.DOWN

while True:
    if botonA.value:
        teclado.press(Keycode.A)
        time.sleep(0.1)
        teclado.release(Keycode.A)
        time.sleep(0.1)
    if botonS.value:
        teclado.press(Keycode.S)
        time.sleep(0.1)
        teclado.release(Keycode.S)
        time.sleep(0.1)
    if botonJ.value:
        teclado.press(Keycode.J)
        time.sleep(0.1)
        teclado.release(Keycode.J)
        time.sleep(0.1)
    if botonK.value:
        teclado.press(Keycode.K)
        time.sleep(0.1)
        teclado.release(Keycode.K)
        time.sleep(0.1)
    if botonL.value:
        teclado.press(Keycode.L)
        time.sleep(0.1)
        teclado.release(Keycode.L)
        time.sleep(0.1)
    if botonArriba.value:
        teclado.press(Keycode.UP_ARROW)
        time.sleep(0.1)
        teclado.release(Keycode.UP_ARROW)
        time.sleep(0.1)
    if botonAbajo.value:
        teclado.press(Keycode.DOWN_ARROW)
        time.sleep(0.1)
        teclado.release(Keycode.DOWN_ARROW)
        time.sleep(0.1)
    if botonEnter.value:
        teclado.press(Keycode.ENTER)
        time.sleep(0.1)
        teclado.release(Keycode.ENTER)
        time.sleep(0.1)
    if botonH.value:
        teclado.press(Keycode.H)
        time.sleep(0.1)
        teclado.release(Keycode.H)
        time.sleep(0.1)
    time.sleep(0.1)




Hasta aquí este breve post. En una futura versión la idea es modificar otra guitarra, y dotarla de una comunicación RF para poder jugar de manera inalambrica.

__EOF__

Comments:


[x]
[x][x] The0ne (2 m) : 55899 asdfasdff


[x]
[x][x] M20191 (2 m) : 55903 Épico!


[x]
[x][x] MuldeR (2 m) : 55904 (se toca sola, como muchos de lo que estan leyendo el post) 😂😂



[x]
[x][x] hielasangre (2 m) : 55905 jajajajaja xD


[x]
[x][x] Zep7i (2 m) : 55906 ☠️


[x]
[x][x] M20191 (2 m) : 55910 ☠️


[x]
[x][x] CManrique (1 m) : 55914 tenes la música en tus venas, solo falta que circule :P