| Amiga Impact

  · Accueil
  · Actualités
   · Proposer une info
  · Agenda
   · Proposer une date
  · Articles
  · Forum
  · Petites Annonces
  · Chat IRC
  · À propos du site
   · Confidentialité



 | Connexion

Identifiant :

Mot de passe :

 Mémoriser

  · Inscription
  · Mot de passe oublié



 | En ligne

Illustration du profil de Michael1260






 | Nous suivre

Flux RSSGoogle+TwitterFacebook





Forum

/   Forums d'Amiga Impact
   /  adaptateur souris DB9 < Atmega (arduino) > ps2

Accueil Forums AmigaOS, MorphOS et AROS Matériel adaptateur souris DB9 < Atmega (arduino) > ps2

Ce sujet a 10 réponses, 3 participants et a été mis à jour par  Marco, il y a 5 ans et 2 mois.

11 sujets de 1 à 11 (sur un total de 11)

Auteur Messages   
#208868 adaptateur souris DB9 < Atmega (arduino) > ps2
 le 15/04/2014 à 19:24


darkmiky

Participant
  • Messages : 162

Bonsoir la communauté amiga.

J’ai codé et je me suis fabriqué un adaptateur souris ps2 pour amiga (à base d’atmega 328p) en ayant une vingtaine en stock.

L’adaptateur et le code ne sont pas nickel, car je suis parti au hasard (le nom ds routine par exemple est inversé dans le code, et le code n’est pas commenté) . Toujours est il, il fonctionne bien mieux (vive l’optique), que mes souris à boule amiga d’origine. J’en ai fait trois, et cela me convient.

Je voulais savoir si vous étiez intéressé par le code et le schéma, que je vous le mette à dispo. (il faut que je fasse un schéma propre de la platine)

L’atmega est programmé sur une board arduino, et ensuite il est posé en indépendant sur un pcb (de test).

Il suffit d’un quartz 16Mhz, deux condensateurs 10 nF, un atmega 16 ou 32, un db9 mâle, un ps2 femelle. (4Euros de matériel, morceau de pcb compris)

Il ne fonctionne cependant qu’avec les souris compatible ps2 (donc toutes les ps2 même sans fils) et les usb supportant le protocole ps2.

Si vous êtes intéressé, je tacherai de mettre sur ce poste le code (grâce à la lib ps2 d’arduino) ainsi qu’un schéma de brochage direct (juste de l’atmega, donc sans l’arduino.)

Cordialement

#209492 Répondre à : adaptateur souris DB9 < Atmega (arduino) > ps2
 le 25/04/2014 à 22:28


Marco

Participant
  • Messages : 74

Merci !

Je serai interesse’ au code + brochage des AT Mega

Cordialment,

 

Marco

 

 

 

#209493 Répondre à : adaptateur souris DB9 < Atmega (arduino) > ps2
 le 25/04/2014 à 22:52


Patrice

Participant
  • Messages : 210

Tres intéressé bravo

Faites l'amour pas la vaisselle

#209541 Répondre à : adaptateur souris DB9 < Atmega (arduino) > ps2
 le 26/04/2014 à 18:09


darkmiky

Participant
  • Messages : 162

bonsoir,

je vais essayer de vous joindre les photos de l’adaptateur, de son schéma fait main, et un fichier texte contenant le code pour l’arduino

concernant l’arduino j’ai utilisé un quartz externe en horloge, mais pour ceux qui ont un bootloader sur horloge interne, le quartz et les condensateurs ne sont pas obligatoire

cordialement

mike

#209542 Répondre à : adaptateur souris DB9 < Atmega (arduino) > ps2
 le 26/04/2014 à 18:10


darkmiky

Participant
  • Messages : 162

Les photos du proto et du schema (en espérant que ca passe j’arrive pas à mettre des images en attache

 

 

 

fichiers attachés:
  1. photo-1.jpg

#209547 Répondre à : adaptateur souris DB9 < Atmega (arduino) > ps2
 le 26/04/2014 à 18:22


darkmiky

Participant
  • Messages : 162

et le code (il vous faut la lib arduino ps2) testé sur la version 10.5 arduino (désolé ca ne passe pas non plus en fichier joint)

*************code***************

#include <ps2.h>

/*
* Pin 5 data pin PS2, pin 6 clock pin PS2
*/
PS2 mouse(6, 5);

const int AmHPin = 13;
const int AmHQPin = 12;
const int AmVPin = 11;
const int AmVQPin = 10;
const int AmB1 = 9;
const int AmB2 = 8;
const int AmB3 = 7;

void HGau() {
digitalWrite(AmHPin, HIGH);
digitalWrite(AmHQPin, HIGH);
digitalWrite(AmHPin, LOW);
digitalWrite(AmHQPin, LOW);

}

void HDrt() {
digitalWrite(AmHQPin, HIGH);
digitalWrite(AmHPin, HIGH);
digitalWrite(AmHQPin, LOW);
digitalWrite(AmHPin, LOW);

}

void Vhaut() {
digitalWrite(AmVPin, HIGH);
digitalWrite(AmVQPin, HIGH);
digitalWrite(AmVPin, LOW);
digitalWrite(AmVQPin, LOW);

}

void Vbas() {
digitalWrite(AmVQPin, HIGH);
digitalWrite(AmVPin, HIGH);
digitalWrite(AmVQPin, LOW);
digitalWrite(AmVPin, LOW);

}

void mouse_init()
{
mouse.write(0xff);
mouse.read();
mouse.read();
mouse.read();
mouse.write(0xf0);
mouse.read();
}

void setup()
{
pinMode(AmHPin, OUTPUT);
pinMode(AmHQPin, OUTPUT);
pinMode(AmVPin, OUTPUT);
pinMode(AmVQPin, OUTPUT);
pinMode(AmB1, OUTPUT);
pinMode(AmB2, OUTPUT);
pinMode(AmB3, OUTPUT);

// Serial.begin(9600);
// Serial.print(« mikeeeeee »);
mouse_init();
}

void loop()
{
char mstat;
char mx;
char my;

mouse.write(0xeb);
mouse.read();
mstat = mouse.read();
mx = mouse.read();
my = mouse.read();

// Serial.print(mstat);
// Serial.print(« \tX= »);
// Serial.print(mx, DEC);
// Serial.print(« \tY= »);
// Serial.print(my, DEC);
// Serial.println();
// delay(20); /* twiddle */
if (mx < 0) {
HDrt();
//Serial.print(« mike horiz droit »);
}

if (mx > 0) {
HGau();
//Serial.print(« mike horiz gauche »);
}

if (my < 0) {
Vhaut();
//Serial.print(« mike vert haut »);
}

if (my > 0) {
Vbas();
//Serial.print(« mike vertical bas »);
}

if(mstat == 8) {
digitalWrite (AmB1, HIGH);
digitalWrite (AmB2, HIGH);
digitalWrite (AmB3, HIGH);
// Serial.print(« MIKEEEE 000 »);
}

if(mstat == 9) {
digitalWrite (AmB1, LOW);
digitalWrite (AmB2, HIGH);
digitalWrite (AmB3, HIGH);
// Serial.print(« MIKEEEE 100 »);
}

if(mstat == 12) {
digitalWrite (AmB1, HIGH);
digitalWrite (AmB2, HIGH);
digitalWrite (AmB3, LOW);
// Serial.print(« MIKEEEE 010 »);
}

if(mstat == 10) {
digitalWrite (AmB1, HIGH);
digitalWrite (AmB2, LOW);
digitalWrite (AmB3, HIGH);
// Serial.print(« MIKEEEE 001 »);
}

if(mstat == 13) {
digitalWrite (AmB1, LOW);
digitalWrite (AmB2, HIGH);
digitalWrite (AmB3, LOW);
// Serial.print(« MIKEEEE 110 »);
}

if(mstat == 11) {
digitalWrite (AmB1, LOW);
digitalWrite (AmB2, LOW);
digitalWrite (AmB3, HIGH);
// Serial.print(« MIKEEEE 101 »);
}

if(mstat == 14) {
digitalWrite (AmB1, HIGH);
digitalWrite (AmB2, LOW);
digitalWrite (AmB3, LOW);
// Serial.print(« MIKEEEE 011 »);
}

if(mstat == 15) {
digitalWrite (AmB1, LOW);
digitalWrite (AmB2, LOW);
digitalWrite (AmB3, LOW);
// Serial.print(« MIKEEEE 111 »);
}

//Serial.println();

}

fichiers attachés:
  1. amigaps2arduino.txt

#209550 Répondre à : adaptateur souris DB9 < Atmega (arduino) > ps2
 le 26/04/2014 à 18:28


darkmiky

Participant
  • Messages : 162

Hgau, HDrt, Vhaut, Vbas sont les routines pour le mappage de la direction de la souris vers l’amiga, mais elles sont inversées, j’ai pas retouché le code ensuite.
J’ai laissé commentée la partie debug en mode sérial, sur la platine arduino, qui me servait à savoir ou j’en étais et si la lecture de la souris ps2 était bonne.

En espérant que cela puisse vous servir.
Testé sur 1 A500, 2 A600, 1 A1200 et une cd32, aucun soucis.

Le troisième bouton devrait logiquement fonctionner (clique molette) mais ne connaissant d’appli amiga qui l’utilise je n’ai pas testé

le roulement de la molette lui ne fonctionne pas

J’ai fait ce montage que pour pouvoir avoir une souris correct et optique sur amiga, ayant à dispo un bon nombre d’atmega.

Tout est libre, je me suis basé sur la library PS2 de l’arduino et de l’article d’obligement décrivant le fonctionnement d’une souris amiga.

Cordialement.
Mike

#209570 Répondre à : adaptateur souris DB9 < Atmega (arduino) > ps2
 le 26/04/2014 à 20:18


darkmiky

Participant
  • Messages : 162

oups petit détails, les prises db9 et ps2 sur le schéma sont vues coté soudure

#209582 Répondre à : adaptateur souris DB9 < Atmega (arduino) > ps2
 le 27/04/2014 à 00:01


Marco

Participant
  • Messages : 74

Bravo et merci !

J`ai une douzaine de Amtel mega mais dans ce format:

 

Tu peut le flasher ou je trouve un adaptateur ?

 

Amicalment,

 

Marco

 

 

#209583 Répondre à : adaptateur souris DB9 < Atmega (arduino) > ps2
 le 27/04/2014 à 00:12


darkmiky

Participant
  • Messages : 162

Ça fonctionne aussi si tu le programme d un arduino, suffit de corréler les pin

Si tu as un arduino de base (genre arduino duemilanove) tu trouves facilement comment brocher et programmer un arduino sur breadboard

L atemga étant le même il suffit juste de brocher correctement

Je n ai que de l atmega 2560 dans ce format et il se programme aussi facilement suffit du bon bootloader :

#209596 Répondre à : adaptateur souris DB9 < Atmega (arduino) > ps2
 le 27/04/2014 à 12:14


Marco

Participant
  • Messages : 74

Merci Darkmiky pour toutes tes explications.

Je vais mequiper pour cercher a lintegrer meme a l`interieur de la souris.

Le top c`est de creer un fichier gerbeur pour faire un mini circuit imprimee avec du SMD aufin de faciliter le montage.

Amicalment,

Marco

 

 

 

 

 


11 sujets de 1 à 11 (sur un total de 11)

Vous devez être connecté pour répondre à ce sujet.

                   
Derniers sujetsFraîcheur
 · (Update) Gotek firmware HxC du nouveau il y a 4 heures et 14 minutes
 · MorphOS au quotidien il y a 4 heures et 49 minutes
 · Le fil des vidéos il y a 5 heures et 49 minutes
 · [RECHERCHE] Mémoire pour A1200 il y a 5 heures et 51 minutes
 · NASS 2019 photos vidéos il y a 6 heures et 3 minutes
 · FastATA-V : CF, HD ou SSD SATA ? il y a 6 heures et 13 minutes
 · [ANNULE] Vampire V2+ pour A500 + carte CF 32 GB il y a 16 heures et 35 minutes
 · [RECHERCHE] Coque A600 en super état même très jaunie… il y a 1 jour et 4 heures
 · Vampire et ethernet il y a 1 jour et 5 heures
 · [RECHERCHE] A500 il y a 1 jour et 15 heures





RechercheFraîcheur


Copyright © 2004-2019 Amiga Impact. Tous droits réservés. Les marques citées sont déposées par leurs propriétaires respectifs.
Conditions d'Utilisation, Politique de Confidentialité et Information sur les cookies.


Fil RSS WordPressNicolas Gressard, Conseil et développement informatique

Do NOT follow this link or you will be banned from the site!