Idea per un progetto

Ho i 3 uC verginelli che stanno lì sul banco, vorrei usarli.... ho la breadboard con il circuito di gestione della SRAM... più un sacco di altre cosucce... uno shield con LCD, un RTC.... un circuitino su breadboard dove c'è la replica dell'Hackvision... Sono a corto di idee... me ne date una su qualcosa da realizzare?

ciao leo72

Ieri mi sono arrivati i Fram e oggi li ho saldati su una schedina DIP.

Di piú scrivo nei prossimi giorni sul tread apposta.

Ciao Uwe

Uhm… forse ho trovato… chissà se ci riesco… ]:smiley:

Ho bisogno di una piccola consulenza. Qualcuno di voi ha avuto a che fare con la libreria PS2Keyboard?
Non riesco a farla funzionare, così credo…
Volevo un chiarimento sui pin usati. Nella pagina della libreria (http://www.pjrc.com/teensy/td_libs_PS2Keyboard.html) si legge che si devono usare 2 pin, uno per i dati ed uno per il clock. Quest’ultimo va collegato ad un pin di Arduino che possa essere agganciato ad un interrupt: l’Uno ha solo i pin 2 e 3, per cui ho scelto il 3, ed ho impostato i dati sul pin 4. Ho poi caricato lo sketch di esempio della lib modificato per il mio circuito:

/*  PS2Keyboard library example
  
  PS2Keyboard now requries both pins specified for begin()

  keyboard.begin(data_pin, irq_pin);
  
  Valid irq pins:
     Arduino:      2, 3
     Arduino Mega: 2, 3, 18, 19, 20, 21
     Teensy 1.0:   0, 1, 2, 3, 4, 6, 7, 16
     Teensy 2.0:   5, 6, 7, 8
     Teensy++ 1.0: 0, 1, 2, 3, 18, 19, 36, 37
     Teensy++ 2.0: 0, 1, 2, 3, 18, 19, 36, 37
     Sanguino:     2, 10, 11
  
  for more information you can read the original wiki in arduino.cc
  at http://www.arduino.cc/playground/Main/PS2Keyboard
  or http://www.pjrc.com/teensy/td_libs_PS2Keyboard.html
  
  Like the Original library and example this is under LGPL license.
  
  Modified by Cuninganreset@gmail.com on 2010-03-22
  Modified by Paul Stoffregen <paul@pjrc.com> June 2010
*/
   
#include <PS2Keyboard.h>

const int DataPin = 4;
const int IRQpin =  3;

PS2Keyboard keyboard;

void setup() {
  delay(2000);
  keyboard.begin(DataPin, IRQpin);
  Serial.begin(57600);
}

void loop() {
  if (keyboard.available()) {
    
    // read the next key
    char c = keyboard.read();
    
    // check for some of the special keys
    if (c == PS2_ENTER) {
      Serial.println();
    } else if (c == PS2_TAB) {
      Serial.print("[Tab]");
    } else if (c == PS2_ESC) {
      Serial.print("[ESC]");
    } else if (c == PS2_PAGEDOWN) {
      Serial.print("[PgDn]");
    } else if (c == PS2_PAGEUP) {
      Serial.print("[PgUp]");
    } else if (c == PS2_LEFTARROW) {
      Serial.print("[Left]");
    } else if (c == PS2_RIGHTARROW) {
      Serial.print("[Right]");
    } else if (c == PS2_UPARROW) {
      Serial.print("[Up]");
    } else if (c == PS2_DOWNARROW) {
      Serial.print("[Down]");
    } else if (c == PS2_DELETE) {
      Serial.print("[Del]");
    } else {
      
      // otherwise, just print all normal characters
      Serial.print(c);
    }
  }
}

Così facendo dovrei leggere sul terminale i tasti premuti… niente di niente!
Non arriva nulla. Sicuramente sbaglio qualcosa ma non so cosa.

Ciao, un collega del forum aveva utilizzato la stessa libreria con successo: http://cambarduino.altervista.org/7

Magari può esserti d'aiuto!

Purtroppo lì non c'è nessuno schema quindi non è possibile sapere come ha collegato la tastiera. Inoltre usa la versione vecchia della libreria, la nuova permette di impostare anche il pin dati. Sicuramente c'è qualcosa nel codice che uso che non va bene a livello di inizializzazione della comunicazione con la tastiera PS/2 perché lo sketch dovrebbe aprire successivamente anche la comunicazione col PC tramite seriale ma ciò non viene fatto.

Ho risolto il problema. :D In pratica è un problema di sincronizzazione tra tastiera e Arduino!

Per paura di non aver abbastanza tensione, alimentavo la tastiera con un alimentatorino a 5V esterno e non da Arduino. Così facendo accendevo la tastiera prima dell'Arduino e questo dava noia alla sincronizzazione fra i 2 componenti. Ad esser sinceri non ho provato a vedere se accendendo prima l'Arduino e poi la tastiera funziona.

Cmq se questo fosse il problema ora ne sorgerebbe un altro perché il circuito che ho pensato stanotte prevede 2 Atmega e l'interfaccia PS2 collegati insieme. Ma non so se riesco a dar tensione a tutto con l'alimentatorino, che fornisce solo 550 mA.... uhm... devo pensare a come poter sincronizzare tutto fornendo alimentazioni separate. Qualche idea?

Dunque, l'alimentatorino riesce a dar tensione a tutto, sono riuscito a far andare i 2 Atmega e la tastiera insieme. Ora ho un altro problema. Se collego l'interfaccia PS2 ad Arduino e questo al PC, sul terminale leggo i tasti corretti.

Ma se metto l'Atmega con la libreria PS2 sul mio circuito dove ho un altro Atmega con la lib tvOut collegato alla TV e leggo i caratteri sullo schermo, questi risultano sfalsati. Ad esempio ottengo il tasto ESC premendo il tasto "h" e roba simile... mah...