Tay Điều Khiển PS2 Không Dây

Danh Mục Sản Phẩm: Mạch thu phát IR - RF - 2.4G
Mã sản phẩm: MTP09
275.000 ₫
Mô tả:

Tính năng sản phẩm:   Tay điều khiển PS2 không dây Cho Arduino chất lượng tốt, độ bền cao, khả năng bắt sóng lên đến 10m. Tay cầm điều khiển PS2 sử dụng điện áp 3.3VDC cho cấp nguồn và giao tiếp GPIO  Tay cầm chơi PS2 Wireless này tích hợp chế độ rung đặc trưng […]

Chính sách:
Miễn phí vận chuyển theo đơn đặt hàng trên 2.000.000 ₫

Tính năng sản phẩm:

 

Tay điều khiển PS2 không dây Cho Arduino chất lượng tốt, độ bền cao, khả năng bắt sóng lên đến 10m.
Tay cầm điều khiển PS2 sử dụng điện áp 3.3VDC cho cấp nguồn và giao tiếp GPIO

 Tay cầm chơi PS2 Wireless này tích hợp chế độ rung đặc trưng trong các dòng tay gầm gamepad hiện có trên thị trường. Tay cầm đạt độ nhay cao, nút nhấn êm.

 Tay cầm PS2 Wireless này có 2 cần xoay khá linh hoạt giúp người chơi ứng dụng game cực kỳ chuẩn xác.

Phạm vi hoạt động lên đến 10m

Đặc biệt : tay cầm PS2 có bộ chuyển đổi tín hiệu kết nối phù hợp cho các bạn giao tiếp với vi điều khiển.

 

Thông số kỹ thuật:

 

–  Mã sản phẩm: MTP09

–  Kích thước: như hình

–  Màu sắc: đen

–  Bộ tay cầm sử dụng 2 cục pin 3A.

–  Khối lượng: 200g

 

 

 

 

 

 

 

 

MTP09 Tay Điều Khiển PS2 Không Dây

 

 

 

MTP09 Tay Điều Khiển PS2 Không Dây

 

 

 

MTP09 Tay Điều Khiển PS2 Không Dây

 

 

 

MTP09 Tay Điều Khiển PS2 Không Dây

 

 

 

Các chân nối Tay Điều Khiển PS2 Không Dây 

 

 

 

Tay Điều Khiển PS2 Không Dây các chân nối

 

 

 

Tay Điều Khiển PS2 Không Dây

 

 

Đối với điều khiển robot, chỉ cần dùng các dây sau: Clock, Data, Command, VCC & GND, Attention. Clock,Data,Command,Attention nối với các chân I/O bất kỳ. Chân Data nên được kéo nguồn bằng điện trở từ 1k-10k. Clock: xung, đồng bộ hóa quá trình truyền dữ liệu. Data: dữ liệu từ gamepad về vdk; Command: dữ liệu từ vdk đến gamepad. Attention: Chip select  VCC: 3-5V; GND:0V

 

 

 

 

 

Xe điều kiển bằng tay PS2 không dây

 

 

Trong các kỳ thi robocon, hầu hết các thí sinh đều dùng tay PlayStation để điều khiển robot. Vậy làm sao để sử dụng tay PlayStation ??

 

Ở code dưới, kết nối như sau:

PlayStation 2

Arduino UNO

DATA

13

Command

11

Attention

10

Clock

12

Vcc

5V

GND

GND

 

Code ( ở đây điều khiển động cơ thông qua module L298N ) :

 

  1. #include <PS2X_lib.h>
  2.  
  3. #define PS2_DAT 13 // data
  4. #define PS2_CMD 11 //command
  5. #define PS2_SEL 10 // attention
  6. #define PS2_CLK 12 //clock
  7.  
  8. //#define pressures   true
  9. #define pressures false
  10. //#define rumble      true
  11. #define rumble false
  12. PS2X ps2x; // tạo PS2 điều khiển lớp
  13. int error = 0;
  14. byte type = 0;
  15. byte vibrate = 0;
  16. //Biến cho analog
  17. int temp1;
  18. int temp2;
  19. int temp3;
  20. int temp4;
  21. int temp33;
  22. int temp44;
  23. void setup()
  24. {
  25. //khai báo các chân điều khiển động cơ
  26. pinMode(3, OUTPUT);
  27. pinMode(5, OUTPUT);
  28. pinMode(6, OUTPUT);
  29. pinMode(9, OUTPUT);
  30. Serial.begin(57600);
  31. delay(300);
  32. error = ps2x.config_gamepad(PS2_CLK, PS2_CMD, PS2_SEL, PS2_DAT, pressures, rumble);
  33. if (error == 0) {
  34. Serial.print(“Đã tìm thấy bộ điều khiển “);
  35. Serial.print(“pressures = “);
  36. if (pressures)
  37. Serial.println(“true “);
  38. else
  39. Serial.println(“false”);
  40. Serial.print(“rumble = “);
  41. if (rumble)
  42. Serial.println(“true)”);
  43. else
  44. Serial.println(“false”);
  45. Serial.println(“Hãy thử tất cả các nút;”);
  46. Serial.println(“giữ L1 hoặc R1 sẽ in ra các giá trị analog.”);
  47. }
  48. else if (error == 1)
  49. Serial.println(“Không kết nối đc, thử lại…”);
  50. else if (error == 2)
  51. Serial.println(“Bộ điều khiển tìm thấy nhưng không chấp nhận lệnh”);
  52. else if (error == 3)
  53. Serial.println(“Bộ điều khiển từ chối để vào chế độ Pressures “);
  54. //  Serial.print(ps2x.Analog(1), HEX);
  55. type = ps2x.readType();
  56. switch (type) {
  57. case 0:
  58. Serial.print(“Tay điều khiển không phù hợp “);
  59. break;
  60. case 1:
  61. Serial.print(“Đã tìm thấy DualShock “);
  62. break;
  63. case 2:
  64. Serial.print(“Đã tìm thấy GuitarHero “);
  65. break;
  66. case 3:
  67. Serial.print(“Không dây của Sony DualShock điều khiển tìm thấy “);
  68. break;
  69. }
  70. }
  71. void loop()
  72. {
  73. //Cho về 0 xét lại
  74. temp1 = 0;
  75. temp2 = 0;
  76. temp3 = 0;
  77. temp4 = 0;
  78. if (error == 1)
  79. return;
  80. if (type == 2) {
  81. ps2x.read_gamepad();
  82. }
  83. else { //DualShock Controller
  84. ps2x.read_gamepad(false, vibrate); //read controller and set large motor to spin at ‘vibrate’ speed
  85. if (ps2x.Analog(PSS_LY) > 128) {
  86. temp1 = (ps2x.Analog(PSS_LY) – 128) * 2;
  87. }
  88. else if (ps2x.Analog(PSS_LY) < 128) {
  89. temp2 = abs(ps2x.Analog(PSS_LY) – 128) * 2;
  90. if (temp2 > 255)
  91. temp2 = 255;
  92. }
  93.        else {
  94.              temp2 = 0;
  95.         }
  96.         if (ps2x.Analog(PSS_RX) > 128) {
  97.              temp3 = (ps2x.Analog(PSS_RX) – 128) * 2;
  98.        }
  99.          else if (ps2x.Analog(PSS_RX) < 128) {
  100.              temp4 = abs(ps2x.Analog(PSS_RX) – 128) * 2;
  101.             if (temp2 > 255)
  102.                 temp4 = 255;
  103.          }
  104.        else {
  105.              temp4 = 0;
  106.          }
  107.          //    Serial.println (temp1);
  108.          //    Serial.println (temp2);
  109.          //    Serial.println (temp3);
  110.          //    Serial.println (temp4);
  111.      }
  112.      //Quy định
  113.      // pin 3 – pin 5 1 động cơ bên trái quay tới
  114.     // pin 6 – pin 9 1 động cơ bên phải quay tới
  115.      if ((temp2 > 0) && temp3 == 0 && temp4 == 0) {
  116.          analogWrite(3, temp2);
  117.          digitalWrite(5, LOW);
  118.         analogWrite(6, temp2);
  119.          digitalWrite(9, LOW);
  120.      }
  121.     else {
  122.          if ((temp1 > 0) && temp3 == 0 && temp4 == 0) {
  123.            digitalWrite(3, LOW);
  124.              analogWrite(5, temp1);
  125.            digitalWrite(6, LOW);
  126.              analogWrite(9, temp1);
  127.          }
  128.          else {
  129.              if ((temp2 > 0) && temp4 > 0) {
  130.                  temp44 = (temp2 – temp4);
  131.                  if (temp44 < 0) {
  132.                      temp44 = 0;
  133.                  }
  134.                  analogWrite(3, temp44);
  135.                 digitalWrite(5, LOW);
  136.                  analogWrite(6, temp2);
  137.                  digitalWrite(9, LOW);
  138.              }
  139.              else {
  140.                  if ((temp2 > 0) && temp3 > 0) {
  141.                      temp33 = (temp2 – temp3);
  142.                      if (temp33 < 0) {
  143.                          temp33 = 0;
  144.                      }
  145.                     analogWrite(3, temp2);
  146.                      digitalWrite(5, LOW);
  147.                      analogWrite(6, temp33);
  148.                     digitalWrite(9, LOW);
  149.                  }
  150.                 else {
  151.                      if ((temp1 > 0) && temp4 > 0) {
  152.                         temp44 = (temp1 – temp4);
  153.                         if (temp44 < 0) {
  154.                              temp44 = 0;
  155.                          }
  156.                          analogWrite(3, LOW);
  157.                          digitalWrite(5, temp44);
  158.                         analogWrite(6, LOW);
  159.                         digitalWrite(9, temp1);
  160.                      }
  161.                      else {
  162.                         if ((temp1 > 0) && temp3 > 0) {
  163.                           temp33 = (temp1 – temp3);
  164.                             if (temp33 < 0) {
  165.                                 temp33 = 0;
  166.                             }
  167.                             analogWrite(3, LOW);
  168.                             digitalWrite(5, temp33);
  169.                              analogWrite(6, LOW);
  170.                             digitalWrite(9, temp1);
  171.                         }
  172.                          else {
  173.                              digitalWrite(3, LOW);
  174.                              digitalWrite(5, LOW);
  175.                              digitalWrite(6, LOW);
  176.                              digitalWrite(9, LOW);
  177.                          }
  178.                      }
  179.                  }
  180.              }
  181.          }
  182.      }
  183.  }

 

 

 

 

 

Sau khi bạn đặt mua hàng, chúng tôi sẽ gọi lại cho bạn vào giờ hành chính để xác nhận lại đơn hàng, phí vận chuyển và thời gian giao hàng. Sau khi bạn đồng ý và thanh toán đơn hàng, chúng tôi sẽ tiến hành giao hàng cho bạn. Nếu bạn cần tư vấn hay ngại đặt hàng bạn có thể liên hệ trực tiếp qua hotline 0931.118.199 để chúng tôi hỗ trợ bạn được tốt hơn!