Autor Tema: Controlador inalámbrico para c64  (Leído 24803 veces)

riq

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 567
    • Ver Perfil
    • From the C64 until today, a developer's perspective
Re:Controlador inalámbrico para c64
« Respuesta #15 en: Marzo 23, 2016, 06:13:10 »
gracias! muy util la respuesta. creo que voy entiendo un poco más todo esto.

al parecer le podes subir tu propio firmware al esp8266. Leí que a este chip lo usan con JavaScript + node.js, otros con micro-Python, otros con Lua, y otros directamente en C++. O le subis tu script o tu propio firmware.

supongo que en teoría se podría hacer un servercito TCP/IP que corra en el esp8266 y de acuerdo a los datos que lleguen, se activa o apaga un GPIO. Usaría UDP para que sea más rápido y liviano.
No se que tan poderoso es este chip, pero parece que se la debería bancar para hacer cosas básicas. Me gustaría hacer esta prueba primero antes de ir a algo más complejo.

lo que no estoy seguro es, una vez que activo un GPIO ¿qué hago? ¿conecto el GPIO a un transistor para que cierre el circuito del joystick? ¿necesito 5 transistores, uno por aca "input"? (izq., der., arriba, abajo, boton) ? si hay que usar transistores ¿que tipo de transistor hay que usar?

gracias!

Maniako

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 1013
  • SYS 8*4096
    • Ver Perfil
Re:Controlador inalámbrico para c64
« Respuesta #16 en: Marzo 23, 2016, 08:16:54 »
http://www.prometec.net/arduino-wifi/

Aquí tienes una introducción al funcionamiento. Es tal como lo ha expuesto Pastbytes (un crack en todo esto) ;).

Lo más sencillo seria que el Arduino se ocupara de conversar con el modulo wifi y simplemente fuera enviando los datos al puerto que elijas.

La entrada analógica seria la que mayor precisión te dé a la hora de interpretar dirección e intensidades del movimiento.

 Te esperan horas de prueba, ensayo , error ... :D
LDA #$50
STA $0400
RTS
Lloré cuando conseguí hacer esto con el monitor del FC1.

pastbytes

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 494
  • SYS 0
    • Ver Perfil
Re:Controlador inalámbrico para c64
« Respuesta #17 en: Marzo 23, 2016, 08:41:30 »
Si el modulo permite subirle un firmware o script, mejor, asi te ahorras otro chip. Por suerte no vas a procesar nada raro ahi, solo vas a implementar algun parser para traducir comandos a señales digitales, y para eso supongo que debe estar preparado el modulo.
Al puerto de joystick le podes enviar directamente unos o ceros, siempre que este entre 0 y 5V, no se si el modulo trabaja a 5V, si no queres complicarte mucho podes hacer como yo hice en los 90s para hacer algo similar (similar en el sentido de que recibia señales remotas y simulaba un joystick), que era poner un par de 4016 o 4066 para que hicieran de llave entre los movimientos/boton del joystick y masa. Esas llaves seguramente se activan perfectamente con 3,3V, y las alimentarias con 5V desde el puerto de joystick.
Igual por ahora podes encender leds o algo con el GPIO para usar de salida de debug, y cuando ya veas como funciona pones un led por cada movimiento para verificar que anda bien. Y al final agregarias las llaves para conectar esas salidas al puerto de joystick, todo ese modulo tendrias que alimentarlo aparte porque el puerto solo da 100 mA en los 5V, solo tendrias que conectar las masas de los dos circuitos para que tengan la misma referencia de voltaje.

Maniako

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 1013
  • SYS 8*4096
    • Ver Perfil
Re:Controlador inalámbrico para c64
« Respuesta #18 en: Marzo 23, 2016, 09:26:37 »
 :o

Estas puestisimo.
LDA #$50
STA $0400
RTS
Lloré cuando conseguí hacer esto con el monitor del FC1.

riq

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 567
    • Ver Perfil
    • From the C64 until today, a developer's perspective
Re:Controlador inalámbrico para c64
« Respuesta #19 en: Marzo 23, 2016, 15:13:09 »
@Maniako muy buena info. gracias!
Creo que con esa información terminé de entender lo que me estaba diciendo pastabytes.
entonces si entendí bien, así es como funciona el modem-wifi que salió hace poco, ¿no?http://jammingsignal.com/commodore-wi-fi-modem/

Y si... estoy cebadísimo :) quiero poder jugar a mi jueguito cuanto antes... e invitar a mis amiguitos monociclistas a jugarlo :)


@pastbytes
gracias. probaré con los 4066!
el módulo esp8266 se alimenta con 3.3v, y pensaba ponerle una batería externa ( https://www.sparkfun.com/products/13231 ) o quizas alimentarlo por el USB de una PC.

Otra cosa que pensaba hacer (no esta relacionado con el jueguito, pero si con el controlador) es hacerlo super genérico:

- que pueda emular joystick
    - con d-pad
    - con acelerometro (para mi caso en particular, pero poco útil para el resto de los juegos)
- que pueda emular mouse
- que pueda emular paddles
- y que use los dos puertos de joystick


basicamente, si uno enchufa este aparatito a la c64, entonces ya esta, no se necesita ningún controlador más.
Cargas GEOS. Vas al smartphone, lo pones en modo mouse, le decis que use el port 1. ¿No funciona? Entonces decile que use el port 2 (sin la necesidad de enchufar/desenchufar nada).
Luego pones el Commando, y lo pones en modo joystick. ¿no funciona? Entonces decile que use el otro port.
Luego viene una amiguito a tu casa, y quieren jugar al Racing Destruction Set, y le decis que se baje la aplicación "c64 super mega ultra fachi wua remote controller" del App Store y que se conecte a la red, y que lo ponga en modo joy en el puerto 2.
y así...
sin tener que encuchar o desenchuar nada... y sin tener que tener dos módulos.

Al menos eso es lo que tengo en mente... no se que tan fáctible es. Emular mouse creo que es más dificil ya que hay que pasar deltas de movimiento y no 0 y 1 (actualizo: leyendo veo que se puede configurar los GPIOs como PWM asi que se podría).
Además no se si hay suficientes pines GPIO para todo eso... ¿quizás haya que multiplexar? (actualizo: depende del módulo, hay módulos con más GPIOs que otro, igual habría que ver si hay suficientes)


gracias!!
« última modificación: Marzo 23, 2016, 19:06:43 por riq »

josepzin

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 9573
  • Commodoreador web
    • Ver Perfil
    • Mi blog
Re:Controlador inalámbrico para c64
« Respuesta #20 en: Marzo 23, 2016, 21:49:20 »
La verdad es que estoy ansioso por ver como avanza esto. Yo creo que tus estimaciones de usuarios son completamente realistas :D

riq

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 567
    • Ver Perfil
    • From the C64 until today, a developer's perspective
Re:Controlador inalámbrico para c64
« Respuesta #21 en: Marzo 25, 2016, 18:21:31 »
@Maniako
en caso que quieras armarte uno de estoy joysticks, aca encontré un módulo bastante barato: 4 u$d

http://www.aliexpress.com/item/D1-mini-Mini-NodeMcu-4M-bytes-Lua-WIFI-Internet-of-Things-development-board-based-ESP8266/32529101036.html

y el delivery también es bastante barato... creo que me costó 2 u$d.

me pedí un par. me llegarán en algunas semanas. mientras tanto voy a empezar con el código del celular y el servercito en Lua.


riq

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 567
    • Ver Perfil
    • From the C64 until today, a developer's perspective
Re:Controlador inalámbrico para c64
« Respuesta #22 en: Marzo 29, 2016, 10:11:13 »
La cosa va progresando.

- Estoy usando C++ (como si fuera un Arduino). Chau firmware the Lua
- Esto probando el IDE PlatformIO que parece ser mejor que el Arduino IDE
- Tengo servercito en UDP que prende/apaga 10 LEDs. Necesito 5 GPIOs por joystick (Arriba, Abajo, Izq, Der, Buton).
- Hice un cliente en python para probarlo
- El servercito usa Multicast DNS para anunciar el servicio (en teoria no habría que poner el IP Address en el cliente).

Aca videito con el ejemplo: server en C++ que corre en Node MCU + cliente en python que corre en mi compu (será reemplazado por el que corre en el iphone/android)

https://www.youtube.com/watch?v=zwoe8M_eRHk

El código del server, cliente y lo que se necesite para el hardware lo voy a ir poniendo aca:
https://github.com/ricardoquesada/c64-remote-controller

Y lo que se me ocurrió, es que este cliente en python se puede usar para hacer que un juego juego automaticamente... se lo programa para que mande izq,der,izq,derecha... y que juegue solo.
« última modificación: Marzo 29, 2016, 10:17:34 por riq »

Maniako

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 1013
  • SYS 8*4096
    • Ver Perfil
Re:Controlador inalámbrico para c64
« Respuesta #23 en: Marzo 29, 2016, 13:11:32 »
¿Ya te llegaron?.  :o

Los que compré son los básicos, pero me compraré uno igualito por que puede ser divertido seguir y montar tu invento.

Jamás he montado nada parecido, así que tardaré en aprender lo que tu ya has hecho en un tiempo récord.

Al final montarás una interfaces para manejar toda la casa con el C64 desde tu Smartphone. ;D
LDA #$50
STA $0400
RTS
Lloré cuando conseguí hacer esto con el monitor del FC1.

riq

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 567
    • Ver Perfil
    • From the C64 until today, a developer's perspective
Re:Controlador inalámbrico para c64
« Respuesta #24 en: Marzo 29, 2016, 16:38:11 »
Me llegó el NodeMCU LoLin, que lo compré por eBay a una persona que vive aca cerca.
Los D1 Mini los compré por AliExpress (en China) y aún no llegaron.

No recomiendo el NodeMCU LoLin ya que no entra en la protoboard y ademas el fabricante (WeMos, el mismo de los D1 Mini) no lo hace más y sacó toda la documentación de su página.
El NodeMCU Amica v2 (que es el oficial), entra en el protoboard (v2, y no la v0.9!) y creo que es casi igual al LoLin salvo los drivers de serial-usb. El código que estoy haciendo debería funcionar bien ten odos los NodeMCU y sino funciona, decime y lo arreglo.

Aca el LoLin en toda su gloria necesitando 2 protoboards por su ancho. La foto no es mia pero tuve que hacer algo parecido.


Según la información del Amica, tiene 10 GPIOs. Pero yo al menos con el LoLin pude usar 11 GPIOs a la vez. Y hay cero información del LoLin.

El Amica esta aca: http://www.electrodragon.com/product/nodemcu-lua-amica-r2-esp8266-wifi-board/
El LoLin evitalo si podes. Yo lo encontré en eBay. Buscalo como "NodeMCU v3".
El DOIT esta aca:http://doit.am/ y aca http://www.smartarduino.com/

y probablemente los puedas encontrar en AliExpress, eBay y demás. Si dice "v3" entonces es el LoLin, evitalo.






riq

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 567
    • Ver Perfil
    • From the C64 until today, a developer's perspective
Re:Controlador inalámbrico para c64
« Respuesta #25 en: Abril 01, 2016, 01:57:39 »
llegaron los switches 4066, y ya tengo una suerte de cliente para el iphone:

https://www.youtube.com/watch?v=Xe5iftIFIx0

tengo los db9 hembras... o sea que ya tengo más o menos todo para tener un prototipo que funcione.

que me falta:

- cliente iphone: terminarlo (el código esta en github por si alguien quiere ayudar a terminarlo)
- cablear todo el protoboard
- conectar los db9 hembra al protoboard y a la c64

y probarlo. después estaría bueno hacer un PCB para poder instalar todo fácilmente. ¿alguien tiene experiencia diseñando PCBs?

josepzin

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 9573
  • Commodoreador web
    • Ver Perfil
    • Mi blog
Re:Controlador inalámbrico para c64
« Respuesta #26 en: Abril 01, 2016, 03:59:01 »
Alucino con la velocidad que haces las cosas!!

Algún día haz un video sin usar el modo clown :-P :-D

riq

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 567
    • Ver Perfil
    • From the C64 until today, a developer's perspective
Re:Controlador inalámbrico para c64
« Respuesta #27 en: Abril 01, 2016, 04:31:24 »
Algún día haz un video sin usar el modo clown :-P :-D

Intentaré pero no prometo nada. Hacer cosas para la c64 ya es algo chistoso, entonces cualquier derivado de eso, en mi mente, nunca puede ser serio.

riq

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 567
    • Ver Perfil
    • From the C64 until today, a developer's perspective
Re:Controlador inalámbrico para c64
« Respuesta #28 en: Abril 01, 2016, 10:26:20 »
aca, el joystick remoto en toda su gloria:

https://www.youtube.com/watch?v=L_Gdwa1DCD8

Maniako

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 1013
  • SYS 8*4096
    • Ver Perfil
Re:Controlador inalámbrico para c64
« Respuesta #29 en: Abril 01, 2016, 10:39:07 »
Crack- :o

Aún no me ha llegado nada de lo que he pedido y ya lo tienes resuelto, hecho y funcional.
Eres demasiado para mi jajajajaja. Mi más sincera enhorabuena y admiración por mi parte.

Ahora solo te falta implementar los sensores de gravedad , la memorización de movimientos para repetir partidas automáticamente y ...¿algo más?.

Lo dicho, eres un máquina. 8)
LDA #$50
STA $0400
RTS
Lloré cuando conseguí hacer esto con el monitor del FC1.