» Eletrônicos » Arduino »Aplicativo de painel de controle com seis botões Microsoft Soundscape

Painel de controle do aplicativo Microsoft Soundscape de seis botões




Painel de controle do aplicativo Microsoft Soundscape de seis botões


Usar o aplicativo Microsoft Soundscape (por algum motivo disponível apenas para o sistema operacional iOS), que permite aos cegos navegar no espaço e descobrir o que os rodeia, usando comandos de voz, será ainda mais conveniente se você fizer um controle remoto externo de seis botões proposto por três autores Instructables - Jazz Ang, Ana Liu e Venkatesh Potluri.

A rigor, o Soundscape não é um desenvolvimento da Microsoft Corporation, mas sua divisão chamada Microsoft Research, que está envolvida em experimentos e pesquisas em uma ampla variedade de áreas. Acredita-se que mesmo a atmosfera interna seja completamente diferente do que no resto da corporação.

Os botões no controle remoto:

1 - inicia / interrompe a reprodução de um arquivo de áudio ou vídeo e, quando o aplicativo Soundsdape está sendo executado e sendo executado em segundo plano, também ativa / desativa as notificações de voz desse programa.

2 - som on / off completo, um análogo do botão Mute no controle remoto da TV.

3 - vá para a próxima faixa no reprodutor de áudio ou vídeo e, no programa Soundscape - vá para a próxima notificação de voz.

4 - vá para a faixa anterior ou a notificação de voz.

5 - duplica o botão Início.

6 - controle do modo "Controlador virtual" do sistema operacional iOS (permite usar controles remotos externos, como descrito).

Como pode ser visto no diagrama caseiro, compilados no programa Fritzing, os botões, cada um deles complementado por um resistor de 10 kOhm, são conectados aos terminais 11, 7, 15, 16, 27 e 25 da placa Adafruit Feather nRF52 Bluefruit LE, bastante cara, compatível com Arduino IDE e contém um módulo bluetooth. Ao usar o dispositivo, esta placa é alimentada por um cabo Micro USB padrão do banco de potência e durante a programação - de um PC. Observe que muitos bancos de energia são desligados automaticamente quando o consumo atual é muito baixo e o limite de desligamento depende do modelo.



Depois de montar o design de acordo com o esquema, os assistentes configuram o Arduino IDE para trabalhar com esta placa, conforme mostrado nas duas capturas de tela a seguir:




Tendo configurado tudo, os mestres preenchem o esboço no quadro:

#include 

#define CONTROL_PLAY_PAUSE 0x00CD
#define CONTROL_SCAN_NEXT 0x00B5
#define CONTROL_SCAN_PREVIOUS 0x00B6
#define CONTROL_MUTE 0x00E2
#define AC_FORWARD 0x0225
#definir AC_BACK 0x0224
#define CONSUMER_BROWSER_HOME 0x0223

BLEDis bledis;
BLEHidAdafruit blehid;

bool hasKeyPressed = false;
// conecte os pinos na placa
int playpauseButtonPin = 11;
int muteButtonPin = 7;
int nextButtonPin = 15;
int backButtonPin = 16;
int homeButtonPin = 27;
int switchControlButtonPin = 25;

configuração nula ()
{
  pinMode (playpauseButtonPin, INPUT);
  pinMode (muteButtonPin, INPUT);
  pinMode (nextButtonPin, INPUT);
  pinMode (backButtonPin, INPUT);
  pinMode (homeButtonPin, INPUT);
  pinMode (switchControlButtonPin, INPUT);
  
  Serial.begin (115200);
  enquanto atraso (! Serial) (10); // para nrf52840 com usb nativo

  Bluefruit.begin ();
  Bluefruit.setTxPower (4); // Verifique bluefruit.h para obter os valores suportados
  Bluefruit.setName ("TESTArroundMeBluefruit52");

  // Configurar e iniciar o serviço de informações do dispositivo
  bledis.setManufacturer ("Adafruit Industries");
  bledis.setModel ("Pena de Bluefruit 52");
  bledis.begin ();

  / * Iniciar BLE HID
   * Nota: a Apple requer que o dispositivo BLE deve ter um intervalo mínimo de conexão> = 20m
   * (Quanto menor o intervalo de conexão, mais rápido poderíamos enviar dados).
   * Entretanto, para dispositivos HID e MIDI, a Apple pode aceitar um intervalo mínimo de conexão
   * até 11,25 ms. Portanto, BLEHidAdafruit :: begin () tentará definir o mínimo e o máximo
   * intervalo de conexão de 11,25 ms e 15 ms, respectivamente, para melhor desempenho.
   * /
  blehid.begin ();

  / * Defina o intervalo de conexão (min, max) para o seu valor preferido.
   * Nota: Ele já está definido por BLEHidAdafruit :: begin () para 11.25ms - 15ms
   * min = 9 * 1,25 = 11,25 ms, máx = 12 * 1,25 = 15 ms
   * /
  / * Bluefruit.Periph.setConnInterval (9, 12); * /

  // Configure e comece a anunciar
  startAdv ();
}

void startAdv (void)
{
  // Pacote de publicidade
  Bluefruit.Advertising.addFlags (BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE);
  Bluefruit.Advertising.addTxPower ();
  Bluefruit.Advertising.addAppearance (BLE_APPEARANCE_HID_KEYBOARD);
  
  // Incluir serviço BLE HID
  Bluefruit.Advertising.addService (blehid);

  // Existe espaço suficiente para o nome do desenvolvedor no pacote de publicidade
  Bluefruit.Advertising.addName ();
  
  / * Comece a anunciar
   * - Ative a publicidade automática se desconectada
   * - Intervalo: modo rápido = 20 ms, modo lento = 152,5 ms
   * - O tempo limite do modo rápido é de 30 segundos
   * - Iniciar (tempo limite) com tempo limite = 0 anunciará para sempre (até conectado)
   *
   * Para o intervalo de publicidade recomendado
   * https://developer.apple.com/library/content/qa/qa1931/_index.html
   * /
  Bluefruit.Advertising.restartOnDisconnect (true);
  Bluefruit.Advertising.setInterval (32, 244); // na unidade de 0,625 ms
  Bluefruit.Advertising.setFastTimeout (30); // número de segundos no modo rápido
  Bluefruit.Advertising.start (0); // 0 = Não interrompa a publicidade após n segundos
}

// usando esta função para controlar o telefone
void sendCommand (comando uint16_t) {
  // Verifique se estamos conectados e ligados / emparelhados
  para (uint16_t conn_hdl = 0; conn_hdl  conectada () && conexão-> emparelhada ())
    {
      // Acende o LED vermelho quando começamos a enviar dados
      digitalWrite (LED_RED, 1);
      Serial.println ("Comando de envio ...");

      // Pressione a tecla Enviar
      blehid.consumerKeyPress (conn_hdl, comando);

      // Atraso um pouco entre os relatórios
      atraso (10);

      // Enviar liberação da chave
      blehid.consumerKeyRelease (conn_hdl);

      // Desligue o LED vermelho
      digitalWrite (LED_RED, 0);
      Serial.println ("Comando enviado!");
    }
  }

  atraso (250);
}

// usando esta função para configurar com controle de chave
void sendSwitchControl (comando String) {
  for (int i = 0; i 


No lado do sistema operacional iOS, os assistentes primeiro configuram o pareamento com o controle remoto via Bluetooth:



Então - as funções de todos os botões na seção de acessibilidade:





Depois de garantir que tudo funcione, os assistentes imprimem botões em uma impressora 3D e compartilham os arquivos necessários com os leitores no thingiverse licenciado sob CC-BY 3.0. Essas peças podem ser fabricadas de outras maneiras, ou não fabricadas.

Os dois vídeos a seguir mostram como os mestres testam o controle remoto em ação:





Resta reconstruir o controle remoto da mesma maneira, mas soldando e colocando o resultado no caso, e no iOS instale o aplicativo Soundscape e execute-o em segundo plano, e você poderá usar o dispositivo.
0
0
0

Adicionar um comentário

    • sorrirsorrisosxaxaoknão seiyahoonea
      chefearranhartolosimsim simagressivosegredo
      desculpedançardance2dance3perdãoajudabebidas
      pararamigosbomgoodgoodapitodesmaiarlíngua
      fumaçapalmascraydeclararirônicodon-t_mentionbaixar
      calorirritantelaugh1mdareuniãomoskingnegativo
      not_ipipocapunirlerassustarsustospesquisar
      provocarthank_youistoto_clueumnikagudoconcordar
      malbeeeblack_eyeblum3corargabar-setédio
      censuradobrincadeirasecret2ameaçarvitóriayusun_bespectacled
      sacudirrespektlolpreviubem vindoKrutoyya_za
      ya_dobryiajudantene_huliganne_othodifludproibirfechar
2 comentário
Para posicionar algo montado em uma tábua de pão como um dispositivo acabado, bem, eu não sei ...
Você pode substituir esta "placa bastante cara", por exemplo, por uma ESP32 Mini no valor de 320 rublos. E da placa de ensaio para transferir toda essa economia para a placa de pagamento, pelo menos.

Aconselhamos que você leia:

Entregue-o para o smartphone ...