Programando LinkIt One com Arduino IDE

Programando a Linkit One com Arduino IDE 3

Muitos usuários e demais leitores do MakerHero ficaram encantados com a Linkit One. Em tão pouco espaço, ela agrega tantas funcionalidades quanto um pequeno celular. E na apresentação dela destaquei que a mesma pode ser programada pela interface do Arduino. Isso é bem verdade, e será mostrado nesse artigo sobre a Linkit One com Arduino IDE.

Linkit One com Arduino IDE

Ao contrário de algumas outras placas compatíveis com o ecossistema de desenvolvimento Arduino, para programar a Linkit One é preciso instalar os drivers da placa, atualizar o Arduino IDE, atualizar seu bootloader, para então, por fim, poder programá-la com tudo que a ferramenta pode oferecer.

E uma observação importante: esse guia toma por base o uso de um computador com sistema operacional Windows! É possível usar a placa no Linux? Com certeza, mas trata-se de processos que serão mostrados em uma outra ocasião. Vamos então mostrar como configurar todo o ambiente para que você possa usar a Linkit One com Arduino IDE!

Instalando os Drivers da Linkit One

Então, em se tratando do Windows, é importante ter instalado no computador os drivers da placa. Para isso, primeiro certifique-se de ter acesso como administrador à máquina com Windows, e faça o download do arquivo de instalação neste link da MediaTek. Esse arquivo possui uma pasta compactada, chamada “windows-com-port-driver“. Descompacte essa pasta em algum lugar de sua preferência, e execute o arquivo contido dentro dessa pasta, que é o InstallMTKUSBCOMPortDriver.exe.

Instalador dos Drivers da LinkitOne descompactado

A instalação não tem segredo. É o tradicional “próximo-próximo-próximo-instalar”, etc.

Janela do programa de instalação dos drivers da LinkitOne

Terminada a instalação, e antes de plugar a placa, realize as etapas a seguir como uma “precaução”:

  • Abra o Painel de Controle, procure e abra a opção Mudar configurações de instalação de dispositivo.
  • Em Configurações de Instalação de Dispositivo, selecione Não, deixe-me escolher o que fazer. E clique Nunca instalar drivers de software do Windows Update, como mostrado abaixo:

Também, certifique-se de desmarcar Automaticamente obter aplicações e informações do dispositivo providas pelo fabricante.

Antes de finalmente plugar a Linkit One ao computador pelo cabo USB, certifique-se te que ela esteja no SPI Mode, modo controlado pela chave seletora mais ao meio da placa, conforme indicado na imagem adiante. Isso é importante porque esse modo encaminha como será feito o acesso à memória da placa. Para atualizar o Firmware/Bootloader, é preciso que esteja no SPI Mode.

Linkit One em modo SPI

 Chave seletora no modo SPI, agora é a hora de plugar a placa no computador pelo cabo USB.

Inicialmente, os dispositivos vinculados à LinkitOne não serão reconhecidos pelo Windows. Veja abaixo, na janela do Gerenciador de Dispositivos, do Painel de Controle do Windows.

Status dos componentes da LinkitOne antes do reconhecimento de drivers

Todavia, o Windows irá reconhecer os drivers, e irá lhe perguntar sobre a instalação desses drivers. Confirme que SIM, deseja instalar os drivers de dispositivos relacionados.

Passado algum tempo (segundos a minutos, depende do Windows e da sua máquina!), os dispositivos serão então apropriadamente reconhecidos, tendo portas de comunicação Seriais (COM) atribuídas a eles. Veja como ficarão, de acordo com o Gerenciador de Dispositivos.

Dispositivos da LinkitOne reconhecidos pelo Windows

Viram que há 2 portas seriais de comunicação? Dando uma prévia, a importante a ser utilizada no Arduino IDE será sempre a MTK USB Modem Port.

Configurando o Arduino IDE

Agora é a hora de colocarmos todo o setup de configuração da Linkit One com Arduino IDE. Uma boa notícia é que desde as versões 1.6.4 em diante, aproximadamente, o Arduino IDE é capaz de baixar e configurar automaticamente o setup de todo um perfil de placas, com base em um arquivo json informado no menu Preferences.

Sendo assim, para informar o arquivo de setup da Linkit One, abra a janela do Arduino IDE, e vá na opção de menu File, e depois em Preferences.

Caminho do menu de Preferences no Arduino IDE

No campo “Additional Boards Manager URLs“, coloque o link http://download.labs.mediatek.com/package_mtk_linkit_index.json, como mostrado abaixo:

Path json

Veja que se você clicar no ícone ao lado do campo de texto, será aberto uma janela que irá permitir digitar um ou mais links de configuração json.

Janela de URLs adicionais para Board Manager do Arduino IDE

Inserido o link, clique no botão OK para salvar os links informados. O próximo passo agora é instalar todo o ecossistema de desenvolvimento da Linkit One adaptado ao Arduino IDE.

Para essa última etapa dessa parte do processo, vá ao menu Tools. Nesse menu, vá à opção Board, e depois em Boards Manager.

Caminho do Boards Manager no Arduino IDE

Quando clicar em Boards Manager, será aberta uma janela e o Arduino IDE irá atualizar as referências de placas cadastradas na IDE, dentre as quais estão as referências informadas pelo arquivo json inserido pouco tempo atrás. Como as placas/plataformas estão em ordem alfabética, procure o campo da Linkit One (irá estar mais abaixo). No campo da Linkit One, por padrão é selecionada a versão mais recente dos componentes da placa. Dessa forma, sem mais nem menos, clique no botão Install.

Boards Manager
Terá início o processo de download e instalação dos componentes da Linkit One para o Arduino IDE. Terminado o processo, certifique-se de aparecer uma mensagem de “Installed“, no campo em que fica o nome da placa no Boards Manager (veja na mesma imagem acima, mais a direita no campo da Linkit Smart 7688 Duo, tem uma mensagem de INSTALLED).

Atualizando o Bootloader da Placa

Nessa etapa, será preciso mudar a forma como que a Linkit One se comporta com o computador. E antes disso, retire ela do cabo USB, e com ela desligada, deixe a Linkit One no modo Mass Storage, onde pela USB é possível acessar a memória Flash da placa diretamente. O modo Mass Storage é controlado pela primeira chave seletora, da esquerda pra direita, conforme indicado na figura abaixo.

Linkit One modo MS

O próximo passo é selecionar a placa Linkit One no menu Tools, e depois em Board. Veja abaixo como é a seleção.

Boards do Arduino com seleção da Linkit One

Selecionada a “Board” Linkit One, todos os seus utilitários relacionados também serão selecionados pelo Arduino IDE, ou seja, a ferramenta se adapta para lidar com a placa.

Dentre os utilitários disponíveis, está o atualizador de Firmware, ou, em inglês, LinkIt Firmware Updater, que deve ser selecionado no Menu Tools, opção “Programmer“, item “LinkIt Firmware Updater“, como mostrado no caminho adiante.

Caminho para seleção do atualizador de firmware da LinkitOne no Arduino IDE

Agora o Arduino IDE está preparado para gravar o bootloader na placa. Para essa etapa, clique no menu Tools, e por fim em Burn Bootloader.

Opção para Gravação do Bootloader da LinkitOne no Arduino IDE

Após clicar nessa opção, será aberta a janela do LinkIt Firmware Updater. Clique na seta verde, do ícone bem grande à direita da Janela.

Janela de gravação do Linkit Firmware Updater

O programa irá “vasculhar” as USBs presentes no computador, irá identificar a Linkit One presentemente conectada, e iniciará o processo de atualização do firmware da Linkit One. Veja abaixo como ficará a janela de progresso, em uma dada etapa do processo.

Processo de gravação do Bootloader na LinkitOne

Finalizada a atualização do firmware, será exibida uma janela com a mensagem “Download complete”, indicando que tudo correu bem! (UFA!) Clique no botão OK para fechar, e mãos à obra para o próximo passo.

Notificação de que o Bootloader foi gravado com sucesso

Programação Linkit One com Arduino IDE

Terminada a gravação do Bootloader, está tudo certo para a operação normal da placa Linkit One com Arduino IDE, de modo que agora seja possível carregar os programas compilados nela.

Para isso, é preciso virar aquela chave mais à esquerda da placa, próxima à porta USB, para o modo UART (ou também chamado de Modo Boot Normal). Veja na foto como a chave seletora deve ficar:

Linkit One modo UART

Conecte a Linkit One ao computador pelo cabo USB. Certifique-se pelo Gerenciador de Dispositivos de identificar qual a porta COM que é correspondente ao “MTK USB Modem Port“, que no meu caso ficou a porta COM4 (eu reconfigurei minhas portas). A porta indicada pelo MTK USB Modem Port é a porta a ser selecionada no Arduino IDE. No meu caso, marquei a porta COM4.

Seleção da porta COM correspondente ao MTK USB Modem Port (Vide Gerenciador de Dispositivos)
Seleção da porta COM correspondente ao MTK USB Modem Port (Vide Gerenciador de Dispositivos).

Pra esquentar a Linkit One com Arduino IDE, nada como o famoso pisca-Led com Serial, concordam? Copie e cole o código abaixo no novo sketch do Arduino.

 

//Programa: Linkit One com IDE Arduino

int LED_LINKIT = 13;
void setup() {
  //Define sinal do led como saida
  pinMode(LED_LINKIT, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  digitalWrite(LED_LINKIT, HIGH);   // Aciona o LED com nivel ALTO
  Serial.println("LED ACESO");
  delay(1000);                      // Delay de 1 segundo
  digitalWrite(LED_LINKIT, LOW);    // Desativa o LED com nivel BAIXO
  Serial.println("LED APAGADO");
  delay(1000);                      // Delay de 1 segundo
}

Clique no botão Compile & Run. Será iniciado o processo de compilação, e terminado, o código será carregado na placa.

Esses e demais tópicos podem ser vistos (em inglês) no Manual de Usuário da Linkit One.

Gostou deste post da Linkit One com Arduino IDE? Deixe seu comentário logo abaixo.

Faça seu comentário

Acesse sua conta e participe

3 Comentários

  1. Vocês conseguiram por para funcionar o GPRS ?
    Fiz upgrade de firmware e não conecta, testei com chips de operadoras diferentes sem sucesso até o momento.

  2. Fantástico … Linkit One rodando direitinho !!!

    1. Boa Reinaldo!

      Você já deu uma olhadinha no nosso fórum? Pode ser interessante publicar alguns projetos por lá e tirar eventuais dúvidas também https://www.makerhero.com/forum/

      Abraços!

      André Rocha – Equipe MakerHero