Meus amigos e eu estamos trabalhando no projeto Flug, um brinquedo bem divertido, similar so FlyBoard.. O projeto evoluiu bastante desde protótipos impossíveis de utilizar até o modelo atual. O jetski utilizado é um Seadoo GTI 130, de 130 HP. Essa potencia é bem abaixo do valor utilizado geralmente com o FlyBoard, onde é comum encontrar jetski com mais de 200 HP. Devido a potência mais baixa é importante otimizar o Flug o máximo possível para a brincadeira não ficar comprometida.
Projeto Flug |
Acreditamos que todas as otimizações mais grosseiras já foram realizadas, e agora estamos partindo para otimizações mais sofiticadas e finas, mas para conseguir avaliar se existe alguma evolução do sistema precisamos agora de uma instrumentação para medir o desempenho, pois somente no olho não é mais possível saber se estamos evoluindo. Para o sistema de aquisição é utilizado um arduino Uno com um módulo bluetooth. Os dados são enviados para uma celular android que faz o log dos dados, que são avaliados posteriormente.
Sistema de aquisição com sensores |
Esquemático (incompleto! Não é a versão final, foram feitas pequenas modificações). |
Sistema de aquisição Arduino Uno + bluetooth HC-05 |
O sistema de aquisição conta com quatro canais analógicos 0 - 5 V ou 4 - 20 mA. Um sensor de pressão 4 - 20 mA e dois sensores de pressão diferencial são utilizados. O sistema ainda conta com um medidor de RPM que vai acoplado à alimentação da bobina da vela. Com estas medidas deve ser possível estimar a potência hidraulica disponível e caracterizar o conjunto motor + turbina + carga do jetski de forma detalhada.
Sensor de RPM acoplado na alimentação da bobina de uma das velas de ignição. |
Os valores obtidos pelo sistema de aquisição são enviados de forma serial, sendo que o primeiro campo é o timestamp da aquisição em mili segundos, seguido pela rotação e por quatro valores de tensão dos canais analógicos. No caso sensor de pressão com saída 4 - 20 mA é convertido para tensão por um resistor de aproximadamente 200 ohms no sistema de aquisição.
Dados recebidos pelo bluetooth / Serial |
O programa no arduino é simples: os dados são enviados periodicamente pela serial, que é convertido pelo módulo bluetooth HC-05. A rotação é obtida com um biblioteca que mede frequencia (FreqCount.h - https://www.pjrc.com/teensy/td_libs_FreqCount.html). Os valores analógicos são obtidos diretamente das portas analógicas. Um exemplo do programa do arduino segue abaixo.
#include <FreqCount.h> const float AD_R1 = 22000.; const float AD_R2 = 110000.; const float ATTENUATION = AD_R1/AD_R2; const float AD_CALIBRATION = (1.1/ATTENUATION)/1023; const float RESISTOR_4_20_MA = 250.; const float FREQ_WINDOW = 1000; unsigned long freq; // the setup routine runs once when you press reset: void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); //Sets analog reference to internal 1.1V analogReference(INTERNAL); //Contador de frequencia FreqCount.begin(FREQ_WINDOW); } // the loop routine runs over and over again forever: void loop() { // Le os valores e envia pela serial. Faz isso intercalado para aproveitar o delay // da serial para ler os ADs Serial.print(millis()); Serial.print(" "); if (FreqCount.available()) { freq = FreqCount.read(); } Serial.print(freq); Serial.print(" "); float vA0 = myAnalogRead(A0); Serial.print(vA0); Serial.print(" "); float vA1 = myAnalogRead(A1); Serial.print(vA1); Serial.print(" "); float vA2 = myAnalogRead(A2); Serial.print(vA2); Serial.print(" "); float vA3 = myAnalogRead(A3); Serial.println(vA3); }
//Converte valor AD para tensao float myAnalogRead(uint8_t pin) { return (analogRead(pin) * AD_CALIBRATION); }
Para aquisição pelo Android foram testados vários aplicativos de terminal para bluetooth HC-05. Todos funcionam razoavelmente mas não atendem 100% o projeto, pois eles não conseguem salvar em arquivo de log os dados recebidos por tempo longo suficiente. Todos os aplicativos avaliados param de salvar quando a tela do celular apaga, ou quando o tempo de aquisição é muito longo (alguns minutos). Um aplicativo dedicado será desenvolvido e será apresentado numa próxima postagem.
Nenhum comentário:
Postar um comentário