Abro este hilo para comentar (y de paso recordar) algunas cosas que he aprendido mientras realizaba mi ultimo proyecto ( un colectivo estilo Huey)
A la hora de hacer botoneras no hay muchos problemas, basta con elegir los botones,switch o rotaries que mas nos gusten y conectarlos a un pin y GND pero cuando queremos construir un eje (colectivo. gases o joystick) la cosa se complica un poco mas.
Necesitamos un componente electronico que varie la tension de salida a medida que movemos el eje y que tenga precision a los cambios para que el movimiento sea fluido.Vamos a verlos...
Componentes para construir ejes.
Potenciometros.
Clasico componente que podeis ver en mandos de volumen (tiene un minimo y un maximo de giro), tambien los pueden traer los joysticks mas baratos.No obstante los fabricantes de hardware los montan de giro limitado a 60º o lo que necesiten y los genericos de venta al publico son de 270-300º
Tienen 3 "patas" +5v/GND/Out son simplemente resistencias variables que cambian segun lo giramos dejando pasar mas o menor voltaje.
En el lado negativo tenemos que se desgantan con el uso perdiendo precision y que necesitamos algun tipo de engranaje desmultiplicador para pasar de los 300º a los que necesitemos.Yo use uno en el Throttle del colectivo y lo arregle con unos engranajes de plastico.

Sensores Hall
Este componente es un sensor de campos magneticos que varia la tension de salida segun la posicion de los polos de un iman.Seria la "actualizacion" del potenciometro.
Este se usa en la mayoria de joysticks actuales asi como aceleradores electronicos y en componentes de automoviles.Al no tener rozamiento no se desgasta y su precision puede ser muy alta.
Para un eje necesitamos un sensor Hall lineal de alta precision como los Allegro A1324 y Honeywell 95A de 5,0 mV/G
En la parte negativa esta el hecho de que tenemos que ser precisos colocando el/los imanes para delimitar el movimiento.Nuevamente en aceleradores electronicos usan imanes curvos de polarizacion lineal construidos con el arco de movimiento que necesitan pero no los he econtrado a la venta.
Asi que en la construccion de joysticks se suelen usar imanes de cubo (de neodimio) para limitar el recorrido del eje.Asi se usaria con dos imanes...

Tambien se puede usar uno solo colocandolo con precision, en este video pueden verse ambos metodos.
En la imagen podeis ver varios imanes, a la izquierda un cubo de neodimio (con los polos señalados) pegado a una carcasa de boli bic.A la derecha del todo un iman de arco que sque de un acelerador (pegado a una tablilla para usar en un eje)

Al conectarlos a una placa controladora (ahi tengo una Arduino con MMjoy2 pero vale cualquiera) aparecera como un eje de joystick , al mover el iman de norte a sur veremos como el eje y sus valores van cambiando.
En Arduino como el sensor interno es de 10 bits seran de un rango aproximado de 0 a 1024 bits, que no esta mal aunque los hotas mas modernos pueden tener 12,14 o hasta 16 bits (esto ultimo es posiblemente exagerado e innecesario).
Si queremos mas precision tendriamos que conectar a la placa un conversor analogico-digital externo, MMjoy2 soporta varios como el comunmente usado TLE5010 y varios de la serie MCP3200.Arduino soporta ADS1115 pero tendriamos que usar la libreria Arduino Joystick.
Sensores de posicion de efecto Hall
Otra opcion interesante (que aun no he probado ) son estos sensores de posicion que usa la industria del automovil, son basicamente un sensor hall con sus imanes "encapsulado" en una carcasa como un potenciometro, conectar y listo.
Desventajas, son mas caros, no mucho sobre 20€ mas gastos de envio.Vienen configurados en varios angulos ( no siempre estan disponibles todos) y tienes que adquirir el que mas se acerque a tu configuracion.
Seria la serie Bi Tech 6127 ,podemos comprarlos aqui
El 6127V1A60L.5 tiene un giro de 60º el /6127V1A180L-5F es de 180º

Otros sensores
Existen otros sensores pero son principalmente industriales como los magnetoresistivos (combinacion de magneticos pero sin problemas de interferencias) que usan empresas como y Virpil.
Algo he visto por ahi a la venta como el Melexis MLX90333 pero en muchos casos es necesario hardware especifico para programarlos.

