Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
proyecto Arduino
Le lun 16 de mayo de el ao 2016
Siempre que he echado un vistazo a travs de las estadsticas de trfico del sitio web en mi sitio web,
he notado que un claro favorito era el "Controlador Boceto PS2 para los CES y
Stuff" pgina. Tena ganas de escribir un artculo para la revista The Shed y as se propone un
artculo sobre el uso del controlador de PlayStation 2 en proyectos basados en Arduino. Ellos
aceptaron la idea y el artculo escrito posteriormente fue publicado en la edicin de febrero / marzo
de 2016. Que amablemente me han dado permiso para incluir el artculo en mi sitio web y me
proporcion un .pdf versin del artculo como impresa por compartir a travs de mi pgina web.
El artculo en su forma impresa se puede descargar
aqu: Shed_Magazine_Article_PS_controller.pdf
El artculo ms o menos como est redactado en LibreOffice: PS2_to_Arduino_V1b.pdf
No es que hay una diferencia entre ellos que no sea el formato.
Introduccin
Se me ocurri un da mientras estaba diseando una pequea caja con algunos joysticks y un par de
botones para controlar un proyecto mo, que me resultaba familiar. De repente me pregunt por qu
estaba tratando de construir lo que era esencialmente un dispositivo de juego desde cero cuando no
estaban perfectamente buenos dispositivos de juego alrededor que inclua las entradas que estaba
esperando para usar, as como un montn de otros botones y funciones mucho ms all de lo que
necesitaba . Y eran ms barato que el pequeo puado de componentes que iba a tener que comprar
para hacer mi propia.
Ha habido millones de dlares vertido en el desarrollo de los controladores de Playstation, y por lo
que son piezas muy sofisticadas, bien diseados, y de equipos ms resistentes que son ideales para
usar como una interfaz para proyectos de mecatrnica. A pesar de que la consola de juegos
Playstation 2 es ahora una pieza bastante anticuada de los equipos, las Playstation 2 Controlador
clones todava se hacen y se pueden adquirir a travs trademe extraordinariamente barato.
No slo eso, sino que son fciles de conectar a un Arduino. Adems de las dos palancas de mando de
alta calidad, todos los botones son sensibles a la presin, lo que aade an ms funcionalidad al
dispositivo.
Este artculo muestra cmo se conectara un controlador de Playstation 2 a un Arduino, y la
facilidad con que se puede utilizar para controlar varios dispositivos gracias a la Biblioteca de
Arduino PS2Xlib.
La siguiente ilustracin muestra el tapn de Playstation 2, y las etiquetas de pasador. Con el fin de
conectar con el Arduino slo tenemos que conectar los datos, mando, Planta, pines 3.3V, la
atencin, y el reloj. El pasador de motor Rumble slo necesita ser conectado a un suministro 7-9V si
se desea retroalimentacin estruendo.
Playstation 2 Plug prendedores
En la configuracin de parte del dibujo el comando para que el Arduino sabe cmo el
controlador est conectado a ella, parece;
ps2x . config_gamepad ( 5 , 4 , 3 , 2 , falsa , falsa );
donde los nmeros son los pines digitales del Arduino, donde las Playstation 2 pines del controlador
estn conectados de la siguiente manera;
gamepad (reloj, comando, atencin, datos, activar sensibilidad a la presin, vibraciones
habilitado)
Si desea utilizar la funcin de botn de sensibilidad a la presin, en la lnea de comando anterior
debera ajustar esto a "verdadero" y si quera estruendo del motor disponible para proporcionar
retroalimentacin a continuacin, se debe establecer esto a "verdadero" tambin. Para el uso de la
funcin de vibracin por favor mire el ejemplo boceto que viene con la biblioteca PS2X.
Una vez que el controlador est configurado, el Arduino bucles a travs del bosquejo de forma
continua. Una vez por recorrer, el Arduino tiene que comunicarse con el controlador para reunir
todos los datos de entrada. Esto se realiza con el siguiente comando.
ps2x . read_gamepad ();
Ahora podemos leer lo que el control se ha utilizado. Las etiquetas utilizadas en la biblioteca PS2X
son muy lgico. El siguiente diagrama muestra cada uno de los nombres de los botones y palos.
Los botones con las formas de colores tambin pueden hacer referencia a los
nombres PSB_TRIANGLE, PSB_CIRCLE, PSB_CROSS, y PSB_SQUARE.
Para usar la sensibilidad a la presin analgica en las teclas de los nombres son los mismos excepto
por la sustitucin de " PSAB" para " PSB". As que para permitir una lectura desde el botn verde del
tringulo el nombre sera la presin PSAB_GREEN o PSAB_TRIANGLE.
Los botones pueden ser presionados, pulsar y mantener pulsado, o a presin con una presin
variable, por lo que hay un nmero de mtodos que se pueden aplicar a los botones y
joystick. Los mtodos son; Button Pressed, Button, Y Analog. Estos son algunos ejemplos de
cmo se utilizan estos.
ps2x.ButtonPressed(PSB_RED) es una simple pulsacin del crculo rojo botn.
ps2x.Button(PSB_PAD_DOWN) es para el botn de abajo en la superficie que se presiona
y se mantiene.
ps2x.Analog(PSAB_CROSS)es el comando para la medicin de la presin aplicada a la " X "
botn, si la sensibilidad de presin se ha activado. Como se puede ver la " PSAB" forma del
nombre ha sido utilizado para el botn.
ps2x.Analog(PSS_RY)es el comando para obtener lecturas de la stick analgico
derecho en la direccin vertical.
Agruparlos
Para ilustrar cmo funciona esto, es un proyecto de ejemplo. Se hace uso de un motor de corriente
continua, un controlador electrnico de velocidad (en este caso un coche de RC ESC), una serie de
servos, y una matriz de LED diseado para ejecutarse en 7-12V. Si esto llegara a ser aplicado a un
proyecto real, podra ser un coche con la direccin, y dos servos adicionales para control de montaje
en una cmara de giro e inclinacin. Un solo LED no necesitara el transistor, pero he incluido una
matriz LED de 12V y el transistor para ilustrar que el otro alto voltaje y dispositivos de alta corriente
puede ser activado por un sistema de este tipo.
El no es nada exigente sobre el boceto y se puede ejecutar en cualquier Arduino Arduino o clon.
A continuacin se muestra un diagrama del circuito y componentes. El CES suministra 5.6V a los
servos a travs de su conector de control. El CES he utilizado tiene un interruptor en ella que
necesita ser activado antes de que el motor se ejecutar y antes de la electricidad est disponible
para los servos. Aparte de eso, los nicos componentes son las tres resistencias para la conexin con
el controlador de Playstation 2 y el transistor del LED. El condensador probablemente no es
necesario ya que la batera debe ser capaz de entregar un suministro relativamente suave.
Los controles que queremos usar son; un interruptor para la matriz de LED, y los dos joysticks
analgicos para accionar los servos y ESC. Debido a que el ESC "habla" Servo, slo lo tratan como
un servo en el cdigo.
Playstation 2 controles que se utilizan en esta demostracin.
void setup ()
{
ps2x . config_gamepad ( 5 , 4 , 3 , 2 , falsa , falsa );
// pasadores de ajustes y configuraciones: GamePad (reloj, comando,
atencin, datos, Presiones, Rumble)
// Se han deshabilitado la sensibilidad a la presin y hacer ruido en este
caso.
pinMode ( ledPin , SALIDA ); // Establece el ledPin a la salida
// Establecer todos los CES y los servos a una posicin de 90 grados neutra
// esto evita el CES tratando de calibrar.
ESCcontrol . escribir ( 90 );
SteeringServo . escribir ( 90 );
ServoN1 . escribir ( 90 );
ServoN2 . escribir ( 90 );
retardo ( 5000 ); // Cinco segundos de retraso para permitir ESC y el
controlador de
// inicializar completamente.
void loop ()
{
ps2x . read_gamepad (); // Esto tiene que ser llamado al menos una vez por
segundo
// para obtener datos desde el controlador.
Todas las cosas van bien, cuando se conecta este y conecta en la batera, usted debe ser capaz de
empujar el botn tringulo para encender el LED y mover las palancas de mando para mover los
servos y hacer funcionar el motor.
Si no entra automticamente en modo analgico (como se indica por la luz roja en el
controlador), pulse el botn analgico . Esto permitir que las palancas de mando en el
controlador y puesto este asunto.
El circuito y el croquis estn diseados con un ESC coche en mente. Esto significa un comando de
servo de 90 grados es la posicin neutral . La ESCcontrol.write(90);lnea en la instalacin
de rutina establece el acelerador a la posicin neutral para permitir que el ESC para inicializar. Si
est utilizando un control de radio de la aeronave ESC tendr que inicializarla a 0
grados .
Dependiendo de la calidad de la Arduino que est utilizando puede que tenga que tener el USB
conectado al ordenador para alimentar el Arduino. De ordinario, el Arduino debera ser capaz de
correr en el ser 7.2v suministrada desde la batera de NiCd. Si usted tiene una batera 11.1V Li-Po, y
ESC diseado para adaptarse a ella, entonces no debera tener ningn problema.
Observacin final
Con un dispositivo de entrada tan sofisticado como el controlador de Playstation 2, hay una gran
cantidad de diferentes proyectos de mecatrnica que puedan interactuar con. La biblioteca PS2X
hace que sea muy fcil acceder a la gama completa de funciones disponibles desde el controlador de
Playstation 2. Por qu reinventar la rueda cuando ya hay revistas de ultra-alto rendimiento
disponibles a precios ms baratos que un par de componentes?