Neofita in cerca di consigli.

Ciao a tutti, sono un neo iscritto (già presentato) e volevo chiedere se qualcuno può aiutarmi a costruire un piccolo robot, spero che la sezione sia quella giusta per chiedere e mi scuso qualora non lo fosse.

Ho un obbiettivo molto semplice, voglio che il robot in questione esegua dei click con il mouse e prema dei tasti sulla tastiera. Mi serve per non ricevere un kick per essere rimasto in idle in un gioco free to play.

Vorrei chiedere gentilmente se qualcuno è in grado di aiutarmi a capire cosa posso usare per realizzare questo progetto, se serve un Arduino o altro, con che linguaggio scrivere il programma per dire al robot di eseguire determinate azioni ogni 2-3 minuti.
Non penso sia un'impresa costruire un apparecchio che muove pezzi di plastica/legno (sul lavoro artigianale mi diverto ad assemblare le cose) per premere dei tasti di una tastiera e un mouse posizionati sotto di esso, giusto?

A me basta avere il meccanismo del robot in questione, non ho problemi ad imparare cose nuove, conosco le basi di C/C++ e mi piacerebbe costruire il corpo e le componenti non elettroniche di questo apparecchio, il "contenitore" diciamo. Quello che c'è dentro per me è ignoto.

Per farvi intendere le mie capacità con hardware e software: dopo molti video, guide recensioni pareri e consigli ho assemblato il mio pc da solo, seguendo le istruzioni. Niente di speciale.

Vedo una strada complicata per un lavoro che potrebbe essere semplice
Senza andare a taroccare il driver di tastiera del pc, che esula dallo scopo di questo forum, una tastiera ps2, che passa tramite arduino
Per intenderci,mouse e tastieraps2 che entrano in arduino, vedere librerie apposite, arduino passa le info in uscita verso ps2 del pc, vedere librerie apposite
Ad intervalli regolari arduino "inietta" i tasti che servono.
Anche così è discretamente complicato, un bel malloppo per cominciare

Io la farei più semplice. Prendi un secondo mouse anche vecchio, lo apri, e al posto di un pulsante (ci sono generalmente dei microswitch) ci metti un piccolo relè che, comandato da Arduino, ti faccia un click ad intervalli regolari. Tu lo colleghi ad un'altra porta del PC ed ovviamente quando ti allontani lascerai il puntatore in una zona "innocua". E magari questo click automatico sarà attivato solo quando ti allontani: senza fare cose complicate, potresti mettere su Arduino un pulsante che alla pressione attiva/disattiva la modalità "away".
Ti basta come soluzione o serve anche l'uso della tastiera?

docdoc:
Io la farei più semplice. Prendi un secondo mouse anche vecchio, lo apri, e al posto di un pulsante (ci sono generalmente dei microswitch) ci metti un piccolo relè che, comandato da Arduino, ti faccia un click ad intervalli regolari. Tu lo colleghi ad un'altra porta del PC ed ovviamente quando ti allontani lascerai il puntatore in una zona "innocua". E magari questo click automatico sarà attivato solo quando ti allontani: senza fare cose complicate, potresti mettere su Arduino un pulsante che alla pressione attiva/disattiva la modalità "away".
Ti basta come soluzione o serve anche l'uso della tastiera?

Penso si adatti al mio problema, avevo lasciato il gioco in questione con un puntatore in costante movimento ma mi disconnetteva anche in quel caso, è evidentemente in grado di capire se un puntatore gira in tondo o se si tiene premuto un tasto. Dei click a intervalli (magari implemento una funzione che li rende un po' casuali?) dovrebbero essere sufficienti, o comunque un tentativo più semplice e adatto come primo approccio senza fare un intero (seppur piccolo) braccio meccanico. Sì intanto pensavo davvero di fare un piccolo braccio robotico che premeva wasd a caso ogni 5 minuti.

Il mouse vecchio e "sacrificabile" posso procurarmelo, arduino e relè online immagino, ma non saprei come combinare la cosa, posso imparare ad aprire un mouse e vedere come è fatto dentro, ma sostituire un tasto con un relè e collegarlo ad arduino è una cosa mai vista e penso difficile da trovare in rete (magari mi sbaglio, cercherò).

Voglio dire: Mi piace l'idea e penso risolva il problema (e chiuda il topic suppongo), mi sapresti gentilmente dire come realizzarla? Sono davvero ancora ignorante in materia.

Il relè è a tutti gli effetti un interruttore comandato elettricamente, ma sempre come un interruttore lo puoi immaginare. Se trovi dove è il pulsante del mouse per fare click e ti ci metti in parallelo, quando attivi il relè praticamnete chiudi il bottene che fa clieck e quando disattivi il relè e come se lasci il bottone che fa click.

Guglielmo

Avevo lo stesso problema un anno fa circa e le soluzioni sono 2:

  1. o usi un programma che gestisca macro e passi i comandi al tuo gioco (io usavo Macro Recorder con all'inizio questo comando: IF WINDOW EXISTS : Nome del gioco sul quale vuoi usare la macro), ma dipende se il server a cui sei collegato va a vedere se stai usando macro ed eventualmente banna.

  2. Arduino e un servocomando fissato a una piastra di metallo che prema un tasto (come nella foto che allego)e in questo modo non puoi essere individuato; ricordati che il servo va alimentato da un alimentatore separato(in genere va bene anche un alimentatore per telefonino da 3,7 V, ma dipende dal tipo di servo che usi) per non rischiare di rovinare Arduino.
    Ti allego lo sketch:

#include <Servo.h>

Servo myservo;
int cicli = 25;
int ritardo = 740000;
// ritardo 77 91 143
// guanti 13  cappello 45  pantaloni 99 braccia 72  torso 180333333333
int pos = 0;
int i = 0;

void setup()
{
  pinMode(LED_BUILTIN, OUTPUT);
  digitalWrite(LED_BUILTIN, LOW);
  myservo.attach(9);
  myservo.write(10);
  delay(5000);
  for (i = 0; i < cicli; i += 1) {
    for (pos = 10; pos < 30; pos += 1)
    {
      myservo.write(pos);
      delay(5);
    }
    for (pos = 30; pos >=10; pos -= 1)
    {
      myservo.write(pos);
      delay(5);
    }
    //delay((ritardo+random(1,3))*1000);
    delay( ritardo);
  }
  digitalWrite(LED_BUILTIN, HIGH);
}

void loop()
{

}

Avevo anche introdotto un random in modo che venisse premuto il tasto in modo + "umano".
Ho messo il ciclo nel SETUP in modo che una volta finito il ciclo il servo si fermava, se invece lo vuoi continuo metti il ciclo nel LOOP.

Ciao e buon game