Ton é uma plataforma de desenvolvimento e prototipação baseada no microcontrolador ARM Cortex-M4 32-bit STM32F405. Uma das versões das placas da plataforma Ton possui Bluetooth Low Energy, Wi-Fi, sensores inerciais e carregador de bateria Li-Po. Os detalhes técnicos do hardware foram apresentados no artigo anterior – Ton: nova plataforma de desenvolvimento brasileira.
Com relação ao software, além da API para utilização dos recursos das placas Ton e Ton-Fit, também será fornecido inicialmente suporte ao mbed SDK e ao sistema operacional de tempo real BRTOS (mais detalhes no blog da Ioton).
Neste momento será apresentado como criar um projeto com a plataforma Ton. O ambiente nativo da plataforma será com o editor de texto Atom em conjunto com um package que permite configurar um novo projeto, compilar o código, enviar para a placa e comunicar via USB. Em breve também serão apresentadas maneiras de configurar com outros ambientes (e.g., Eclipse IDE). O desenvolvimento na nuvem por meio do compilador online mbed também encontra-se em estudo.
Montagem:
A seguir o circuito que será utilizado para demonstração.
Passo 1 (criar um novo projeto):
Na toolbar da ioton, clicar em “New Project” e selecionar a versão da placa.
Passo 2 (seleção dos pinos):
- Selecionar as funções dos pinos (INPUT, OUTPUT, ADC, PWM, UART, ENC – encoder de quadratura, DAC, I²C, SPI e SDIO).
- Todos os pinos podem ser configurados como entrada ou saída.
- Todas as entradas suportam interrupção externa.
- São 13 pinos de PWM com cinco grupos diferentes (alguns grupos possuem mais de um canal e são diferenciados pelas letras A, B, C e D). Cada grupo pode ser configurado com uma frequência diferente.
- A resolução do conversor é de 12-bit ou 10-bit. Neste modo a tensão do pino não deve exceder 3,3 V.
- Características dos periféricos como frequência do PWM, resolução do ADC e habilitar interrupção externa, são ajustadas na aba Advanced.
Passo 3
- Caso no passo anterior não seja selecionado nenhum pino, será criado um projeto em branco, do contrário é gerado um template com a inicialização dos periféricos.
- A seguir um código de exemplo para o circuito proposto que controla a intensidade do LED ligado ao pino 13 e o intervalo entre as cores do LED RGB da placa:
// Includes --------------------------------------------------------------------
#include "main.h"
// Private variables -----------------------------------------------------------
Ioton ton_fit;
Ticker flipper_1;
PwmOut led_ex(PIN13);
AnalogIn potentiometer(PIN15);
float potentiometerValue = 0.0;
// Flipper 0.1 s - 10 Hz -------------------------------------------------------
void flip_1( void )
{
// Read potentiometer
potentiometerValue = potentiometer;
// Update duty cycle
led_ex = potentiometerValue;
}
// *****************************************************************************
// MAIN PROGRAM ****************************************************************
int main( void )
{
// Configure function to be attached (flip) and the interval (0.1 second)
flipper_1.attach(&flip_1, 0.1);
// The main LOOP ***********************************************************
while (1)
{
// Add your repeated code here
ton_fit.setLED(RED);
wait(potentiometerValue);
ton_fit.setLED(GREEN);
wait(potentiometerValue);
ton_fit.setLED(BLUE);
wait(potentiometerValue);
ton_fit.setLED(YELLOW);
wait(potentiometerValue);
ton_fit.setLED(CYAN);
wait(potentiometerValue);
ton_fit.setLED(MAGENTA);
wait(potentiometerValue);
ton_fit.setLED(WHITE);
wait(potentiometerValue);
ton_fit.setLED(NONE);
wait(potentiometerValue);
} // end of main LOOP
} // end of main function
Passo 4 (enviar para placa):
Na toolbar da ioton, clicar em “Upload firmware”.
A placa entra em modo bootloader (DFU) automaticamente, transfere o firmware e realiza um reset para executar a aplicação.
Como apoiar o projeto?
Para tirar o projeto do papel está no ar uma campanha no Catarse. Para cada valor de contribuição (a partir de R$ 10) o apoiador recebe uma recompensa, seja um imã com o modelo 2D da placa, chaveiro da startup, ou até as placas com curso online para um início rápido.










Mano, que bagulhinho delicioso esse hum? E pelo código, tá bem alto nivel!