
O repositório Eclipse UPM fornece drivers de software para uma ampla variedade de sensores e atuadores comumente usados. Esses drivers de software interagem com a plataforma de hardware subjacente (ou microcontrolador), bem como com os sensores anexados, através de chamadas para o Eclipse MRAA APIs.
Os programadores podem acessar as interfaces para cada sensor, incluindo o arquivo de cabeçalho correspondente do sensor e instanciando a classe de sensor associada. No caso de uso típico, um construtor inicializa o sensor com base em parâmetros que identificam o sensor, o protocolo de E/S usado e a localização do pino do sensor. A partir do UPM 2.0, a inicialização do sensor também pode ser feita, na maioria dos casos, através de construtores sobrecarregados que aceitam identificadores de string.
Apoiamos adições que implementam as interfaces genéricas C e C ++ fornecidas com as bibliotecas. Com a versão 2.0, o UPM apresenta as seguintes interfaces de sensor:
iAcceleration, iAngle, iButton, iClock, iCollision, iDistance,
iDistanceInterrupter, iEC, iElectromagnet, iEmg, iGas, iGps, iGyroscope,
iHallEffect, iHeartRate, iHumidity, iLight, iLineFinder, iMagnetometer,
iMoisture, iMotion, iOrp, iPH, iPressure, iProximity, iTemperature, iVDiv,
iWater.
A comunidade de desenvolvedores é convidada a propor novas interfaces para os tipos de atuadores.
O projeto UPM está ingressando na Fundação Eclipse como um projeto de IoT do Eclipse. Você pode ler mais sobre isso aqui.
Espera -se que um sensor/atuador funcione como tal (aqui está a API do Acelerômetro MMA7660):
// Instantiate an MMA7660 on I2C bus 0
upm::MMA7660 *accel = new upm::MMA7660(MMA7660_DEFAULT_I2C_BUS,
MMA7660_DEFAULT_I2C_ADDR);
// place device in standby mode so we can write registers
accel-> setModeStandby ();
// enable 64 samples per second
accel-> setSampleRate (MMA7660_AUTOSLEEP_64);
// place device into active mode
accel-> setModeActive ();
while (shouldRun)
{
float ax, ay, az;
accel-> getAcceleration (&ax, &ay, &az);
cout << " Acceleration: x = " << ax
<< " g y = " << ay
<< " g z = " << az
<< " g " << endl;
usleep ( 500000 );
}Navegue pela lista de todos os exemplos.
Amostras multi-sensor para kits iniciantes e especializados podem ser encontrados no repositório IoT-devkit-amostras.
Lista de sensores suportados da documentação da API.
O projeto UPM inclui suporte para vários sensores de grau industrial, atuadores, rádios, protocolos e padrões em uso hoje. Também é altamente integrado ao IDE do Eclipse através da ajuda dos parceiros da fundação. Saiba mais sobre ferramentas.
Encontre notas sobre como instalar o UPM em vários os'es nesta página.
Veja a documentação da construção aqui.
Antes de começar o desenvolvimento, dê uma olhada em nossas convenções de nomenclatura. O nome que você escolhe para um sensor recém -adicionado precisa ser único na biblioteca UPM.
Em seguida, revise o guia de contribuição do projeto.
Certifique -se de adicionar -se como autor em todos os novos arquivos de código enviados. Se você estiver fornecendo uma correção com mudanças significativas, fique à vontade para se adicionar como colaborador. A assinatura de seus compromissos e a aceitação do ECA é obrigatória para fazer novas contribuições para este projeto.
Documentar seu código também é uma grande parte da tarefa. Temos um conjunto estrito de tags usadas para classificar nossos sensores e suas capacidades. Você pode descobrir mais sobre isso em nossa seção sobre como documentar uma API do sensor.
Finalmente, se você realmente deseja garantir consistência com o restante da biblioteca e os repositórios Intel-IoT-Devkit em geral, dê uma olhada no nosso extenso guia do autor.




Mesmo se tentarmos o possível, de vez em quando somos forçados a modificar nossa API de uma maneira que quebre a compatibilidade com versões anteriores. Se você não conseguir compilar código que estava funcionando bem antes de uma atualização da biblioteca, verifique a seção Alterações da API primeiro.
Versão Changelog aqui.
Lista de limitações conhecidas aqui.