Χρησιμοποιώντας την εφαρμογή Microsoft Soundscape (για κάποιο λόγο διαθέσιμη μόνο για το λειτουργικό σύστημα iOS), η οποία επιτρέπει στους τυφλούς να περιηγούνται στο διάστημα και να ανακαλύπτουν τι είναι γύρω τους, χρησιμοποιώντας φωνητικές προτροπές, θα είναι ακόμα πιο βολικό αν κάνετε εξωτερικό έξι κουμπιών τηλεχειρισμού που προτείνουν τρεις συγγραφείς. Ang, Ana Liu και Venkatesh Potluri.
Αυστηρά μιλώντας, το Soundscape δεν αποτελεί ανάπτυξη της ίδιας της Microsoft Corporation, αλλά η διαίρεσή της με την επωνυμία Microsoft Research, η οποία ασχολείται με πειράματα και έρευνα σε διάφορους τομείς. Πιστεύεται ότι ακόμη και η εσωτερική ατμόσφαιρα είναι εντελώς διαφορετική από ό, τι στην υπόλοιπη εταιρία.
Τα κουμπιά στο τηλεχειριστήριο:
1 - έναρξη / διακοπή αναπαραγωγής ενός αρχείου ήχου ή βίντεο και όταν η εφαρμογή Soundsdape εκτελείται και εκτελείται στο παρασκήνιο, ενεργοποιεί / απενεργοποιεί φωνητικές ειδοποιήσεις από αυτό το πρόγραμμα.
2 - πλήρης ήχος ενεργοποίησης / απενεργοποίησης, αναλογικό του κουμπιού Σίγαση στο τηλεχειριστήριο της τηλεόρασης.
3 - μεταβείτε στο επόμενο κομμάτι στο πρόγραμμα αναπαραγωγής ήχου ή βίντεο και στο πρόγραμμα Soundscape - μεταβείτε στην επόμενη ειδοποίηση φωνής.
4 - μεταβείτε στο προηγούμενο κομμάτι ή φωνητική ειδοποίηση.
5 - Διπλασιάζει το κουμπί Αρχική σελίδα.
6 - έλεγχος του τρόπου λειτουργίας "εικονικού ελεγκτή" του λειτουργικού συστήματος iOS (σας επιτρέπει να χρησιμοποιείτε εξωτερικά τηλεχειριστήρια όπως περιγράφεται).
Όπως φαίνεται από το διάγραμμα σπιτικό, που συντάσσονται στο πρόγραμμα Fritzing, τα κουμπιά, τα οποία συμπληρώνονται με αντίσταση τραβήγματος 10 kOm, συνδέονται με τους ακροδέκτες 11, 7, 15, 16, 27 και 25 της αρκετά ακριβής πλακέτας Adafruit Feather nRF52 Bluefruit LE, η οποία είναι συμβατή με Arduino IDE και περιέχει μια μονάδα bluetooth. Όταν χρησιμοποιείτε τη συσκευή, ο πίνακας αυτός τροφοδοτείται από ένα τυπικό καλώδιο Micro USB από την τράπεζα τροφοδοσίας και κατά τον προγραμματισμό - από έναν υπολογιστή. Λάβετε υπόψη ότι πολλές τράπεζες ισχύος σβήνουν αυτόματα όταν η τρέχουσα κατανάλωση είναι πολύ χαμηλή και το κατώφλι απενεργοποίησης εξαρτάται από το μοντέλο.
Έχοντας συναρμολογήσει το σχέδιο σύμφωνα με το σχέδιο, οι οδηγοί ρυθμίζουν τον Arduino IDE για να δουλέψουν με αυτό το πίνακα, όπως φαίνεται στα ακόλουθα δύο screenshots:
Έχοντας διαμορφώσει τα πάντα, οι πλοίαρχοι συμπληρώνουν το σκίτσο στο διοικητικό συμβούλιο:
#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;
BLEHidAdafruit blehid;
bool hasKeyPressed = ψευδής;
// συνδέστε ακίδες στον πίνακα
int playpauseButtonPin = 11;
int muteButtonPin = 7;
int nextButtonPin = 15;
int backButtonPin = 16;
int homeButtonPin = 27;
int switchControlButtonPin = 25;
void setup ()
{
pinMode (playpauseButtonPin, είσοδος);
pinMode (muteButtonPin, είσοδος);
pinMode (επόμενοButtonPin, INPUT);
pinMode (backButtonPin, INPUT);
pinMode (homeButtonPin, είσοδος);
pinMode (switchControlButtonPin, είσοδος);
Serial.begin (115200);
ενώ (! Serial) καθυστέρηση (10)? // για nrf52840 με εγγενή usb
Bluefruit.begin ();
Bluefruit.setTxPower (4); // Ελέγξτε το bluefruit.h για τις υποστηριζόμενες τιμές
Bluefruit.setName ("TESTArroundMeBluefruit52").
// Διαμόρφωση και έναρξη της υπηρεσίας πληροφοριών συσκευών
bledis.setManufacturer ("Adafruit Industries").
bledis.setModel ("φτερό μπλε φρούτων 52");
bledis.begin ();
/ * Εκκίνηση BLE HID
* Σημείωση: Η Apple απαιτεί συσκευή BLE πρέπει να έχει ελάχιστο διάστημα σύνδεσης> = 20m
* (Όσο μικρότερο είναι το διάστημα σύνδεσης τόσο πιο γρήγορα μπορούμε να στείλουμε δεδομένα).
* Ωστόσο, για συσκευές HID και MIDI, η Apple θα μπορούσε να δεχθεί ελάχιστο διάστημα σύνδεσης
* έως 11,25 ms. Επομένως, το BLEHidAdafruit :: begin () θα προσπαθήσει να ρυθμίσει τα min και max
* διάστημα σύνδεσης σε 11,25 ms και 15 ms αντίστοιχα για καλύτερη απόδοση.
* /
blehid.begin ();
/ * Ρυθμίστε το χρονικό διάστημα σύνδεσης (min, max) με την επιλεγμένη τιμή.
* Σημείωση: Είναι ήδη ρυθμισμένο από BLEHidAdafruit :: begin () έως 11.25ms - 15ms
* min = 9 * 1,25 = 11,25 ms, max = 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 δευτερόλεπτα
* - Έναρξη (timeout) με timeout = 0 θα διαφημίσει για πάντα (μέχρι να συνδεθεί)
*
* Για συνιστώμενο διάστημα διαφήμισης
* https://developer.apple.com/library/content/qa/qa1931/_index.html
* /
Bluefruit.Advertising.restartOnDisconnect (true);
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 όταν αρχίζουμε την αποστολή δεδομένων
ψηφιακή γραφή (LED_RED, 1);
Serial.println ("Αποστολή εντολής ...");
// Αποστολή πλήκτρο πατήστε
blehid.consumerKeyPress (conn_hdl, εντολή);
// Καθυστέρηση λίγο μεταξύ των αναφορών
καθυστέρηση (10).
// Αποστολή απελευθέρωσης κλειδιού
blehid.consumerKeyRelease (conn_hdl);
// Απενεργοποιήστε την κόκκινη λυχνία LED
ψηφιακό γράφημα (LED_RED, 0);
Serial.println ("Η εντολή εστάλη!");
}}
}}
καθυστέρηση (250);
}}
// χρησιμοποιώντας αυτή τη λειτουργία για να ρυθμίσετε τις παραμέτρους με τον διακόπτη ελέγχου
άκυρη sendSwitchControl (εντολή στοιχειοσειράς) {
για το (int i = 0; i
Από την πλευρά του λειτουργικού συστήματος iOS, οι οδηγοί αρχικά ρυθμίζουν την αντιστοίχιση με το τηλεχειριστήριο μέσω Bluetooth:
Στη συνέχεια - οι λειτουργίες όλων των κουμπιών στην ενότητα προσβασιμότητας:
Αφού βεβαιωθείτε ότι όλα λειτουργούν, το κουμπί εκτύπωσης των οδηγών προωθεί έναν τρισδιάστατο εκτυπωτή και μοιράζεται τα απαραίτητα αρχεία με τους αναγνώστες σε κάτι με άδεια χρήσης CC-BY 3.0. Αυτά τα μέρη μπορούν να γίνουν με άλλους τρόπους ή να μην γίνουν καθόλου.
Τα παρακάτω δύο βίντεο δείχνουν πώς οι πλοίαρχοι δοκιμάζουν το τηλεχειριστήριο σε δράση:
Απομένει να ανοικοδομήσουμε το τηλεχειριστήριο με τον ίδιο τρόπο, αλλά με τη συγκόλληση και να βάλουμε το αποτέλεσμα στην περίπτωση, και στο iOS εγκαταστήστε την εφαρμογή Soundscape και τρέξτε την στο παρασκήνιο και μπορείτε να χρησιμοποιήσετε τη συσκευή.