Conecte un ATmega328 a una Raspberry Pi

0

He estado atrapado en este problema por un par de meses y no he tenido mucha suerte en encontrar la información exacta que necesito. Por lo tanto, actualmente estoy trabajando en un proyecto para hacer una pi raspberry de mano y estoy utilizando pequeños botones para comunicarme con la Pi como dispositivo USB o mediante pines GPIO como teclado. No estoy demasiado preocupado por el código para traducir una señal a una pulsación de tecla, pero no estoy completamente seguro de cómo conectar realmente un ATmega328 al Pi. He mirado a mi alrededor en línea y he visto a personas que usan una placa Arduino completa para hacer lo que me gustaría, pero necesita poder permanecer compacto, por lo que planeo enviar el código al ATmega328 y conectarlo directamente dentro del circuito. No tengo mucha experiencia en la creación de circuitos que se comuniquen con computadoras, por lo que cualquier ayuda sería muy apreciada.

Aquí hay una idea del tipo de circuito que estoy buscando. No estoy completamente seguro del diseño exacto, pero esto es una especie de boceto para dar una idea de lo que estoy tratando de lograr.

    
pregunta Atarinerd80

2 respuestas

2

Hay varias partes diferentes del proyecto.

La lectura de los pulsadores en el R-Pi es factible. En cierto modo es más fácil en un Arduino, (Ese boceto no es como uno lo haría eléctricamente, pero es fácil de arreglar)

El problema son los emuladores para las consolas de juegos más antiguas. Tengo algo de experiencia en el apoyo a un equipo de estudiantes que querían ejecutar un emulador de juegos en un R-Pi.

Cada emulador tendrá algunas suposiciones integradas acerca de los controladores de sus juegos. Algunos de los emuladores de consola de juegos populares ya tienen emuladores de controlador, que completan el hardware.

En algunos casos, el emulador de la consola de juegos es fácil de completar al construir un hardware que emula el controlador de juegos específico utilizado por esa consola.

AFAICT necesitas identificar cada consola de juego. Luego, compre el hardware del controlador, o construya el controlador de juegos para satisfacer el emulador de la consola, o necesita piratear el código fuente del emulador.

IIRC el controlador de juegos que los estudiantes necesitaban hacer era sencillo. La información sobre el controlador estaba disponible en la web. La interfaz electrónica entre el emulador de la consola RPi y el controlador no era muy compleja. Lo construyeron con un Arduino, y funcionó lo suficientemente bien como para que estuvieran satisfechos.

Descripción general:
Exactamente lo que necesita para construir el controlador depende principalmente del emulador de la consola de juegos que desea usar. Hasta que decida eso, hay muy poco valor en enfocarse en conectar botones. El problema es hacer un controlador de juegos que tenga el comportamiento eléctrico correcto para trabajar con el emulador.

Primero debes elegir el emulador de la consola de juegos (o emulators ). Luego investiga los controladores. Hay poco beneficio trabajando con los pulsadores antes de eso; Los pulsadores son relativamente fáciles de conectar. La parte más difícil es crear una interfaz entre el emulador de la consola de juegos y el controlador porque no tienes la opción de elegir cómo funciona; El emulador de juegos ya está hecho para funcionar de maneras específicas.

Resumen: Algunos controladores pueden construirse usando un ATmega328, porque implementa suficiente interfaz de hardware. Sin embargo, para otros controladores es el lugar incorrecto para comenzar.

Recomendación: elige el emulador de la consola de juegos con los juegos que más quieres jugar e investiga cómo habla con sus controladores de juegos específicos. Lo ideal es encontrar algunas instrucciones sobre cómo construir un controlador de juegos que funcione para ese emulador. Aprende cómo funciona siguiendo las instrucciones y constrúyelo. Si está lejos de su objetivo, constrúyalo lo más rápido y barato posible, y trátela como un proyecto de aprendizaje.

Una vez que tenga algo funcionando, comprenderá mucho más sobre las posibilidades y limitaciones. Así que estarás mejor equipado para hacer lo que quieras hacer.

    
respondido por el gbulmer
1

Mi voto es para adjuntar directamente los botones a la Raspberry Pi. Linux GPIO es extremadamente sencillo de acceder desde la zona del usuario (¡incluso un script de shell puede acceder a GPIO!).

Habiendo dicho eso, si desea utilizar los botones para controlar los programas disponibles en el mercado (que probablemente esperan la entrada de un teclado / mouse), deberá generar pulsaciones de teclas de eventos de Linux a partir de eventos GPIO. Afortunadamente, Linux tiene el controlador gpio-keys. Algo como esto en tu archivo DTS hará el truco:

gpio-keys {
        compatible = "gpio-keys";

        left-key {
            label = "Left key";
            gpios = <&gpio0 17 0>;
            linux,code = <69>; /* KEY_LEFT */
        };
    }

Es posible que tengas que configurar la asignación de pines dependiendo del estado predeterminado de los pines sin restablecer.

    
respondido por el Jay Carlson

Lea otras preguntas en las etiquetas