Requisitos:
- tlm ou tablet Android com Bluetooth normal
- Mindstorms EV3 (tb é possível WeDo 2.0 mas ainda não cheguei lá)
- computador com acesso à Net (talvez apenas um tablet com um tamanho decente chegue)
Ir à App Store da Google e instalar o MIT App Inventor 2 Companion - não é obrigatório mas dá jeito.
Aceder por browser à aplicação na Cloud (http://ai2.appinventor.mit.edu/) e começar um novo projecto.
Um projecto tem uma parte "Design" onde arranjamos os objectos que vamos usar e uma parte "Blocks" onde construímos o nosso programa usando os blocos disponibilizados por cada objecto limitando-nos a parametrizâ-los e encaixá-los nos sítios certos. Quase LEGO.
No meu caso, para fazer a Aplicação que controla um motor EV3 com a voz como no video que esta manhã publiquei:
são estes os objectos:
voicecontrol-01 by Jorge Pereira, on Flickre estes os blocos:
voicecontrol-02 by Jorge Pereira, on FlickrOs objectos são:
The designer part of the App:
- 1 TableArrangement com outros 5 objectos lá dentro, dispostos em grelha:
- 1 ListPicker ("Connect")
- 3 Buttons ("Disconnect", "Press+speak" and "Shoot")
- 1 Label
- 1 BluetoothClient
- 1 EV3Motor
- 1 SpeechRecognizer
- 1 Clock
- 1 TextToSpeech
O ListPicker interage com o BluetoothClient para descobrir e conectar o EV3 (que é um EV3 normalíssimo saído da caixa, só foi activada a conectividade Bluetooth - desta vez não uso ev3dev nem wi-fi).
O botão "Press+Speak" interage como o EV3Motor para disparar o canhão cada vez que é dito "fire".
O botão "Shoot" faz o mesmo da maneira clássica.
O botão "Disconnect" termina a sessão Bluetooth.
O Label e o TextToSpeech são usados para apresentar mensagens de texto e lê-las em voz alta.
O relógio é usado para controlar o tempo durante o qual as mensagens de texto são apresentadas.
Já a parte do código não está lá muito bem arrumadas mas faz essencialmente isto:
Quando o utilizar prime "Connect" é-lhe mostrado uma lista com todos os EV3 ao alcance e é estabelecida uma sessão Bluetooth com aquele que for escolhido. Depois disso o botão "Press+Speak" é activado (já o botão "Shoot" está sempre activo... wrong!).
Quando "Press+Speak" é premido o Android pede uma voz de comando. Se "fire" é reconhecido, a App responde "Aye aye, sir!" e dispara o canhão. Se não reconhecer "fire" responde apenas "Sorry?"
Depois é só transferir a App para o Android. Eu costumo usar o Companion de modo que na aplicação online escolho para ser gerado um código de 6 caracteres (tb pode ser um QR Code) que o Companion encarrega-se da transferência e depois da execução.
Quando estou satisfeito crio um APK, é gerado um QR Code que uso para descarregar para o Android e instalar em definitivo no Android.
Hackers de todo o país... vamos ao Hacathon?


