Hạng B2
4/8/14
264
291
63
Hà nội
tranhchuthap.vn
Chùm chăn hết 1 tuần em đã thành công khiển vô lăng USB sử dụng bo mạch Arduino cho đầu android:
1. Chức năng chính:
- Nhận tối đa 16 nút trên vô lăng;
- Mỗi nút cho phép gán từ 3 chức năng (đầu không root) đến 6 chức năng (đầu đã root): các chức năng có thể thực hiện như: next bài, lùi bài, tăng giảm âm lượng, mở ứng dụng (mở dẫn đường, xem phim, nghe nhạc, gọi khiển giọng nói...v.v.); Các chức năng này gán theo cách bấm: ví dụ (click - bấm đơn, longpress - giữ nút, double click - bấm đúp, double click press - bấm đúp và giữ nút, trible click - bấm 3 lần, trible click press - bấm 3 lần và giữ nút)
- Không can thiệp gì vào hệ thống điện của xe cũng như đầu android, lắp dây KEY1 và Key GND nguyên bản của xe vào mạch và chạy.
- Cần kết hợp phần mềm Remap Button trên CH Play với mạch này để gán chức năng các nút.
Hãy tượng tượng khi đang lái xe, các cụ muốn hiện màn hình dẫn đường bấm một nút, khi đang ở đâu đó muốn về nhà - bấm một nút, khi đang dẫn đường muốn hiện màn hình xem video - bấm một nút nào đó... tất cả trên vô lăng thuận lợi và tiện dụng.

2. Mã nguồn nạp vào arduino:
Mã:
const unsigned int
APin = A0,
DPin = 15;
/**/
byte i;
unsigned int value = 1023,
b[8] = {
1,//Mute
2,//Mode
3,//Vol+
4,//Vol-
5,//Seek+
6,//Seek-
7,//Answer
8//Hangup
},
cs[8] = {
0xE2,//Mute
0xCD,//Mode -> Play/Pause
0xE9,//Vol+
0xEA,//Vol-
0xB5,//Seek+
0xB6,//Seek-
0xB2,//Answer -> Record
0xB7//Hangup -> Stop
},
delta[8];
void setup() {
pinMode(DPin, INPUT);
Consumer.begin();
for (byte i = 0; i < 8; i++) {
delta[i] = 20;}
}
void loop() {
if (value <= (900) || !digitalRead(DPin)) {
for (i = 0; i < 8; i++)
{
if ((value >= (b[i] - delta[i])) && (value < (b[i] + delta[i]))) {
press(cs[i]);
}
else {
releaseAll();
}
}
}
else {
releaseAll();
}
delay(50);
}
 
Chỉnh sửa cuối:
  • Like
Reactions: swear
Hạng C
3/6/08
814
321
63
Ho Chi Minh
otosaigon.com
Chùm chăn hết 1 tuần em đã thành công khiển vô lăng USB sử dụng bo mạch Arduino cho đầu android:
1. Chức năng chính:
  • Nhận tối đa 16 nút trên vô lăng;
  • Mỗi nút cho phép gán từ 3 chức năng (đầu không root) đến 6 chức năng (đầu đã root): các chức năng có thể thực hiện như: next bài, lùi bài, tăng giảm âm lượng, mở ứng dụng (mở dẫn đường, xem phim, nghe nhạc, gọi khiển giọng nói...v.v.); Các chức năng này gán theo cách bấm: ví dụ (click - bấm đơn, longpress - giữ nút, double click - bấm đúp, double click press - bấm đúp và giữ nút, trible click - bấm 3 lần, trible click press - bấm 3 lần và giữ nút)
  • Không can thiệp gì vào hệ thống điện của xe cũng như đầu android, lắp dây KEY1 và Key GND nguyên bản của xe vào mạch và chạy.
  • Cần kết hợp phần mềm Remap Button trên CH Play với mạch này để gán chức năng các nút.
Hãy tượng tượng khi đang lái xe, các cụ muốn hiện màn hình dẫn đường bấm một nút, khi đang ở đâu đó muốn về nhà - bấm một nút, khi đang dẫn đường muốn hiện màn hình xem video - bấm một nút nào đó... tất cả trên vô lăng thuận lợi và tiện dụng.

2. Mã nguồn nạp vào arduino:
Mã:
const unsigned int
APin = A0,
DPin = 15;
/**/
byte i;
unsigned int value = 1023,
b[8] = {
1,//Mute
2,//Mode
3,//Vol+
4,//Vol-
5,//Seek+
6,//Seek-
7,//Answer
8//Hangup
},
cs[8] = {
0xE2,//Mute
0xCD,//Mode -> Play/Pause
0xE9,//Vol+
0xEA,//Vol-
0xB5,//Seek+
0xB6,//Seek-
0xB2,//Answer -> Record
0xB7//Hangup -> Stop
},
delta[8];
void setup() {
pinMode(DPin, INPUT);
Consumer.begin();
for (byte i = 0; i < 8; i++) {
delta[i] = 20;}
}
void loop() {
if (value <= (900) || !digitalRead(DPin)) {
for (i = 0; i < 8; i++)
{
if ((value >= (b[i] - delta[i])) && (value < (b[i] + delta[i]))) {
press(cs[i]);
}
else {
releaseAll();
}
}
}
else {
releaseAll();
}
delay(50);
}
Bác có nhận làm cho các xe khác không?