Progetto Arduino

Crea il tuo joystick per i giochi!

Hai notato che non hai un Joystick o si è rotto mentre giochi a casa? Troviamo una soluzione a questo problema con Arduino UNO e Joystick Shield.

Oggi molte aziende progettano e commercializzano Joystick in vari modelli. Come Maker, abbiamo detto perché non creare il nostro Joystick. C’è il modello Arduino Leonardo che Arduino ha sviluppato per tali progetti e ci permette di introdurre Arduino nel computer come tastiera, mouse o altro dispositivo. Ma abbiamo pensato perché non acquistare un prodotto aggiuntivo e valutare l’Arduino UNO che abbiamo, e finalmente abbiamo deciso di fare questo lavoro e siamo stati in grado di dare la stessa funzione al nostro Arduino UNO utilizzando un protocollo chiamato Company over Python.

Cosa c’è nel nostro articolo-Joystick:

  • Materiali necessari
  • Cos’è Python?
  • Qual è il protocollo in azienda?
  • Cos’è la libreria PyFirmata?
  • Cos’è la libreria Pynput?
  • Creiamo il nostro joystick!

Materiali:

Cos’è Python?

È un linguaggio di programmazione sviluppato negli anni ’90 da Guido Van Rossum che vive nei Paesi Bassi. È un linguaggio di script interpretabile orientato agli oggetti indipendente dalla piattaforma che è facile da imparare, supporta la modularità e la leggibilità. Grazie alla sua semplicità e funzionalità, è spesso preferito nelle aree di programmazione.

Qual è il protocollo in azienda-Joystick?

Si tratta di un protocollo sviluppato in azienda per consentire al software del computer di comunicare con i microcontrollori. Il protocollo può essere utilizzato con qualsiasi microcontrollore. Per questo motivo procederemo su questo protocollo nel nostro lavoro.

Cos’è la libreria PyFirmata?

PyFirmata è una libreria Python sviluppata per il protocollo aziendale.

Cos’è la libreria Pynput / a cosa serve?

Pynput consente il controllo del mouse e della tastiera per automatizzare le interazioni del codice Python con altre applicazioni.

1) Installiamo Python.

Python in primo luogo dal sito ufficiale scarichiamo

Eseguiamo e carichiamo il file scaricato.

2) Scarichiamo le nostre librerie.

Scriviamo il seguente comando per aprire il prompt dei comandi e caricare le librerie necessarie.

pip3 install pynput pyfirmata  

3) Carichiamo il nostro codice su Arduino.

Ora dobbiamo caricare il codice che consentirà al nostro Arduino di comunicare con Python. Per accedere a questo codice, avviamo l’applicazione IDE Arduino e carichiamo il file denominato Samples> At Company> At Standard Company sul nostro Arduino.

4) Prepariamo ed eseguiamo il nostro codice Python-Joystick.

Ora eseguiamo l’applicazione IDLE fornita con Python, creiamo un nuovo file e incolliamo il codice seguente nel nostro nuovo file.

NOTA: ho modificato il codice in base al gioco Asphalt 8. Puoi assegnare i tasti necessari per il tuo gioco ai pulsanti che desideri nel modulo, tenendo conto delle istruzioni sul codice.

# -- coding: utf-8 -- 

import pyautogui 
import pyfirmata, pyfirmata.util 
import time 
from pynput.keyboard import Key, Controller 

keyboard = Controller() 

# La porta a cui è collegato Arduino UNO è '/dev/ttyUSB0' scrivi dove ho scritto.

# NOTA: Dato che sto utilizzando un sistema operativo Linux, inizia con "/ dev / ttyUSB0". Inizia in COM per Windows.

# Puoi aprire l'applicazione IDE di Arduino e trovare la tua porta nella sezione delle porte.

board = pyfirmata.Arduino('/dev/ttyUSB0', baudrate=57600) 

iterator = pyfirmata.util.Iterator(board) 

iterator.start() 

# Definiamo la funzione che premerà gli appositi tasti sulla tastiera in base ai valori dei joystick.

# La variabile x è il valore del joystick, la variabile y è il valore alto del joystick (Joystick inclinato a destra o inclinato) 

# Il valore z consente la regolazione del tasto da premere sulla tastiera nel valore basso del joystick (joystick inclinato a sinistra o inclinato).

def klavyekontroljoy(x,y,z): 

    if x > 70: 
        keyboard.press(f"{y}") 
        print(f"{y} tuşu basılı") 

    if x < 70: 
        keyboard.release(f"{y}") 

    if x < 30: 
        keyboard.press(f"{z}") 
        print(f"{z} tuşu basılı") 

    if x > 30: 
        keyboard.release(f"{z}") 

# Definiamo la funzione che premerà i tasti appropriati sulla tastiera in base ai valori dei pulsanti.

# La variabile x permette di impostare il valore del pulsante, la variabile y permette di premere il tasto sulla tastiera al valore alto del pulsante (cioè quando viene premuto).

def klavyekontrolbut(x,y): 
    if x == 0: 
        keyboard.press(f"{y}") 
        print(f"{y} tuşu basılı") 

    if x == 1: 
        keyboard.release(f"{y}") 

time.sleep(1) 

# Asse x del joystick
analog_x = board.get_pin('a:0:i') 
analog_x.enable_reporting() 


# Asse Y del joystick
analog_y = board.get_pin('a:1:i') 
analog_y.enable_reporting() 

# Pulsante A
button_a = board.get_pin('d:2:i') 
button_a.enable_reporting() 

# Pulsante B
button_b = board.get_pin('d:3:i') 
button_b.enable_reporting() 

# Pulsante C
button_c = board.get_pin('d:4:i') 
button_c.enable_reporting() 

# Pulsante D
button_d = board.get_pin('d:5:i') 
button_d.enable_reporting() 

# Pulsante E
button_e = board.get_pin('d:6:i') 
button_e.enable_reporting() 

# Pulsante F
button_f = board.get_pin('d:7:i') 
button_f.enable_reporting() 


time.sleep(1) 
while True: 

    x = int(analog_x.read() * 100) 
    y = int(analog_y.read() * 100) 
    A = int(button_a.read()) 
    B = int(button_b.read()) 
    C = int(button_c.read()) 
    D = int(button_d.read()) 
    E = int(button_e.read()) 
    F = int(button_f.read()) 

    klavyekontroljoy(x,"d","a") 
    klavyekontroljoy(y,"w","s") 
    klavyekontrolbut(A,"f") 
    klavyekontrolbut(B,"b") 
    klavyekontrolbut(C,"v") 
    klavyekontrolbut(D,"r") 
    klavyekontrolbut(E,"C") 
    
#   Termina il ciclo quando viene premuto il tasto F.,
#   Comando per disabilitare il joystick.
    if F == 0: 
        break 

board.exit() 

Ora, dopo aver salvato ed eseguito il nostro codice, il nostro joystick è pronto !!!

Mostra di più

Articoli Correlati

Başa dön tuşu
Kapalı