» Điện tử » Arduino »Ứng dụng bảng điều khiển sáu nút Microsoft Soundscape

Bảng điều khiển ứng dụng Microsoft Soundscape sáu nút




Bảng điều khiển ứng dụng Microsoft Soundscape sáu nút


Sử dụng ứng dụng Microsoft Soundscape (vì một số lý do chỉ có sẵn cho hệ điều hành iOS), cho phép người khiếm thị điều hướng trong không gian và tìm hiểu những gì xung quanh họ, sử dụng lời nhắc bằng giọng nói, sẽ thuận tiện hơn nữa nếu bạn tạo một điều khiển từ xa sáu nút bên ngoài do ba tác giả Inecttables đề xuất - Jazz Ang, Ana Liu và Venkatesh Potluri.

Nói một cách chính xác, Soundscape không phải là sự phát triển của chính Microsoft Corporation, mà là bộ phận của nó có tên Microsoft Research, tham gia vào các thí nghiệm và nghiên cứu trong nhiều lĩnh vực. Người ta tin rằng ngay cả bầu không khí bên trong cũng hoàn toàn khác so với phần còn lại của tập đoàn.

Các nút trên điều khiển từ xa:

1 - bắt đầu / dừng phát lại tệp âm thanh hoặc video và khi ứng dụng Soundsdape đang chạy và chạy ẩn, nó cũng bật / tắt thông báo bằng giọng nói từ chương trình này.

2 - âm thanh bật / tắt đầy đủ, tương tự nút Tắt tiếng trên điều khiển TV.

3 - chuyển đến bản nhạc tiếp theo trong trình phát âm thanh hoặc video và trong chương trình Soundscape - chuyển đến thông báo bằng giọng nói tiếp theo.

4 - đi đến bài hát hoặc thông báo bằng giọng nói trước đó.

5 - nhân đôi nút Home.

6 - điều khiển chế độ "Bộ điều khiển ảo" của hệ điều hành iOS (cho phép bạn sử dụng các điều khiển từ xa bên ngoài như được mô tả).

Như có thể thấy từ sơ đồ tự làm, được biên dịch trong chương trình Fritzing, các nút, mỗi nút được bổ sung bởi điện trở kéo lên 10 kOhm, được kết nối với các đầu nối 11, 7, 15, 16, 27 và 25 của bảng Adefbean Feather nRF52 khá đắt tiền, tương thích với Arduino IDE và chứa một mô-đun bluetooth. Khi sử dụng thiết bị, bo mạch này được cung cấp bởi cáp Micro USB tiêu chuẩn từ ngân hàng điện và khi lập trình - từ PC. Xin lưu ý rằng nhiều ngân hàng điện tự động tắt khi mức tiêu thụ hiện tại quá thấp và ngưỡng tắt phụ thuộc vào kiểu máy.



Sau khi lắp ráp thiết kế theo sơ đồ, các trình hướng dẫn cấu hình Arduino IDE để hoạt động với bảng này, như thể hiện trong hai ảnh chụp màn hình sau:




Sau khi cấu hình mọi thứ, các bậc thầy điền vào bản phác thảo vào bảng:

#include 

#define CONTROL_PLAY_PAUSE 0x00CD
#define CONTROL_SCAN_NEXT 0x00B5
#define CONTROL_SCAN_PREVIOUS 0x00B6
#define CONTROL_MUTE 0x00E2
#define AC_FORWARD 0x0225
#define AC_BACK 0x0224
#define TIÊU DÙNG_BROWSER_HOME 0x0223

BLEDis bledis;
BLEHidAdafbean blehid;

bool hasKeyPression = false;
// kết nối các chân trong bảng
int playpauseButtonPin = 11;
int câmButtonPin = 7;
int nextButtonPin = 15;
int backButtonPin = 16;
int homeButtonPin = 27;
int switchControlButtonPin = 25;

thiết lập void ()
{
  pinMode (playpauseButtonPin, INPUT);
  pinMode (câmButtonPin, INPUT);
  pinMode (nextButtonPin, INPUT);
  pinMode (backButtonPin, INPUT);
  pinMode (homeButtonPin, INPUT);
  pinMode (switchControlButtonPin, INPUT);
  
  Nối tiếp.begin (115200);
  trong khi (! nối tiếp) chậm trễ (10); // cho nrf52840 với usb gốc

  Quả việt quất.begin ();
  Bluefnut.setTxPower (4); // Kiểm tra bluef nhung.h để biết các giá trị được hỗ trợ
  Bluefbean.setName ("TESTArroundMeBluefbean52");

  // Cấu hình và bắt đầu dịch vụ thông tin thiết bị
  bledis.setSản xuất ("Adafbean Industries");
  bledis.setModel ("Bluefnut Feather 52");
  bledis.begin ();

  / * Bắt đầu BLE HID
   * Lưu ý: Apple yêu cầu thiết bị BLE phải có khoảng thời gian kết nối tối thiểu> = 20m
   * (Khoảng thời gian kết nối càng nhỏ, chúng tôi có thể gửi dữ liệu càng nhanh).
   * Tuy nhiên, đối với thiết bị HID và MIDI, Apple có thể chấp nhận khoảng thời gian kết nối tối thiểu
   * lên tới 11,25 ms. Do đó, BLEHidAdaf nhung :: started () sẽ cố gắng đặt min và max
   * khoảng thời gian kết nối đến 11,25 ms và 15 ms tương ứng để có hiệu suất tốt nhất.
   * /
  blehid.begin ();

  / * Đặt khoảng thời gian kết nối (tối thiểu, tối đa) thành giá trị được đánh giá của bạn.
   * Lưu ý: Nó đã được đặt bởi BLEHidAdaf nhung :: started () thành 11,25ms - 15ms
   * phút = 9 * 1,25 = 11,25 ms, tối đa = 12 * 1,25 = 15 ms
   * /
  / * Bluefnut.Periph.setConnInterval (9, 12); * /

  // Thiết lập và bắt đầu quảng cáo
  startAv ();
}

void startAdv (void)
{
  // Gói quảng cáo
  Bluefnut.Ad Quảng cáo.addFlags (BLE_GAP_ADV_FLAGS_LE_ONLY_GENITH_DISC_MODE);
  Quả việt quất.Ad Quảng cáo.addTxPower ();
  Quả việt quất. Quảng cáo.addAppparent (BLE_APPEARANCE_HID_KEYBOARD);
  
  // Bao gồm dịch vụ BLE HID
  Bluefnut.Ad Quảng cáo.addService (blehid);

  // Có đủ chỗ cho tên dev trong gói quảng cáo
  Bluefnut.Ad Quảng cáo.addName ();
  
  / * Bắt đầu quảng cáo
   * - Kích hoạt quảng cáo tự động nếu bị ngắt kết nối
   * - Khoảng thời gian: chế độ nhanh = 20 ms, chế độ chậm = 152,5 ms
   * - Thời gian chờ cho chế độ nhanh là 30 giây
   * - Bắt đầu (hết thời gian) với thời gian chờ = 0 sẽ quảng cáo mãi mãi (cho đến khi được kết nối)
   *
   * Đối với khoảng thời gian quảng cáo được đề xuất
   * https://developer.apple.com/l Library / content / qa / qa1931 / _index.html
   * /
  Bluefnut.Ad Quảng cáo.restartOnDisconnect (đúng);
  Quả việt quất.Ad Quảng cáo.setInterval (32, 244); // tính theo đơn vị 0,625 ms
  Bluefnut.Ad Quảng cáo.setFastTimeout (30); // số giây ở chế độ nhanh
  Quả việt quất. Quảng cáo.start (0); // 0 = Không dừng quảng cáo sau n giây
}

// sử dụng chức năng này để điều khiển điện thoại
void sendCommand (lệnh uint16_t) {
  // Hãy chắc chắn rằng chúng tôi được kết nối và liên kết / ghép nối
  cho (uint16_t Conn_hdl = 0; Conn_hdl  được kết nối () && kết nối-> ghép nối ())
    {
      // Bật đèn LED màu đỏ khi chúng tôi bắt đầu gửi dữ liệu
      kỹ thuật sốWrite (LED_RED, 1);
      Serial.println ("Gửi lệnh ...");

      // Gửi phím bấm
      blehid.consumerKeyPress (Conn_hdl, lệnh);

      // Trì hoãn một chút giữa các báo cáo
      trì hoãn (10);

      // Gửi khóa phát hành
      blehid.consumerKeyRelease (Conn_hdl);

      // Tắt đèn LED màu đỏ
      kỹ thuật sốWrite (LED_RED, 0);
      Serial.println ("Lệnh đã gửi!");
    }
  }

  trì hoãn (250);
}

// sử dụng chức năng này để cấu hình với điều khiển chuyển đổi
void sendSwitchControl (Lệnh String) {
  for (int i = 0; i 


Từ phía hệ điều hành iOS, các thuật sĩ đầu tiên thiết lập ghép nối với điều khiển từ xa qua Bluetooth:



Sau đó - chức năng của tất cả các nút trong phần trợ năng:





Sau khi đảm bảo rằng mọi thứ đều hoạt động, trình hướng dẫn ấn nút in trên máy in 3D và chia sẻ các tệp cần thiết với độc giả trên điều đa dạng được cấp phép theo CC-BY 3.0. Những phần này có thể được thực hiện theo những cách khác, hoặc không được thực hiện ở tất cả.

Hai video sau đây cho thấy các bậc thầy kiểm tra điều khiển từ xa trong thực tế:





Nó vẫn còn để xây dựng lại điều khiển từ xa theo cách tương tự, nhưng bằng cách hàn và đặt kết quả trong trường hợp, và trong iOS cài đặt ứng dụng Soundscape và chạy nó trong nền, và bạn có thể sử dụng thiết bị.
0
0
0

Thêm một bình luận

    • cườinhững nụ cườixaxađược rồikhông biếtyahookhông
      ông chủvết xướcđồ ngốcvângvâng-vânghung hăngbí mật
      xin lỗinhảynhảy2nhảy3ân xágiúp đỡđồ uống
      dừng lạibạn bètốttốt lànhcòingấtlưỡi
      hút thuốcvỗ taycraytuyên bốgiễu cợtdon-t_mentiontải về
      nhiệttôi rấtcười1mdacuộc họpmoskingtiêu cực
      không phảibỏng ngôtrừng phạtđọcsợsợ hãitìm kiếm
      chế nhạocảm ơncái nàyto_cluecựu sinh viêncấp tínhđồng ý
      xấubeeeđen_eyeblum3đỏ mặttự hàobuồn chán
      bị kiểm duyệtdễ chịubí mật2đe dọachiến thắngyusun_bespectacled
      shokrespekthahacó trướcchào mừngkrutoyya_za
      ya_dobryingười trợ giúpne_huliganne_othodifludcấmđóng
2 bình luận
Để định vị thứ gì đó được lắp ráp trên một chiếc bánh mì như một thiết bị đã hoàn thành, tôi không biết ...
Bạn có thể thay thế "bảng khá đắt" này, ví dụ, với một chiếc ESP32 Mini trị giá khoảng 320 rúp. Và từ bảng điều khiển để chuyển tất cả nền kinh tế này sang bảng thanh toán ít nhất.

Chúng tôi khuyên bạn nên đọc:

Đưa nó cho điện thoại thông minh ...