zenitheesc / drivers Goto Github PK
View Code? Open in Web Editor NEWCentralized repository for the low level drivers developed by Zenith Aerospace
License: MIT License
Centralized repository for the low level drivers developed by Zenith Aerospace
License: MIT License
O responsável por esse issue deve:
O driver deve ser capaz de enviar e receber pacotes LoRa e FSK com com tamanhos variando de 27 até 61 bytes.
Também deve ser possível selecionar uma "rede" independente, possivelmente utilizando o parâmetro de syncword
, de tal forma que os receptores de uma rede automaticamente descartem pacotes de outra rede.
Criar uma biblioteca contendo pelo menos 1 método de conversão entre pressão e altitude.
Um dos dados mais importantes da sonda é sua altitude. Geralmente temos múltiplos sensores de pressão e temperatura e indiretamente calculamos a altitude. Existem várias maneiras de extrair a informação da altitude, desde o calculo normal, passando por média móvel e filtros FIR até Filtros de Kalman e observadores em geral. Essa biblioteca então deverá conter os métodos disponíveis, começando pela formula padrão.
typedef
para as leituras, contendo a medida de pressão e temperatura.typedef
para o estado atual, representando a altitude estimada e qualquer outro estado inter-medida ou configuração.double
Caurin e Módulo RF LoRa1276F30 - 915MHz - 0,5W - 27dBm
Sensor usado para monitorar a quantidade de carga presente num conjunto de baterias
Protocolo: I2C
Datasheet: PDF
ds2786_t
para conter o i2c utilizado e configurações
ds2786_config_t
ds2786_init
que inicialize um ds2786_t.h
como #define DS2786_<NOME>
Vish, como não dá pra simular, nem dá para comprar módulos baratos, o melhor jeito é com o 3LT, mas como ainda não está pronto e idealmente são necessárias duas pessoas com conhecimento do funcionamento do sensor (uma para escrever a biblioteca e outra para escrever o mock) é melhor esperar e reavaliar meios de testar futuramente.
Uma interface padronizada que seja capaz de abstrair as funções que são específicas de cada plataforma de hardware:
Idealmente cada driver deve precisar apenas #include "platform.h"
e a plataforma deve ser automaticamente selecionada. No caso do STM32 que possui HALs que variam por família, ela também deve ser detectada.
A especificação da interface deve estar disponível para novas plataformas serem adicionadas facilmente.
Platform não funciona com esp32 no arduino IDE
Conflito de nomes da platform com a HAL da ESP32
E22-900M30S
Implementar interface da platform.h
para plataforma Arduino
Caurin e Módulo RF LoRa1276F30 - 915MHz - 0,5W - 27dBm
Criar uma biblioteca genérica de termistores para que outros drivers possam utilizar. A biblioteca não deve depender da forma que as medidas foram adquiridas, seja diretamente via ADC, ou um amplificador/conversor externo. Também não deve depender da plataforma.
Primeiro deve ser determinado o estado da biblioteca, ou seja, qual informação é de escopo global, versus local de uma função. Caso haja um estado global, não é recomendado utilizar variáveis globais. É melhor criar uma struct com esse estado e ela pode ser passada em cada chamada de função. Isso evita problemas caso tenhamos mais de um termistor de tipo diferente.
Uma vez sabendo qual informação pertence a qual escopo, já dá pra identificar as funções, geralmente acaba sendo:
init
measure
Lembrando que toda função da biblioteca deve começar com o nome dela, sugestão: thermistor_*
.
Como estamos lidando com medidas físicas, é importante deixar explicito as unidades.
Idealmente, toda constante não óbvia deve ter um nome com um #define
no .h
da biblioteca.
Como estamos programando para um microcontrolador, o tamanho em memória das variáveis deve ser ponderado.
É recomendado declarar variáveis no momento que são necessárias, não no inicio da função.
O responsável por esse issue deve:
O responsável por esse issue deve:
Aplicar filtros passa baixa do chip, focando em frequência de 10Hz
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.