3 votes

Est-il possible d'utiliser la souris originale Mac Plus ou Mac 128k avec un Macbook Pro moderne ?

Je crois que les premiers Macs utilisaient un port série pour la souris avec un connecteur RS-422 DE-9. Ce n'est pas du tout la norme aujourd'hui. Mais il est certain qu'à un moment donné, une société (Apple ?) a dû fabriquer un adaptateur permettant d'utiliser les premières souris avec les Mac basés sur le port USB ?

Merci pour toute information...

2voto

Philip Rieck Points 21405

Pour autant que je sache, les anciennes souris mac utilisaient un connecteur DE-9, mais celui-ci n'est pas compatible RS-232. Si c'était le cas, vous auriez pu utiliser un adaptateur de RS-232 à PS/2 et ensuite un convertisseur ps/2-usb (les deux doivent être des convertisseurs actifs).

Si vous vous procurez une souris ADB, vous pourrez les utiliser car il y a adaptateurs pour ces derniers.

Si vous vous intéressez à l'électronique et à la programmation, vous pouvez construire votre propre convertisseur en utilisant, par exemple, une carte d'extension. carte teensy pour quelques dollars. Cela ne devrait pas être trop difficile, car la vieille souris Apple envoie tout simplement signaux en quadrature qui devraient être facilement traduits en mouvements de pointeurs.

2voto

evan.leonard Points 466

Ancien fil de discussion - mais je cherchais la même chose

Il est possible d'utiliser un arduino/teensy avec une capacité HID pour convertir la quadrature à utiliser sur un dispositif USB.

Le brochage du DE9 (avec les broches arduino pour le code ci-dessous) est le suivant :

DB9     Pro Micro
    1       GND
    2       VCC
    3       GND
    4       D0      (pin 3)
    5       D1      (pin 2)
    6       -       (not connected)
    7       B3      (pin 14)
    8       D3      (pin TXO)
    9       D2      (pin RXI)

Et quelques exemples de code provenant de GuilleAcoustic et modifiés par Johan Berglund :

/* ================================================================================
   Author  : GuilleAcoustic
   Date    : 2015-05-22
   Revision: V1.0
   Purpose : Opto-mechanical trackball firmware
   --------------------------------------------------------------------------------
   Wiring informations: Sparkfun Pro micro (Atmega32u4)
   --------------------------------------------------------------------------------
     - Red    : Gnd                          |   Pin: Gnd
     - Orange : Vcc (+5V)                    |   Pin: Vcc
     - Yellow : X axis encoder / channel A   |   Pin: PD3 - (INT0)
     - Green  : X axis encoder / channel B   |   Pin: PD2 - (INT1)
     - Blue   : Y axis encoder / channel A   |   Pin: PD0 - (INT2)
     - Violet : Y axis encoder / channel B   |   Pin: PD1 - (INT3)
     - Grey   : Switch 1                     |   Pin: PB3
     - White  : Switch 2                     |   Pin: PB2
     - Black  : Switch 3                     |   Pin: PB1

   --------------------------------------------------------------------------------
   Modified for use with Apple M0100 mouse
   By Johan Berglund, 2015-08-10

   Changes in code:
   - Internal pullup set for pin 14 (B3)
   - State check for right and middle buttons commented out

   Connection to DB9:

   DB9     Pro Micro
    1       GND
    2       VCC
    3       GND
    4       D0      (pin 3)
    5       D1      (pin 2)
    6       -       (not connected)
    7       B3      (pin 14)
    8       D3      (pin TXO)
    9       D2      (pin RXI)

   ================================================================================ */

// =================================================================================
// Type definition
// =================================================================================
typedef struct
{
  int8_t  coordinate = 0;
  uint8_t index      = 0;
} ENCODER_;

// =================================================================================
// Constant definition
// =================================================================================
const int8_t lookupTable[] = {0, 1, -1, 0, -1, 0, 0, 1, 1, 0, 0, -1, 0, -1,  1,  0};

// =================================================================================
// Volatile variables
// =================================================================================
volatile ENCODER_ xAxis;
volatile ENCODER_ yAxis;

// =================================================================================
// Setup function
// =================================================================================
void setup()
{

  // Set pull-up for mouse switch on M0100
  pinMode(14, INPUT_PULLUP);

  // Attach interruption to encoders channels
  attachInterrupt(0, ISR_HANDLER_X, CHANGE);
  attachInterrupt(1, ISR_HANDLER_X, CHANGE);
  attachInterrupt(2, ISR_HANDLER_Y, CHANGE);
  attachInterrupt(3, ISR_HANDLER_Y, CHANGE);

  // Start the mouse function
  Mouse.begin();
}

// =================================================================================
// Main program loop
// =================================================================================
void loop()
{
  // Update mouse coordinates
  if (xAxis.coordinate != 0 || yAxis.coordinate != 0)
  {
    Mouse.move(xAxis.coordinate, yAxis.coordinate);
    xAxis.coordinate = 0;
    yAxis.coordinate = 0;
  }

  // Update buttons state
  !(PINB & 0b1000) ? Mouse.press(MOUSE_LEFT)   : Mouse.release(MOUSE_LEFT);
  // !(PINB & 0b0100) ? Mouse.press(MOUSE_RIGHT)  : Mouse.release(MOUSE_RIGHT);
  // !(PINB & 0b0010) ? Mouse.press(MOUSE_MIDDLE) : Mouse.release(MOUSE_MIDDLE);

  // Wait a little before next update
  delay(10);
}

// =================================================================================
// Interrupt handlers
// =================================================================================
void ISR_HANDLER_X()
{
  // Build the LUT index from previous and new data
  xAxis.index       = (xAxis.index << 2) | ((PIND & 0b0011) >> 0);
  xAxis.coordinate += lookupTable[xAxis.index & 0b1111];
}

void ISR_HANDLER_Y()
{
  // Build the LUT index from previous and new data
  yAxis.index       = (yAxis.index << 2) | ((PIND & 0b1100) >> 2);
  yAxis.coordinate += lookupTable[yAxis.index & 0b1111];
}

Original de : https://geekhack.org/index.php?topic=74340.0

1voto

Rachael Points 261

Il existe deux adaptateurs usb pour la souris et le clavier de l'ancien Macintosh que vous pouvez utiliser. Ils sont plug n' plug play et compatibles avec les principaux systèmes d'exploitation tels que Windows, MacOS et Linux.

  1. Convertisseur souris-USB M0100
  2. Convertisseur clavier M110 vers USB

0voto

David Metcalfe Points 1172

Normalement, il s'agit d'un problème de pilotes par rapport aux convertisseurs. Une recherche rapide permet de trouver une pléthore de convertisseurs série-USB à acheter. Je ne m'attendrais pas à ce que le système reconnaisse le périphérique d'entrée.

0voto

Jason Sparks Points 948

Oui. Vous aurez besoin d'un microcontrôleur doté de 5 broches d'E/S numériques et d'une interface USB pouvant se faire passer pour un périphérique USB HID. Le connecteur DE-9 de la souris Mac 128k possède des broches de sortie pour 2 encodeurs en quadrature XY et le bouton de la souris. Une certaine programmation du micro-contrôleur peut être nécessaire.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X