Go Down

Topic: Simulare pressione tasti con arduino UNO (Read 3605 times) previous topic - next topic

cece99

Salve a tutti vorrei usare il mio ricevitore ir per comandare il computer usando le scorciatoie con i tasti di vlc e delle utility di Windows 8. Ho intenzione di usare uno standalone, cosa ne pensate di emulare una tastiera PS/2 e poi usare un adattatore PASSIVO da PS/2 a USB, che funzioni?
Qualcuno ha qualche idea alternativa (non voglio usare il leonardo...)
Il Vero Programmatore non ha bisogno di manuali sull'assembler, sono
  sufficienti i data sheet dei microprocessori.

anerDev

Cioè con una tastiera comandi un arduino, e l'arduino a sua volta comanda il computer ?  :smiley-slim:

cece99


Cioè con una tastiera comandi un arduino, e l'arduino a sua volta comanda il computer ?  :smiley-slim:

No, io mando il segnale ir con un telecomando ad arduino, lo decodifico con un ricevitore e se è magari "volume +" uso arduino per simulare il tasto volume è sul pc (ad esempio F10)
Il Vero Programmatore non ha bisogno di manuali sull'assembler, sono
  sufficienti i data sheet dei microprocessori.

anerDev

Ah okok !

Allora, per quanto riguarda la parte dell'IR poi ti passo un mio vecchio progetto;
per quanto riguarda dall'arduino al pc, secondo me ti conviene via seriale ! Ma vediamo ...

Appena torno a casa ti mando tutto su questo topic

leouz

L'arduino Leonardo non è pensata anche per questo? per simulare tastiera e topo?  ;)

Quote
The Leonardo differs from all preceding boards in that the ATmega32u4 has built-in USB communication, eliminating the need for a secondary processor. This allows the Leonardo to appear to a connected computer as a mouse and keyboard, in addition to a virtual (CDC) serial / COM port. It also has other implications for the behavior of the board; these are detailed on the getting started page.

anerDev

Che IDE usi ?

Se usi 1.x devo riscrivere il codice ! ahuahuahu

cece99


L'arduino Leonardo non è pensata anche per questo? per simulare tastiera e topo?  ;)

Quote
The Leonardo differs from all preceding boards in that the ATmega32u4 has built-in USB communication, eliminating the need for a secondary processor. This allows the Leonardo to appear to a connected computer as a mouse and keyboard, in addition to a virtual (CDC) serial / COM port. It also has other implications for the behavior of the board; these are detailed on the getting started page.


Leggi sopra ;), ho scritto che non voglio usare il Leonardo :D


Che IDE usi ?

Se usi 1.x devo riscrivere il codice ! ahuahuahu

Si, userei la 1.0.2 ma posso benissimo usare la 0022
Il Vero Programmatore non ha bisogno di manuali sull'assembler, sono
  sufficienti i data sheet dei microprocessori.

astrobeed


cosa ne pensate di emulare una tastiera PS/2 e poi usare un adattatore PASSIVO da PS/2 a USB, che funzioni?


L'adattatore passivo PS/2 USB è per l'appunto passivo, cioè è solo un adattatore tra connettori diversi, la PS/2 non ha nulla a che vedere con l'USB come funzionamento, i device che possono usare questi adattatori, tastiere e mouse, dispongono internamente di tutte e due le interfacce e utilizzano quella che serve a seconda dei casi.
Detta in altri termini, non puoi pensare di emulare la PS/2 con Arduino e pensare di poterla collegare alla USB utilizzando un adattatore passivo, ti serve un vero convertitore (attivo) tra PS/2 e USB e non un semplice adattatore.

cece99



cosa ne pensate di emulare una tastiera PS/2 e poi usare un adattatore PASSIVO da PS/2 a USB, che funzioni?


L'adattatore passivo PS/2 USB è per l'appunto passivo, cioè è solo un adattatore tra connettori diversi, la PS/2 non ha nulla a che vedere con l'USB come funzionamento, i device che possono usare questi adattatori, tastiere e mouse, dispongono internamente di tutte e due le interfacce e utilizzano quella che serve a seconda dei casi.
Detta in altri termini, non puoi pensare di emulare la PS/2 con Arduino e pensare di poterla collegare alla USB utilizzando un adattatore passivo, ti serve un vero convertitore (attivo) tra PS/2 e USB e non un semplice adattatore.

Infatti anche io la pensavo così......
@astro hai una delle tue idee geniali?
Il Vero Programmatore non ha bisogno di manuali sull'assembler, sono
  sufficienti i data sheet dei microprocessori.

anerDev

Alors prova così:

Installa questa libreria: https://github.com/shirriff/Arduino-IRremote
Usa questo il circuito in allegato;

Con questo sketch vedi ogni tasto del telecomando a quale "numero corrisponde":

Code: [Select]
#include <IRremote.h>

int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;

void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn(); // Start the receiver
}

void loop() {
  if (irrecv.decode(&results)) {
    Serial.println(results.value, DEC);
    irrecv.resume(); // Receive the next value
  }
}


Invece per far corrispondere una "schiacciata" al tasto del telecomando ad una funzione, puoi usare questo sketch (un mio vecchio progetto):

Code: [Select]
#include <IRremote.h>

int led1 = 8;
int led2 = 9;
int led3 = 10;
int RECV_PIN = 7;
IRrecv irrecv(RECV_PIN);
decode_results results;
byte flag=0;

void setup() { 
Serial.begin(9600);
  irrecv.enableIRIn();
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
}

void loop() {
   if (irrecv.decode(&results)) {
     Serial.println(results.value, DEC);
      irrecv.resume();
     
       if (results.value == 33444015) {
         digitalWrite(led1, flag);
         flag^=1;
       }
       
       if (results.value == 33478695) {
         digitalWrite(led2, flag);
         flag^=1;
       }
       
       if (results.value == 33486855) {
         digitalWrite(led3, flag);
         flag^=1;
       }
       
    }
}





Fammi sapere

Fonte: http://www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html

cece99


Alors prova così:

Installa questa libreria: https://github.com/shirriff/Arduino-IRremote
Usa questo il circuito in allegato;

Con questo sketch vedi ogni tasto del telecomando a quale "numero corrisponde":

Code: [Select]
#include <IRremote.h>

int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;

void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn(); // Start the receiver
}

void loop() {
  if (irrecv.decode(&results)) {
    Serial.println(results.value, DEC);
    irrecv.resume(); // Receive the next value
  }
}


Invece per far corrispondere una "schiacciata" al tasto del telecomando ad una funzione, puoi usare questo sketch (un mio vecchio progetto):

Code: [Select]
#include <IRremote.h>

int led1 = 8;
int led2 = 9;
int led3 = 10;
int RECV_PIN = 7;
IRrecv irrecv(RECV_PIN);
decode_results results;
byte flag=0;

void setup() { 
Serial.begin(9600);
  irrecv.enableIRIn();
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
}

void loop() {
   if (irrecv.decode(&results)) {
     Serial.println(results.value, DEC);
      irrecv.resume();
     
       if (results.value == 33444015) {
         digitalWrite(led1, flag);
         flag^=1;
       }
       
       if (results.value == 33478695) {
         digitalWrite(led2, flag);
         flag^=1;
       }
       
       if (results.value == 33486855) {
         digitalWrite(led3, flag);
         flag^=1;
       }
       
    }
}





Fammi sapere

Fonte: http://www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html

Ok, grazie ma io vorrei capire come simulare la pressione dei tasti senza comprare una leonardo e senza programmare il convertitore usb-seriale di arduino che è un atmega.
Qualcuno saprebbe come illuminarmi?
Il Vero Programmatore non ha bisogno di manuali sull'assembler, sono
  sufficienti i data sheet dei microprocessori.

anerDev

Ma simulare in che senso ? Vorresti usare un arduino virtuale per vedere come si comporta il programma ? O.0

Io ti posso aiutare nella parte del ricevitore IR !

superlol

per me ti conviene scriverti un software in vb da fare girare sul tuo pc così puoi controllare tutto il sistema con poco codice...
Il nuovo forum italiano sull'elettronica: http://www.electroit.tk/ <--- Nuovamente online!

cece99


per me ti conviene scriverti un software in vb da fare girare sul tuo pc così puoi controllare tutto il sistema con poco codice...


Anche io pensavo a una cosa simile, ma mi sapresti aiutare visto che di VB non capisco nulla :D, versione da installare e comandi che devo usare ;)
Il Vero Programmatore non ha bisogno di manuali sull'assembler, sono
  sufficienti i data sheet dei microprocessori.

superlol



per me ti conviene scriverti un software in vb da fare girare sul tuo pc così puoi controllare tutto il sistema con poco codice...


Anche io pensavo a una cosa simile, ma mi sapresti aiutare visto che di VB non capisco nulla :D, versione da installare e comandi che devo usare ;)

ok mi sono scavato una fossa perchè è da 2 mesi che uso esclusivamente linux :P

comunque dovrai installare vb.net, magari framework 4 (ma dovresti avere già molto installato con win 8)

quindi impara come comunicare via seriale, visual basic ti mette a disposizione tutto nella libreria IO, fai il primo form e impara a leggere da seriale e printare in una textbox, poi http://www.codeproject.com/Articles/7305/Keyboard-Events-Simulation-using-keybd_event-funct
ricorda che ogni comando dev'essere doppio: uno che simula la pressione ed uno il rilascio ;)
Il nuovo forum italiano sull'elettronica: http://www.electroit.tk/ <--- Nuovamente online!

Go Up