Muitos não sabem, mas minha formação é em Mecatrônica, pelo Instituto Federal do Ceará. Fiquei muito animado com o lançamento do Android Things e a possibilidade de juntar o meu trabalho com o que estudei na faculdade e resolvi investir meu tempo nessa novidade do Google.
Neste artigo, irei mostrar a vocês como começar a brincar com a Raspberry Pi usando ATOS (meu apelido carinhoso para Android Things OS), que nada mais é do que uma versão do Android adaptada para placas.
O que você precisa?
- Raspberry Pi 3 Model B (não, a versão 1 e 2 não funcionam);
- MicroSD de no mínimo 8Gb;
- Cabo HDMI;
- Tela com entrada HDMI, usei um monitor LG Flatron E2260;
- Cabo Micro USB;
- Cabo Ethernet.
Tem tudo isso em mãos? Vamos começar…
Baixe a última versão disponível da imagem do ATOS neste link. A versão que eu usei, foi esta aqui. Descompacte o zip e grave a imagem no seu cartão microSD. É importante lembrar que ele precisa estar formatado em FAT32. Eu uso MacOS Sierra, então foram necessários os seguintes passos:
- Abra o Menu Apple, naquela maçã lá no canto superior-esquerdo do seu monitor e selecione “Sobre este Mac”;
- Clique em “Relatório do Sistema…”, e em “Hardware”, clique em “USB”;
- Veja onde tem “Card Reader” o nome BSD do seu cartão SD, é algo do tipo “diskn”, onde n deve ser um número – no meu caso era disk1;
- Abra o “Utilitário de Disco” e desmonte a partição do seu cartão SD;
- Abra o terminal e digite a seguinte linha de comando:
sudo dd bs=1m if=CAMINHO_DA_SUA_IMAGEM.img of=/dev/rdiskN;
Note que em em of, você precisa trocar o N pelo número que você viu no nome BSD anteriormente. Em if, você precisa colocar o caminho de onde você descompactou sua imagem. Eu descompactei em downloads mesmo, então meu comando ficou assim:
sudo dd bs=1m if=Downloads/iot_rpi3.img of=/dev/rdisk1.
Caso esse comando não funcione, substitua rdiskN por diskN (não esquecendo de trocar o N pelo o seu número BSD).
Agora, coloque o seu microSD na Raspberry Pi 3.
Se você não usa MacOS, pode ver como criar a imagem do ATOS no cartão microSD nos links a seguir:
Se você não conseguir criar a imagem no cartão, deixa um comentário que tento ajudar.
Ligue sua placa.
Na entrada 3, conecte o cabo HDMI do seu monitor. Na entrada 2, conecte o cabo Ethernet. Na entrada 1, coloque o cabo micro USB (note que a placa necessita de uma amperagem de no mínimo 2A, o ideal é que seja 3A, numa fonte de 5V). Perceba que deixei a fonte por último para evitar ficar pegando na placa com carga e evitar danificá-la. Ela não é tão fácil de danificar, porém, é bom ter cuidado – leia o manual que vem com a Raspberry que tem boas recomendações, é curto e tem em português.
Você já deve estar vendo esta tela de apresentação do Android Things.
Na parte inferior, aparece o seu IP (na imagem está borrado pra vocês não me hackearem), você poderá fazer a conexão do Android Studio com a placa através desse IP, veremos isso mais a frente.
Agora estamos prontos para começar o Hello World! Abra o seu Android Studio (caso não tenha, faça o download aqui) e crie um novo projeto.
Configure o seu projeto como preferir. Veja as imagens das minhas configurações a seguir:
Escolhi o nome HelloWorld_iot para a minha aplicação. Escolha o seu.
Não mude nada nessa etapa e somente clique em Next.
Selecione Empty Activity e clique em Next.
Não mude nada aqui e apenas clique em Finish.
Espere o seu Android Studio terminar de carregar seu projeto. O arquivo activity_main.xml já tem um TextView com um Hello World por default. Agora, só precisamos configurar o arquivo AndroidManifest.xml para configurá-lo como uma aplicação IoT.
No AndroidManifest.xml, a única coisa que você precisa adicionar é o seguinte trecho de código dentro da tag da sua activity:
<intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.IOT_LAUNCHER"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter>
Pronto! Seu Hello World está pronto.
Agora vamos compilar na placa?
Para enviar sua apk para a placa, você vai conectar seu Android Studio com a placa via rede com o adb.
- Localize (⌘ + espaço no Mac) a pasta platform-tools que contém o adb;
- Abra o terminal e entre nessa pasta via comando:
cd CAMINHO_DA_SUA_PASTA/sdk/platform-tools/
Exemplo:
cd /Documents/Developer/Android/sdk/platform-tools/
- Agora execute o comando de conexão:
./adb connect Android.local;
Isso localiza o IP da sua Raspberry, caso haja só uma placa em rede. Caso haja mais de um dispositivo com ATOS na rede, conecte com o IP específico (aquele que a gente viu anteriormente na tela de apresentação do ATOS):
./adb connect <ip_do_raspberry>;
Com isso, sua conexão deve ser estabelecida.
Você também pode conectar via Wi-Fi usando o seguinte comando:
$ adb shell am startservice \ -n com.google.wifisetup/.WifiSetupService \ -a WifiSetupService.Connect \ -e ssid <NOME_DA_REDE> \ -e passphrase <SENHA>
Volte para o Android Studio e clique em Run (o play) e selecione a opção “Unknown Iot_rpi3” e clique em OK.
É isso!
Você fez seu Hello World na Raspberry Pi 3 usando Android Things OS. O resultado será algo como mostra a imagem a seguir.
No seu, o Hello World aparecerá menor; aqui eu aumentei pra ficar mais visível na foto. Agora é só ir brincando com o layout que você deseja.
O Google fornece um repositório com um template de exemplo, caso queira dar uma olhada, clique aqui.
Algo mais?
Quando formos realmente interagir com a placa, ter acesso ao GPIO (General Purpose Input/Output), que são as portas programáveis de entrada e saída de dados da Raspberry, precisaremos adicionar a lib do ATOS nas dependências do Gradle.
dependencies { provided ‘com.google.android.things:androidthings:0.1-devpreview’ }
Continua…
Nos próximos artigos, vamos interagir com leds e botões, então já providencia uma protoboard, uns leds e uns botões.
Até mais.