Você está no 3DFinder
Buscamos em Thingiverse, MakerWorld e Printables ao mesmo tempo para te dar o melhor de cada uma.
Descrição
🔘 Button Box 12 Pulsanti Reroilluminata Ardiuno pro – All-in-One
Compatibile Arduino | Freno a Mano & Cambio Sequenziale DIY
Questa Button Box All-in-One a 12 pulsanti è progettata per simulatori di guida (sim racing, truck sim, farming, flight sim, ecc.) e offre una soluzione compatta, modulare e completamente personalizzabile.
Il progetto è pensato per chi vuole controllo totale sulla configurazione, permettendo all’utente di impostare tutti i parametri direttamente da SIMHUB.
PER AVERLO SENZA SCRITTE BASTA CANCELLARE IL PROFILO COLORE
⚙️ Caratteristiche principali
- 12 pulsanti fisici (momentanei)
- Supporto per:
- Freno a mano analogico o digitale
- Cambio sequenziale (Up / Down)
- Configurazione completamente libera
- Design compatto e ordinato, ideale per postazioni da sim Racing
- Progetto all-in-one: un solo box, massima funzionalità
e progettato con una singola uscita , ma potrete applicare ulteriori fori per altri ingressi ed uscite , io attualmente ho set up con button box al quale e collegato il cambio sequenziale.
🔧 Configurazione Arduino
L’utente può definire liberamente:
- Pin digitali e analogici
- Tipo di ingresso (pulsante, switch, potenziometro, Hall sensor)
- Mappatura dei comandi
- Modalità HID (joystick / button box)
- Sensibilità e inversione degli assi (per freno a mano) codice scitto per cella di carico .
Nessun firmware bloccato: massima libertà di personalizzazione.
🧩 Espandibilità
Il box è predisposto per:
- Collegamento freno a mano esterno
- Collegamento cambio sequenziale
- Eventuali modifiche future (rotary encoder, switch aggiuntivi, ecc.)
🖨️ Stampa 3D
- Progettato per stampa facile e pulita
- Nessun supporto (o supporti minimi, in base alla versione)
- Compatibile con PLA, PETG, ABS
- Viti standard facilmente reperibili
🎮 Utilizzo ideale per
- Sim Racing (Assetto Corsa, iRacing, rFactor, ecc.)
- Euro / American Truck Simulator
- Farming Simulator
- Flight Simulator
- Simulatori personalizzati
📌 CODICE:
Pulsanti (14 totali)
- Un capo del pulsante → GND
- Altro capo → un pin digitale del Pro Micro
- Nel codice uso INPUT_PULLUP (quindi premuto = LOW)
Pin usati (puoi cambiarli):
2,3,4,5,6,7,8,9,10,16(A2),14(A0),15(A1),18(A4),19(A5) = 14 ingressi
HX711 (load cell freno a mano)
- VCC → 5V
- GND → GND
- DT (DOUT) → pin 20 (A6) (sul Pro Micro è digitale utilizzabile)
- SCK → pin 21 (A7)
Librerie da installare (Arduino IDE)
- HX711 (di Bogde)
- Joystick (di Matthew Heironimus) → “Joystick Library”
CODICE ARDUINO SIM HUB READY:
/*
Pro Micro ATmega32U4 (5V 16MHz) - Button Box SimHub
- 12 pulsanti
- 2 pulsanti cambio sequenziale (A0 = UP, A1 = DOWN)
- Nessun asse analogico (solo bottoni)
Cablaggio pulsanti:
PIN -> pulsante -> GND
(INPUT_PULLUP attivo: premuto = LOW)
*/
#include <Joystick.h>
// ---------------- CONFIG ----------------
// 12 pulsanti + 2 shifter = 14 bottoni totali
const uint8_t BTN_COUNT = 14;
// Pulsanti:
// 2,4,6,7,8,9,10,14,15,16,A2,A3
// Cambio:
// A0 = UP
// A1 = DOWN
const uint8_t btnPins[BTN_COUNT] = {
2, 4, 6, 7, 8, 9, 10, 14, 15, 16, A2, A3,
A0, A1
};
// ---------------- OGGETTI ----------------
// Joystick USB: solo bottoni
Joystick_ Joystick(
JOYSTICK_DEFAULT_REPORT_ID,
JOYSTICK_TYPE_JOYSTICK,
BTN_COUNT, 0, // buttons, hats
false, false, false, // X, Y, Z
false, false, false, // Rx, Ry, Rz
false, false, // rudder, throttle
false, false, false // accelerator, brake, steering
);
bool lastBtnState[BTN_COUNT];
unsigned long lastReadMs = 0;
const unsigned long READ_INTERVAL_MS = 5;
// ---------------- SETUP ----------------
void setup() {
for (uint8_t i = 0; i < BTN_COUNT; i++) {
pinMode(btnPins[i], INPUT_PULLUP);
lastBtnState[i] = digitalRead(btnPins[i]);
}
Joystick.begin();
}
// ---------------- LOOP ----------------
void loop() {
if (millis() - lastReadMs < READ_INTERVAL_MS) return;
lastReadMs = millis();
for (uint8_t i = 0; i < BTN_COUNT; i++) {
bool nowState = digitalRead(btnPins[i]); // HIGH = non premuto
if (nowState != lastBtnState[i]) {
lastBtnState[i] = nowState;
Joystick.setButton(i, nowState == LOW);
}
}
}
La calibrazione del freno a mano dipende dal hardware che utilizzate , google comunque e di forte aiuto in questo , in caso usate cella di carico andranno impostati valori a riposo e a tiraggio massimo . in caso di potenziometro e piu semplice e ci sarà un semplice minimo massimo.
Button box w/arduino setup , Handbrake & shift
Publicado em 4 de jan de 2026