Đánh giá chủ đề:
  • 71 Vote(s) - Trung bình 2.7
  • 1
  • 2
  • 3
  • 4
  • 5
Giao tiếp tay game PS2 điều khiển robot
Bài viết: #1
1. Phần cứng:

Thứ tự dây:
[Image: wiring.jpg]

Đố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

2. Cách truyền nhận dữ liệu:

Gampad và vi điều khiển truyền và nhận từng byte dữ liệu cùng 1 lúc bằng giao tiếp nối tiếp.

Xung
Clock được giữ ở mức cao cho đến khi bắt đầu gửi 1byte. Sau đó, Clock
sẽ được đưa xuống mức thấp để bắt đầu quá trình truyền và nhận dữ liệu
trong thời gian 8 xung Clock. Ở vị trí xung Clock ở cạnh xuống, dữ liệu
trên đường truyền thay đổi. Khi xung Clock ở cạnh lên, dữ liệu được đọc.
Byte có trọng số thấp nhất được truyền trước.

3. Các bước truyền nhận dữ liệu: thông thường trải qua 9 bước.

Bước 1: Vdk gửi 0x01
Bước 2: Vdk gửi 0x42
Bước 3: Vdk gửi 0x00;
Bước 4: Vdk nhận byte thứ 4 (UP,DOWN,RIGHT,LEFT,START,SELECT)
Bước 5: Vdk nhận byte thứ 5 (|_|, O , X , /\ , R1,R2,L1,L2)
Bước 6: Vdk nhận byte thứ 6: Analog bên phải 0x00 = Left 0xFF = Right
Bước 7: Vdk nhận byte thứ 7: Analog bên phải 0x00 = Up 0xFF = Down
Bước 8: Vdk nhận byte thứ 8: Analog bên trái 0x00 = Left 0xFF = Right
Bước 9: Vdk nhận byte thứ 9: Analog bên trái 0x00 = Up 0xFF = Down

* Các nút ấn tích cực mức thấp
Ví dụ: - Phím UP được ấn thì byte thứ 4 nhận được sẽ là 0b11101111
- Phím vuông được ấn thì byte thứ 5 nhận được sẽ là 0b01111111


[Image: ps-joy-bits.jpg]

Như
vậy là đã hoàn tất quá trình giao tiếp. Kiểm tra byte thứ 4 và byte thứ
5 để biết phím nào được ấn. Kiếm tra byte 6,7,8 và 9 để xác định vị trí
cần gạt analog. Sau đó chọn chuyển động phù hợp cho robot. Từ nay chỉ
cần mua tay game về gắn vào là sử dụng, k phải tháo ra nữa.



[Image: Picture001.jpg]
[Image: Picture006.jpg]
[Image: Picture003.jpg]
Nhận thiết kế mạch in ,mạch điện tử theo yêu cầu. Cung cấp mạch nạp 89, Pic, AVR.

[Image: email_icon.gif] :dqnam952@gmail.com
Trả lời
Bài viết: #2
a cho e xin hoi 1 ti
hien e cung dang tim hieu ve gamepad giao tiep voi may tinh nhung em k bit lam the nao de hien thi duoc chuoi cua nut nhan
xin a hay giup do e


Trả lời
Bài viết: #3
e xin a chi e ve van de giao tiep may tinh voi game pad , e dang nghien cuu va rat can su giup do cua a

Trả lời
Bài viết: #4
Chào bạn mấy ngày qua mình bận thi robocon trên sài gòn mới về hôm nay,hiện tại Game pad sony mình mới làm phần giao tiếp giữa tay game và pic để điều khiển robot manual còn giao tiep RS232 với PC thì mình chưa làm.Mình có ý kiến thế này chỉ cần bạn tách được các bit trong 1 gói byte mà tay game gửi lên hoặc xuống thì bạn có thể giao tiếp tay game được rồi,nói thêm bạn dùng lệnh bit_test(ps2data5,6) là bạn có thể tách được bit 6 trong byte thứ 5 của tay game.
Nhận thiết kế mạch in ,mạch điện tử theo yêu cầu. Cung cấp mạch nạp 89, Pic, AVR.

[Image: email_icon.gif] :dqnam952@gmail.com
Trả lời
Bài viết: #5
Clip test hiển thị chuỗi nút bấm lên LCD.



Nhận thiết kế mạch in ,mạch điện tử theo yêu cầu. Cung cấp mạch nạp 89, Pic, AVR.

[Image: email_icon.gif] :dqnam952@gmail.com
Trả lời
Bài viết: #6
a ơi e cũng đang làm giao tiếp ps2 với vđk , nhưng e làm bằng ARM a làm ơn có thế cho e tham khảo code của a không a !! e xin trân thành cảm ơn !!
Trả lời
Bài viết: #7
Anh cho e xin code với PIC được ko ak
Trả lời


Đi tới chuyên mục:


Thành viên đang xem chủ đề: 1 Khách