Códigos e afins
Então, vamos fazer a criança se movimentar, emitir sons e mudar o rosto? O código-fonte basicamente se divide em dois projetos, sendo um (JARVIS) o que vai ser gravado na Linkit ONE e o outro (JARVIS_mgen) é um projeto de apoio (em VB2015) para criar os movimentos e também transformar as imagens criadas em arquivos binários.
Ambos podem ser obtidos pelo Github: https://github.com/WashingtonJunior/Homunculo
O arquivo “JARVIS.ino” pode ser editado e compilado através do Arduino IDE, mas como já recomendei antes, o mais apropriado seria usar o Visual Studio 2015 Community juntamente com o Visual Micro. Se você decidir usar o VS2015, bastará abrir a solução inteira (JARVIS_Solution) e você terá aberto ambos os projetos.
Vale lembrar também que ambos os projetos estão ainda sendo desenvolvidos, portanto muita coisa já mudou e mais ainda mudará. Além disso, como se tratava de um projeto pessoal, que depois decidi publicar, há algumas inconsistências no código (como nomes de variáveis misturadas em Português/Inglês), que pretendo ir ajeitando aos poucos para torná-lo mais conciso. Alguns testes (como do sensor de ultra-sônico) ainda estão presentes, mas nada que afete o funcionamento, desde que as ligações básicas do post anterior tenham sido feitas. Uma observação ao fazer a compilação e upload para a Linkit ONE é que, quando está conectada com o cabo USB, o sketch não começa a ser executado imediatamente após o upload, levando vários minutos para começar, a menos que você abra o Monitor Serial. Como gosto mais do Monitor Serial do Arduino IDE, em detrimento ao do Visual Micro, fico com o Arduino IDE sempre aberto e, após fazer o upload do sketch pelo VS, vou nele e abro o Monitor Serial para que o código comece a ser executado. O bom disso também é que uma série de informações úteis são impressas na serial, então você pode ver se a rede Wi-Fi foi conectada, se o armazenamento/cartão SD/Bluetooth foram corretamente inicializados, etc. Quando não conectado na USB o programa é iniciado imediatamente após ligar (pelo botão PWR_SW).
Voltando aos arquivos, os movimentos (arquivos .seq) podem ser copiados da pasta “JARVIS_mgen\bin\Debug” para uma pasta chamada “jarvis” no armazenamento interno ou em um cartão SD na Linkit ONE. Note que o cartão SD precisa ser, no mínimo, CLASS 10 para funcionar (quebrei a cabeça até descobrir isso), mas por enquanto pode-se usar apenas os 10MB de armazenamento interno porque os arquivos são bem pequenos. Os arquivos de imagem (.img), que estão em “Res\ImgJarvis” também devem ser copiados dentro da pasta “jarvis”. Já fora da pasta “jarvis”, na raiz do armazenamento, devem ser colocados os de áudio (.mp3). Os áudios estão em “Res\AudioJarvis” (não copie a pasta e sim os arquivos dentro dela para a raiz do armazenamento). Caso opte pelo cartão SD, altere as seguintes linhas (no código você encontrará ao contrário):
//#define Drv LFlash // use Internal 10M Flash #define Drv LSD // use SD card
Independente de copiar os arquivos acima no armazenamento, usando o JARVIS_mgen você poderá se conectar através de sua rede sem-fio com a Linkit ONE e controlar os servos para realizar movimentos. Para tanto, lembre-se de alterar o nome da sua rede e a senha no JARVIS.ino antes de fazer o upload para a placa:
char ssid[] = "NOME_DA_SUA_REDE_SEM_FIO"; // your network SSID (name) char pass[] = "SENHA_DA_SUA_REDE_SEM_FIO"; // your network password
Nos próximos posts ensinarei como usar o JARVIS_mgen e gerar os arquivos de imagem.