DIY hovercraft inalámbrica (equipo OZ) (10 / 11 paso)

Paso 10: Añadir el programa de Arduino

Utilice un cable USB para conectar el Arduino al ordenador y utilizar un software de Arduino para cargar los códigos. También puede descargar el código en Github: https://github.com/susanxie123/hovercraft.git

 <p>#include <PS2X_lib.h> <ps2x_lib.h> //for v1.6<br>#include <Servo.h><servo.h> PS2X ps2x; // create PS2 Controller Class Servo ser; //right now, the library does NOT support hot pluggable controllers, meaning //you must always either restart your Arduino after you conect the controller, //or call config_gamepad(pins) again after connecting the controller. int error = 0; byte type = 0; byte vibrate = 0; int oil = 0; float ls=0; float rs=0; void setup(){ ser.attach(3); Serial.begin(57600); pinMode(4,OUTPUT); pinMode(5,OUTPUT); pinMode(6,OUTPUT); pinMode(7,OUTPUT); pinMode(8,OUTPUT); pinMode(9,OUTPUT); digitalWrite(4,HIGH); digitalWrite(6,LOW); digitalWrite(7,HIGH); digitalWrite(8,LOW); analogWrite(5,0); analogWrite(9,0); //CHANGES for v1.6 HERE!!! **************PAY ATTENTION************* error = ps2x.config_gamepad(13,11,10,12, true, true); //setup pins and settings: GamePad(clock, command, attention, data, Pressures?, Rumble?) check for error if(error == 0){ Serial.println("Found Controller, configured successful"); Serial.println("Try out all the buttons, X will vibrate the controller, faster as you press harder;"); Serial.println("holding L1 or R1 will print out the analog stick values."); Serial.println("Go to www.billporter.info for updates and to report bugs."); } else if(error == 1) Serial.println("No controller found, check wiring, see readme.txt to enable debug. visit www.billporter.info for troubleshooting tips"); else if(error == 2) Serial.println("Controller found but not accepting commands. see readme.txt to enable debug. Visit www.billporter.info for troubleshooting tips"); else if(error == 3) Serial.println("Controller refusing to enter Pressures mode, may not support it. "); //Serial.print(ps2x.Analog(1), HEX); type = ps2x.readType(); switch(type) { case 0: Serial.println("Unknown Controller type"); break; case 1: Serial.println("DualShock Controller Found"); break; case 2: Serial.println("GuitarHero Controller Found"); break; } }</servo.h></ps2x_lib.h></p><p>void loop(){ digitalWrite(4,HIGH); digitalWrite(6,LOW); digitalWrite(7,HIGH); digitalWrite(8,LOW); /* You must Read Gamepad to get new values Read GamePad and set vibration values ps2x.read_gamepad(small motor on/off, larger motor strenght from 0-255) if you don't enable the rumble, use ps2x.read_gamepad(); with no values you should call this at least once a second */ if(error == 1) //skip loop if no controller found return; if(type == 2){ //Guitar Hero Controller ps2x.read_gamepad(); //read controller if(ps2x.ButtonPressed(GREEN_FRET)) Serial.println("Green Fret Pressed"); if(ps2x.ButtonPressed(RED_FRET)) Serial.println("Red Fret Pressed"); if(ps2x.ButtonPressed(YELLOW_FRET)) Serial.println("Yellow Fret Pressed"); if(ps2x.ButtonPressed(BLUE_FRET)) Serial.println("Blue Fret Pressed"); if(ps2x.ButtonPressed(ORANGE_FRET)) Serial.println("Orange Fret Pressed"); if(ps2x.ButtonPressed(STAR_POWER)) Serial.println("Star Power Command"); if(ps2x.Button(UP_STRUM)) //will be TRUE as long as button is pressed Serial.println("Up Strum"); if(ps2x.Button(DOWN_STRUM)) Serial.println("DOWN Strum"); if(ps2x.Button(PSB_START)) //will be TRUE as long as button is pressed Serial.println("Start is being held"); if(ps2x.Button(PSB_SELECT)) Serial.println("Select is being held");</p><p> if(ps2x.Button(ORANGE_FRET)) // print stick value IF TRUE { Serial.print("Wammy Bar Position:"); Serial.println(ps2x.Analog(WHAMMY_BAR), DEC); } }</p><p> else { //DualShock Controller float leftspeed = 0; float rightspeed = 0; if(ps2x.Button(PSB_L2)) { digitalWrite(4,LOW); digitalWrite(6,HIGH); } if(ps2x.Button(PSB_R2)) { digitalWrite(7,LOW); digitalWrite(8,HIGH); } if(ps2x.Button(PSB_L1)) { leftspeed=255; } else { leftspeed=0; } if(ps2x.Button(PSB_R1)) { rightspeed=255; } else { rightspeed=0; } if(ps2x.Analog(PSS_LY)>130) { leftspeed=abs((ps2x.Analog(PSS_LY)-128.0)/128.0*255.0); digitalWrite(4,LOW); digitalWrite(6,HIGH); } if(ps2x.Analog(PSS_LY)<110) { leftspeed=abs((ps2x.Analog(PSS_LY)-128.0)/128.0*255.0); digitalWrite(4,HIGH); digitalWrite(6,LOW); } if(ps2x.Analog(PSS_RY)>130) { rightspeed=abs((ps2x.Analog(PSS_RY)-128.0)/128.0*255.0); digitalWrite(7,LOW); digitalWrite(8,HIGH); } if(ps2x.Analog(PSS_RY)<110) { rightspeed=abs((ps2x.Analog(PSS_RY)-128.0)/128.0*255.0); digitalWrite(7,HIGH); digitalWrite(8,LOW); } analogWrite(5,(int)leftspeed); ls=leftspeed; if(rightspeed>250.0){rightspeed=255.0;} analogWrite(9,(int)rightspeed); rs=rightspeed; ps2x.read_gamepad(false, vibrate); //read controller and set large motor to spin at 'vibrate' speed if(ps2x.Button(PSB_START)) //will be TRUE as long as button is pressed Serial.println("Start is being held"); if(ps2x.Button(PSB_SELECT)) Serial.println("Select is being held"); if(ps2x.Button(PSB_PAD_UP)) { //will be TRUE as long as button is pressed Serial.print("Up held this hard: "); leftspeed=255;rightspeed=255; Serial.println(ps2x.Analog(PSAB_PAD_UP), DEC); if(abs(leftspeed - ls)>10) { analogWrite(5,leftspeed); ls=leftspeed; } if(abs(rightspeed-rs)>10) { rs=rightspeed; } } if(ps2x.Button(PSB_PAD_RIGHT)){ Serial.print("Right held this hard: "); Serial.println(ps2x.Analog(PSAB_PAD_RIGHT), DEC); } if(ps2x.Button(PSB_PAD_LEFT)){ Serial.print("LEFT held this hard: "); Serial.println(ps2x.Analog(PSAB_PAD_LEFT), DEC); } if(ps2x.Button(PSB_PAD_DOWN)){ Serial.print("DOWN held this hard: "); Serial.println(ps2x.Analog(PSAB_PAD_DOWN), DEC); } vibrate = ps2x.Analog(PSAB_BLUE); //this will set the large motor vibrate speed based on if (ps2x.NewButtonState()) //will be TRUE if any button changes state (on to off, or off to on) { if(ps2x.Button(PSB_L3)) Serial.println("L3 pressed"); if(ps2x.Button(PSB_R3)) Serial.println("R3 pressed"); if(ps2x.Button(PSB_L2)) Serial.println("L2 pressed"); if(ps2x.Button(PSB_R2)) Serial.println("R2 pressed"); if(ps2x.Button(PSB_GREEN)) Serial.println("Triangle pressed"); } if(ps2x.ButtonPressed(PSB_RED)) { //will be TRUE if butt on was JUST pressed Serial.println("Circle just pressed"); oil=oil+10; } if(ps2x.ButtonPressed(PSB_PINK)) { //will be TRUE if button was JUST pressed Serial.println("square just pressed"); oil=oil-10; } if(ps2x.ButtonPressed(PSB_GREEN)) { //will be TRUE if button was JUST pressed Serial.println("Circle just pressed"); oil=oil+1; } if(ps2x.ButtonPressed(PSB_BLUE)) { //will be TRUE if button was JUST pressed Serial.println("square just pressed"); oil=oil-1; } </p><p> if(ps2x.Button(PSB_L3) || ps2x.Button(PSB_R3)) { ser.write(oil-3); } else { ser.write(oil); } if(ps2x.ButtonReleased(PSB_PINK)) Serial.println("Square just released"); if(ps2x.NewButtonState(PSB_BLUE)) Serial.println("X just changed"); if(ps2x.Button(PSB_L1) || ps2x.Button(PSB_R1)) // print stick values if either is TRUE { Serial.print("Stick Values:"); Serial.print(ps2x.Analog(PSS_LY), DEC); //Left stick, Y axis. Other options: LX, RY, RX Serial.print(","); Serial.print(ps2x.Analog(PSS_LX), DEC); Serial.print(","); Serial.print(ps2x.Analog(PSS_RY), DEC); Serial.print(","); Serial.println(ps2x.Analog(PSS_RX), DEC); } } delay(50); }</p> 

Artículos Relacionados

DIY STC MCU combinada pequeña cámara inalámbrica con OV7670, módulo de transceptor inalámbrico NRF24L01, 2,8" TFT LCD (proporcionar código)

DIY STC MCU combinada pequeña cámara inalámbrica con OV7670, módulo de transceptor inalámbrico NRF24L01, 2,8" TFT LCD (proporcionar código)

porque estoy familiarizado con la exhibición de imagen BMP bajo el sistema de archivos FAT32 y la aplicación de la NRF 2módulo de transceptor inalámbrico 01 4 L. Qué ' más, tengo una cámara OV7670 en mi mano, por lo que decido hacer un proyecto que s
DIY: Revivir muertos NiCd batería herramientas eléctricas inalámbricas

DIY: Revivir muertos NiCd batería herramientas eléctricas inalámbricas

En este video te mostraré cómo hacer batería de NiCd muerta vida de herramientas eléctricas inalámbricas.Las baterías de NiCd mueren a menudo de tal manera que no tome un cargo y tienen cero voltaje. Esto generalmente significa que están en cortocirc
Cargador de batería solar para sus herramientas eléctricas inalámbricas

Cargador de batería solar para sus herramientas eléctricas inalámbricas

Energía solar es una gran manera de llevar electricidad a un sitio alejado del proyecto. Una manera simple de hacer esto es usar un panel solar para cargar las baterías de sus herramientas eléctricas inalámbricas. En este proyecto, voy a mostrar vari
Desconcierto del tesoro abre usando twitter y energía inalámbrica

Desconcierto del tesoro abre usando twitter y energía inalámbrica

Un regalo sorprendente! Mi "víctima" se da tres cajas:Una caja muy pequeña encerrados con cadenas y un candado.Una pequeña caja cerrada con ningunos bolsas de exterior, que está cerrada y tiene una tapa superior reflexiva.Una gran pirata-y la ca
Auriculares Bluetooth DIY [mod inalámbricos Sony MDR-V6]

Auriculares Bluetooth DIY [mod inalámbricos Sony MDR-V6]

Ir inalámbrica con los auriculares bluetooth DIY.PIEZAS NECESARIASAuriculares SONY MDR-V6 (o cualquier auriculares tienes): http://amzn.com/B00001WRSJ?tag=griffhammo-20Receptor Jumbl Bluetooth: http://amzn.com/B00HJBBBL0?tag=griffhammo-20RadioShack 1
Energía inalámbrica alta gama

Energía inalámbrica alta gama

Construir un sistema de transmisión de energía inalámbrica que puede una bombilla de potencia o carga de un teléfono de hasta 2 pies de distancia! Este utiliza un sistema de bobina resonante enviar campos magnéticos de una bobina que transmite a una
De la gama larga, km 1,8, Arduino Arduino comunicación inalámbrica con el HC-12.

De la gama larga, km 1,8, Arduino Arduino comunicación inalámbrica con el HC-12.

En este instructable aprenderá a comunicarse entre Arduinos a larga distancia hasta 1,8 kilómetros en aire abierto.HC-12 es un módulo de comunicación inalámbrico puerto serie que es muy útil, muy potente y fácil de usar.Primero se aprende a hacer una
Energía inalámbrica simple

Energía inalámbrica simple

facilitan la electricidad inalámbrica con este sencillo DIY!Este proyecto utilizará el principio de acoplamiento magnético inductivo para transferir electricidad entre dos bobinas separadas.Paso 1: materialesEn general, este experimento no requiere d
Baja potencia inalámbrica de carga

Baja potencia inalámbrica de carga

Hola y Bienvenidos a mi primer instructivo!Voy a mostrarte cómo hacer tus propios circuitos de carga inalámbricas de baja potencia que te permitirán pasar electricidad a través del aire (o cualquier otro medio no metálico) en distancias cortas. Esto
Wi-Tricity (electricidad inalámbrica)

Wi-Tricity (electricidad inalámbrica)

por favor este Instructable y Sígueme para más cool guías paso a paso.Hecho por Manish Kumar, Minaam Abbas, Mustafa Rashid, Murtaza Tunio y Saad Hirani.Electricidad inalámbrica es una de las más emergentes soluciones a la crisis del poder global. Se
Obtener claves de red inalámbrica

Obtener claves de red inalámbrica

este Instructable le mostrará cómo obtener claves de redes inalámbricas.Paso 1: Lo que usted necesita Lo que usted necesita:1. un equipo que ha sido previamente conectado a la red inalámbrica que desee(esto es porque la clave que se almacena en un ar
Cómo una impresora inalámbrica de red

Cómo una impresora inalámbrica de red

si usted utiliza la vista y tiene una red inalámbrica, entonces te diré que cualquier vieja impresora a una red inalámbrica de la red. debe tener la impresora conectada a un ordenador. Aunque vista chupa tengo 2 ordenadores con vista (degrada la lapt
Inalámbrica de Streaming de Audio y reconocimiento de voz con Arduino

Inalámbrica de Streaming de Audio y reconocimiento de voz con Arduino

en este proyecto conecto mi placa de Arduino a un módulo WiFly (https://www.sparkfun.com/products/10822) de las redes de la vagueación y stream de audio a la PC, para que BitVoicer (http://www.bitsophia.com/BitVoicer.aspx) puede realizar reconocimien
Transmisión inalámbrica barata entre dos Arduinos con infrarrojo

Transmisión inalámbrica barata entre dos Arduinos con infrarrojo

Hola a todosPara un proyecto, estaba buscando una solución barata enviar datos desde un Arduino a otro. El puerto serial ya fue tomado, y mi transmisión (unidireccional) debe ser inalámbrica.Mis investigaciones me ha traído a descubrir este tipo de m