» อิเล็กทรอนิกส์ » Arduino »แอพพลิเคชั่นแผงควบคุมหกปุ่ม Microsoft Soundscape

แผงควบคุมแอพ Microsoft Soundscape หกปุ่ม




แผงควบคุมแอพ Microsoft Soundscape หกปุ่ม


การใช้แอปพลิเคชั่น Microsoft Soundscape (ด้วยเหตุผลบางอย่างเท่านั้นสำหรับระบบปฏิบัติการ iOS) ซึ่งช่วยให้คนตาบอดนำทางไปในอวกาศและค้นหาสิ่งที่อยู่รอบตัวพวกเขาโดยใช้เสียงเตือนจะสะดวกยิ่งขึ้นถ้าคุณทำการควบคุมระยะไกลหกปุ่มภายนอกที่เสนอโดยผู้เขียนสามคน อังอาน่าหลิวและเว็นเคเตช Potluri

Soundscape พูดอย่างเคร่งครัดไม่ใช่การพัฒนาของ Microsoft Corporation แต่เป็นแผนกที่เรียกว่า Microsoft Research ซึ่งมีส่วนร่วมในการทดลองและการวิจัยในหลากหลายสาขา เชื่อว่าแม้บรรยากาศภายในจะมีความแตกต่างอย่างสมบูรณ์กว่าในส่วนที่เหลือของ บริษัท

ปุ่มบนรีโมทคอนโทรล:

1 - เริ่ม / หยุดการเล่นไฟล์เสียงหรือวิดีโอและเมื่อแอปพลิเคชั่น Soundsdape กำลังทำงานและทำงานในพื้นหลังก็เปิด / ปิดการใช้งานการแจ้งเตือนด้วยเสียงจากโปรแกรมนี้

2 - เสียงเปิด / ปิดเต็มรูปแบบอะนาล็อกของปุ่มปิดเสียงที่รีโมททีวี

3 - ไปที่แทร็กถัดไปในเครื่องเล่นเสียงหรือวิดีโอและในโปรแกรม Soundscape - ไปที่การแจ้งเตือนด้วยเสียงถัดไป

4 - ไปที่แทร็กก่อนหน้าหรือการแจ้งเตือนด้วยเสียง

5 - ทำซ้ำปุ่มโฮม

6 - การควบคุมโหมด "ตัวควบคุมเสมือน" ของระบบปฏิบัติการ iOS (อนุญาตให้คุณใช้รีโมทภายนอกตามที่อธิบายไว้)

ดังที่เห็นได้จากแผนภาพ ทำที่บ้านซึ่งรวบรวมในโปรแกรม Fritzing ปุ่มแต่ละปุ่มเสริมด้วยตัวต้านทานแบบดึงขึ้น 10 kOhm เชื่อมต่อกับขั้ว 11, 7, 15, 16, 27 และ 25 ของบอร์ด Adafruit Feather nRF52 Bluefruit LE ที่เข้ากันได้กับ Arduino IDE และมีโมดูลบลูทู ธ เมื่อใช้อุปกรณ์บอร์ดนี้ใช้พลังงานจากสายเคเบิล Micro USB มาตรฐานจากธนาคารพลังงานและเมื่อตั้งโปรแกรม - จากพีซี โปรดทราบว่าธนาคารพลังงานหลายแห่งจะปิดโดยอัตโนมัติเมื่อปริมาณการใช้ปัจจุบันต่ำเกินไปและเกณฑ์การปิดเครื่องขึ้นอยู่กับรุ่น



เมื่อประกอบการออกแบบตามแบบแผนแล้วพ่อมดจะกำหนดค่า Arduino IDE ให้ทำงานกับบอร์ดนี้ดังที่แสดงในภาพหน้าจอสองภาพต่อไปนี้:




หลังจากกำหนดค่าทุกอย่างแล้วอาจารย์จะเติมร่างลงในกระดาน:

#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 CONSUMER_BROWSER_HOME 0x0223

BLEDis bledis;
BLEHid ผลไม้ที่มีเลือดออก

บูล hasKeyPressed = false;
// เชื่อมต่อพินในกระดาน
int playpauseButtonPin = 11;
int muteButtonPin = 7;
int nextButtonPin = 15;
int backButtonPin = 16;
int homeButtonPin = 27;
int switchControlButtonPin = 25;

การตั้งค่าเป็นโมฆะ ()
{
  pinMode (playpauseButtonPin, INPUT);
  pinMode (muteButtonPin, INPUT);
  pinMode (nextButtonPin, INPUT);
  pinMode (backButtonPin, INPUT);
  pinMode (homeButtonPin, INPUT);
  pinMode (switchControlButtonPin, INPUT);
  
  Serial.begin (115200);
  ในขณะที่ (! อนุกรม) ความล่าช้า (10); // สำหรับ nrf52840 พร้อม usb พื้นเมือง

  Bluefruit.begin ();
  Bluefruit.setTxPower (4); // ตรวจสอบ bluefruit.h สำหรับค่าที่รองรับ
  Bluefruit.setName ("TESTArroundMeBluefruit52");

  // กำหนดค่าและเริ่มบริการข้อมูลอุปกรณ์
  bledis.setManufacturer ("อุตสาหกรรม Adafruit");
  bledis.setModel ("Bluefruit Feather 52");
  bledis.begin ();

  / * เริ่ม BLE HID
   * หมายเหตุ: Apple ต้องการอุปกรณ์ BLE ต้องมีช่วงเวลาการเชื่อมต่อขั้นต่ำ> = 20m
   * (ยิ่งช่วงเวลาเชื่อมต่อน้อยลงเท่าไหร่เราก็สามารถส่งข้อมูลได้เร็วขึ้น)
   * อย่างไรก็ตามสำหรับอุปกรณ์ HID และ MIDI Apple สามารถยอมรับช่วงเวลาการเชื่อมต่อขั้นต่ำได้
   * สูงถึง 11.25 ms ดังนั้น BLEHidAdafruit :: start () จะพยายามตั้งค่า min และ max
   * ช่วงเวลาการเชื่อมต่อถึง 11.25 ms และ 15 ms ตามลำดับเพื่อประสิทธิภาพที่ดีที่สุด
   * /
  blehid.begin ();

  / * ตั้งค่าช่วงเวลาเชื่อมต่อ (ขั้นต่ำสูงสุด) เป็นค่าที่คุณได้รับ
   * หมายเหตุ: ตั้งค่าโดย BLEHidAdafruit :: เริ่มต้น () ถึง 11.25ms - 15ms
   * min = 9 * 1.25 = 11.25 ms, สูงสุด = 12 * 1.25 = 15 ms
   * /
  / * Bluefruit.Periph.setConnInterval (9, 12); * /

  // ตั้งค่าและเริ่มโฆษณา
  startAdv ();
}

void startAdv (เป็นโมฆะ)
{
  // โฆษณาแพ็คเก็ต
  Bluefruit.Advertising.addFlags (BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE);
  Bluefruit.Advertising.addTxPower ();
  Bluefruit.Advertising.addAppearance (BLE_APPEARANCE_HID_KEYBOARD);
  
  // รวมบริการ BLE HID
  Bluefruit.Advertising.addService (blehid);

  // มีพื้นที่เพียงพอสำหรับชื่อ dev ในแพ็คเก็ตโฆษณา
  Bluefruit.Advertising.addName ();
  
  / * เริ่มการโฆษณา
   * - เปิดใช้งานการโฆษณาอัตโนมัติหากตัดการเชื่อมต่อ
   * - ช่วงเวลา: โหมดเร็ว = 20 ms, โหมดช้า = 152.5 ms
   * - หมดเวลาสำหรับโหมดรวดเร็ว 30 วินาที
   * - เริ่ม (หมดเวลา) พร้อมหมดเวลา = 0 จะโฆษณาตลอดไป (จนกว่าจะเชื่อมต่อ)
   * * * *
   * สำหรับช่วงเวลาโฆษณาที่แนะนำ
   * https://developer.apple.com/library/content/qa/qa1931/_index.html
   * /
  Bluefruit.Advertising.restartOnDisconnect (จริง);
  Bluefruit.Advertising.setInterval (32, 244); // ในหน่วยของ 0.625 ms
  Bluefruit.Advertising.setFastTimeout (30); // จำนวนวินาทีในโหมดรวดเร็ว
  Bluefruit.Advertising.start (0); // 0 = อย่าหยุดการโฆษณาหลังจาก n วินาที
}

// ใช้ฟังก์ชั่นนี้เพื่อควบคุมโทรศัพท์
ถือเป็นโมฆะ sendCommand (คำสั่ง uint16_t) {
  // ตรวจสอบให้แน่ใจว่าเราเชื่อมต่อและผูกมัด / จับคู่แล้ว
  สำหรับ (uint16_t conn_hdl = 0; conn_hdl  เชื่อมต่อ () && การเชื่อมต่อ -> จับคู่ ())
    {
      // เปิด LED สีแดงเมื่อเราเริ่มส่งข้อมูล
      digitalWrite (LED_RED, 1);
      Serial.println ("กำลังส่งคำสั่ง ... ");

      // กดปุ่มส่ง
      blehid.consumerKeyPress (คำสั่ง conn_hdl);

      // หน่วงเวลาระหว่างรายงานเล็กน้อย
      ล่าช้า (10);

      // ส่งการปล่อยกุญแจ
      blehid.consumerKeyRelease (conn_hdl);

      // ปิดไฟ LED สีแดง
      digitalWrite (LED_RED, 0);
      Serial.println ("ส่งคำสั่งแล้ว!");
    }
  }

  ล่าช้า (250);
}

// ใช้ฟังก์ชันนี้เพื่อกำหนดค่าด้วยสวิตช์ควบคุม
ถือเป็นโมฆะ sendSwitchControl (คำสั่ง String) {
  สำหรับ (int i = 0; i 


จากด้านข้างของระบบปฏิบัติการ iOS ตัวช่วยสร้างตั้งค่าการจับคู่กับรีโมทควบคุมผ่านบลูทู ธ ก่อน:



จากนั้น - ฟังก์ชั่นของปุ่มทั้งหมดในส่วนการเข้าถึง:





หลังจากตรวจสอบให้แน่ใจว่าทุกอย่างใช้งานได้ปุ่มพิมพ์พ่อมดก็จะกดบนเครื่องพิมพ์ 3D และแชร์ไฟล์ที่จำเป็นกับผู้อ่าน ในสิ่งต่าง ๆ ได้รับอนุญาตภายใต้ CC-BY 3.0 ชิ้นส่วนเหล่านี้สามารถทำในวิธีอื่นหรือไม่ทำเลยก็ได้

วิดีโอสองรายการต่อไปนี้แสดงวิธีที่นายทดสอบการทำงานของรีโมท:





มันยังคงสร้างรีโมตคอนโทรลในลักษณะเดียวกัน แต่โดยการบัดกรีและใส่ผลลัพธ์ในเคสและใน iOS ให้ติดตั้งแอปพลิเคชั่น Soundscape แล้วรันในพื้นหลังและคุณสามารถใช้อุปกรณ์ได้
0
0
0

เพิ่มความคิดเห็น

    • รอยยิ้มรอยยิ้มxaxaตกลงdontknowyahooNea
      นายรอยขีดข่วนคนโง่ใช่ใช่ใช่ก้าวร้าวลับ
      ขอโทษเต้นdance2dance3ให้อภัยช่วยเหลือเครื่องดื่ม
      หยุดเพื่อนดีgoodgoodนกหวีดหน้ามืดตามัวลิ้น
      ควันการตบมือเครย์ประกาศเป็นขี้ปากดอน t_mentionดาวน์โหลด
      ความร้อนโมโหlaugh1ภาคตะวันออกเฉียงเหนือประชุมmoskingเชิงลบ
      not_iข้าวโพดคั่วลงโทษอ่านทำให้ตกใจกลัวค้นหา
      ยั่วยุthank_youนี้to_clueumnikรุนแรงเห็นด้วย
      ไม่ดีbeeeblack_eyeblum3หน้าแดงโม้ความเบื่อ
      เซ็นเซอร์การหยอกล้อsecret2ขู่ชัยชนะYusun_bespectacled
      shokrespektฮ่า ๆprevedยินดีต้อนรับkrutoyya_za
      ya_dobryiผู้ช่วยne_huliganne_othodiFLUDห้ามใกล้
2 แสดงความคิดเห็น
ในการวางตำแหน่งบางอย่างที่ประกอบบนเขียงหั่นขนมเป็นอุปกรณ์เสร็จแล้วฉันก็ไม่รู้ ...
คุณสามารถแทนที่ "บอร์ดราคาแพง" แทนด้วย ESP32 Mini มูลค่าประมาณ 320 rubles และจากเขียงหั่นขนมในการถ่ายโอนเศรษฐกิจทั้งหมดนี้ไปยังคณะกรรมการการจ่ายเงินอย่างน้อย

เราแนะนำให้คุณอ่าน:

มอบให้กับสมาร์ทโฟน ...