J'ai récemment acheté le Makey Makey (basé sur Arduino Leonardo / ATMega32u4), dans l'espoir de construire un clavier de style steampunk USB complet à partir de certaines pièces métalliques. Avant son arrivée, j'ai relu les détails et réalisé qu'il n'avait que 18 entrées possibles, donc plus de 85 touches ne fonctionneraient pas. Quelqu'un a-t-il des idées pour créer une telle bête, peut-être avec un Raspberry Pi? (qui se connecte assez facilement, à partir des messages précédents )
15
Réponses:
Si vous voulez juste créer un clavier, sans utiliser votre Makey Makey, vous pouvez le faire en utilisant la fonctionnalité GPIO du Raspberry Pi. Mais comme indiqué précédemment, le Raspberry Pi n'a pas suffisamment de broches disponibles pour créer un clavier réellement utile.
Cependant, si vous êtes prêt à ajouter 2 IC, vous pouvez vous faire un clavier avec tellement de touches que vous aurez du mal à trouver une fonction pour chaque touche!
Ma suggestion est de connecter 2 circuits intégrés I2C au bus I2C du Raspberry Pi et de les utiliser pour créer votre propre matrice de numérisation.
Si vous utilisez un PCF8574, vous avez 8 broches d'E / S disponibles, si vous obtenez un PCF8575, vous avez même 16 broches d'E / S disponibles. En combinant alors vous pouvez obtenir une matrice de scan de:
Vous devez toujours en utiliser un en sortie et un en entrée. Sur la sortie vous laissez un peu «marcher» du bit 0 au bit n (7 ou 15), ce sont les colonnes de la matrice. De l'autre, vous lisez constamment la valeur de l'entrée et ce sont les lignes de la matrice. La combinaison de ce bit de sortie est actif et de ce bit d'entrée est «1» est la touche qui est enfoncée.
En fait, créer la matrice est le plus de travail, et pendant que vous y êtes, n'oubliez pas d'ajouter une diode après chaque interrupteur que vous mettez dans la matrice, cette diode (une 1N4148 normale fera l'affaire) doit être placée avec l'anode au commutateur et la cathode à la ligne de ligne. La chute de tension de 0,6 V sur cette diode ne devrait pas être un problème, les 2,7 V restants (3,3 V-0,6 V) devraient toujours être un «1» logique.
La raison de ce camion de diodes est qu'il empêchera les images fantômes et le masquage des clés. Le fantôme est l'effet que si vous appuyez sur plus de trois touches en même temps, il est possible qu'il soit interprété comme une touche totalement différente car plus de lignes auront un «1» logique. Le masquage est l'effet que, si vous appuyez sur plusieurs touches et relâchez une touche, cela (dans certaines situations) ne sera pas détecté car la ligne de cette touche est toujours un «1» logique.
L'image montre un exemple de fantôme, les boutons A, B, D sont enfoncés et en plus de la ligne 1 (pour le bouton A), la ligne 2 (pour le bouton C) est également élevée, au moment où la colonne 1 est active, ce qui n'est pas correct.
Après toute l'aventure matérielle, vous devez écrire ou adapter un pilote de noyau pour utiliser réellement le clavier sous Linux. Un bon point de départ pourrait être ce lien: Pilote pour les clés sur l'expandeur IO TCA6416 I2C , c'est une idée similaire, mais utilise uniquement un clavier à 16 touches.
J'espère que ça vous aidera un peu.
la source
Si vous voulez créer un clavier complet pour taper réellement, vous feriez probablement mieux avec l'IC d'un clavier USB. Soit conserver le PCB lui-même enfoui profondément dans votre système où il ne peut pas être vu et faire passer les câbles jusqu'à vos commutateurs, soit fabriquer quelque chose de personnalisé avec la même matrice.
Si vous devez vraiment changer la matrice électrique, vous devrez peut-être créer votre propre conception à partir de zéro, mais sinon ce n'est pas vraiment nécessaire.
Même avec une carte personnalisée, vous pouvez toujours vous retrouver avec quelque chose qui énumère et fonctionne comme un clavier USB, supprimant le besoin de pilotes personnalisés.
la source