Categoria: Firmware

Desenvolvimento de firmware para microcontroladores.

Palavra-chave
Destaque/Sem destaque
Resolvida/Não Resolvida
Aberta/Encerrada
0 votos
0 respostas
103 visualizações

Estou usando um joystick e o Pro Micro para emular o mouse, uso exatamente o mesmo código nas duas plataformas, compila perfeitamente, sem nenhum erro, porém só funciona se eu passar o código via Arduino IDE.

O PlatformIO é uma extensão que uso no VS Code, ele enxerga normalmente os includes, inclusive fiz um código de teste com LED e funcionou normalmente via PlatformIO, porém com o seguinte código, o mesmo só funciona se eu gravar pelo Arduino IDE. Usando o PlatformIO, quando eu clico em cima do include com o Ctrl pressionado, ele abre normalmente os arquivos .h

Eis o código:

/* HID Joystick Mouse Example
   by: Jim Lindblom
   date: 1/12/2012
   license: MIT License - Feel free to use this code for any purpose.
   No restrictions. Just keep this license if you go on to use this
   code in your future endeavors! Reuse and share.

   This is very simplistic code that allows you to turn the
   SparkFun Thumb Joystick (http://www.sparkfun.com/products/9032)
   into an HID Mouse. The select button on the joystick is set up
   as the mouse left click.
 */

#include <Arduino.h>
#include <Mouse.h>
int horzPin = A0;  // Analog output of horizontal joystick pin
int vertPin = A1;  // Analog output of vertical joystick pin
int selPin = 9;  // select button pin of joystick

int vertZero, horzZero;  // Stores the initial value of each axis, usually around 512
int vertValue, horzValue;  // Stores current analog output of each axis
const int sensitivity = 200;  // Higher sensitivity value = slower mouse, should be <= about 500
int mouseClickFlag = 0;

void setup()
{
  pinMode(horzPin, INPUT);  // Set both analog pins as inputs
  pinMode(vertPin, INPUT);
  pinMode(selPin, INPUT);  // set button select pin as input
  digitalWrite(selPin, HIGH);  // Pull button select pin high
  delay(1000);  // short delay to let outputs settle
  vertZero = analogRead(vertPin);  // get the initial values
  horzZero = analogRead(horzPin);  // Joystick should be in neutral position when reading these
}

void loop()
{
  vertValue = analogRead(vertPin) - vertZero;  // read vertical offset
  horzValue = analogRead(horzPin) - horzZero;  // read horizontal offset
//delay(3000);

  if (vertValue != 0)
    Mouse.move(0, vertValue/sensitivity, 0);  // move mouse on y axis
  if (horzValue != 0)
    Mouse.move((horzValue/sensitivity) *-1, 0, 0);  // move mouse on x axis

  if ((digitalRead(selPin) == 0) && (!mouseClickFlag))  // if the joystick button is pressed
  {
    mouseClickFlag = 1;
    Mouse.press(MOUSE_LEFT);  // click the left button down
  }
  else if ((digitalRead(selPin))&&(mouseClickFlag)) // if the joystick button is not pressed
  {
    mouseClickFlag = 0;
    Mouse.release(MOUSE_LEFT);  // release the left button
  }
}
0 votos
0 respostas
167 visualizações

Olá amigos, boa tarde,
Apenas uma questão. Todos os chips, realtek, microchip, mcu que estão presentes em uma PCB. Em todos esses chips é necessário download the firmware neles ou eles podem vir de fábrica?

0 votos
0 respostas
354 visualizações

Olá, venho acompanhando a série de artigos sobre a Freedom Board KL25Z que o Evandro Teixeira tem publicado no Embarcados e atualmente estou trabalhando com a família k22f da NXP e não estou conseguindo desenvolver uma aplicação de comunicação USB Host e Device entre duas FRDM. No lado Device está tudo OK, envio e recebo comandos de um computador sem problemas, agora no lado Host só consigo enviar ou receber dados, não funciona se deixo habilitado envio e recebimento, eu até consigo ver que o Host identifica o Device porem não estou conseguindo estabelecer a comunicação do lado Host para criar um protocolo. Alguem tem alguma dica, tutorial ou intenção de criar algum artigo relacionado a comunicação USB entre dois Microcontroladores (Host-Device)?

Desde já Obrigado!

0 votos
594 visualizações

Olá,

Sou estudante de Engenharia Elétrica com ênfase em sistemas embarcados, tenho uma disciplina chamada Projeto Integrado que tem duração de 2 anos, tendo que apresentar protótipos todo semestre, estava pensando em fazer uma rede mesh BLE e IoT, porém acho que uma rede mesh é um pouco complexo pra conseguir apresentar um protótipo daqui 3 meses, então queria focar no IoT. Porém preciso de ideias de coisas que não sejam tão corriqueiras e tenham uma aplicação legal na área de automatização, alguém pode sugerir ideias? Este projeto se for bem feito serve como TCC, e gostaria de poder fazer algo legal que eu realmente pudesse usa-lo com esse propósito futuramente.

Obrigado!

0 votos
310 visualizações

Olá galera,
Estou enfrentando um problema na empresa que trabalho para entender um LDF referente ao protocolo LIN v1.3. Inicialmente devo ressaltar que não possuo experiência com o protocolo LIN, já li muito sobre o assunto mas não apliquei em nada. Recebi um dispositivo que comunica via protocolo LIN de outro país, pré configurado de fabrica, e preciso apresenta-lo a um cliente. Uma das formas que estou tentando de ativar este dispositivo é através de uma aplicação em um microcontrolador que envia e recebe mensagens LIN que eu já vinha desenvolvendo a um tempo.
Não temos uma ferramenta para gerar um código C para o LDF, e a compra demoraria bastante tempo além de que acredito que seria caro apenas para uma apresentação.
Tentei enviar um frame ao dispositivo, lendo o LDF e colocando os valores referentes aos campos PID, e dados transmitidos e não obtive nenhuma resposta, acredito que o dispositivo não reconheceu a mensagem como se o endereço do PID estivesse errado. Então gostaria de jogar algumas perguntas, se alguém souber por favor, peço que me ajude.
-Como devo preencher o campo PID?
-Devo escrever um scheduler como o do LDF para enviar todos os frames? Pelo que eu entendi na especificação, o scheduler está presente apenas no mestre, ao escravo não interessa que exista um scheduler, ele apenas responde aos frames enviados, o que simplificaria bastante minha aplicação.
–É necessário enviar um wake up frame para iniciar o escravo? Ou ele acordaria com qualquer frame que eu enviasse?
-Como na especificação dele está descrito que ele vem pré configurado de fabrica, isso quer dizer que não preciso enviar frames de configuração, certo?

  • david pinho perguntada 11 meses atrás
  • última atividade 11 meses atrás
0 votos
0 respostas
341 visualizações

Saudações comunidade,
Estou trabalhando em um projeto com Arduino e preciso que este trabalhe a 2570Hz em uma das portas, porém vi que existe uma tabela fixa para setar o divisor de frequência em um dos temporizadores, então acredito que teria que setar no caso o Timer2 com divisor 1 ficando com 31250Hz nos pinos 3 e 11 e na programação usar de lógica para diminuir essa frequência para 2570Hz e poder aumentar em um décimo (e.g. 2570,1Hz) a cada pressionamento no pushbutton.
Alguém poderia me dizer se isso é possível?

0 votos
0 respostas
315 visualizações

: Boa tarde amigos! Sou médico tenho uma startup desenvolvendo medical device com transmissão de dados wireless para smartphone. Estamos desenvolvendo num Raspberry Pi 3 e gostaria da ajuda de vcs. Tão logo terminado o desenvolvimento, onde ou quais profissionais vcs indicam para transpor nosso desenvolvimento no Raspberry para o medical device?Qual linguagem seria mais adequada para evitar re-trabalho? (Node Js, C++ ou Python). Lembrando que o equipamento deve rodar em IOS e Android . Muito obrigado!

0 votos
540 visualizações

Preciso de ajuda, amigos!
gostaria de saber se há possibilidade de fazer um bootloader entre dois microcontroladores.
Ou seja, através de uma porta USB, faço o bootloader em um microcontrolador, e esse mesmo micro, executa um bootloader em um segundo microcontrolador atraves de uma serial, ou SPI, ou qq interface entre eles.
Isso é possivel? Alguma dica ou material para estudo sobre isso? como seria o na teoria o código, para se teer ideia de onde começar e pra onde ir?
desde já agradeço os colegas

  • ANDRE MOREIRA perguntada 2 anos atrás
  • última atividade 2 anos atrás
0 votos
0 respostas
496 visualizações

Ola pessoal, gostaria de uma ajuda, nao estou conseguindo fazer meus dois lpc1768 se comunicarem, quero enviar um frase e o outro lpc1768 exibi-la , através da uart.

aceito outros códigos……

Este e meu codigo.

include “mbed.h”

include “LPC17xx.h”

include “stdutils.h”

//************FUNCOES **********************

void u0_inic(unsigned long int baudrate);// iniciando a uart
void uart_Txchar(char ch); // enviando char
char uart_RxChar();// RECEBENDO CARACTER

int main()
{
char ch, a[]= “lenadro”;
int i;

 SystemInit();

while(1)
{ 
    u0_inic(9600); //estou iniciando a uart em  9600
      uart_Txchar('l');
      uart_Txchar('e');
      uart_Txchar('a');
      uart_Txchar('n');

 for(i = 0; a[i];i++);//estou transmitindo a sting 

     uart_Txchar(a[i]);


   // finalizando a trnsmissao;
     ch = uart_RxChar();
      uart_Txchar(ch);

}

}// fim man

void u0_inic(unsigned long int baudrate)
{
unsigned long int var_UartPclk_u32,var_Pclk_u32,var_RegValue_u32;

 LPC_PINCON->PINSEL0 = 0x01; //  estou habilitando tx0 e rx0  
 LPC_GPIO0->FIODIR = (1<<3); 
 LPC_UART0->FCR = (1<<1) | (1<<1) | (1<<1); // HABILITANDO A FIFO E RESENTANDO  FIFO BUFFER
 LPC_UART0->LCR = (11<<1) | (1<<7); //CONFI. 8BITS ,1 STOP B, NO PARTY


     var_UartPclk_u32 =  (LPC_SC->PCLKSEL0 >> 6) & 0x03;

     switch( var_UartPclk_u32 )
{
case 0x00:
    var_Pclk_u32 = SystemCoreClock/4;
    break;
case 0x01:
    var_Pclk_u32 = SystemCoreClock;
    break; 
case 0x02:
    var_Pclk_u32 = SystemCoreClock/2;
    break; 
case 0x03:
    var_Pclk_u32 = SystemCoreClock/8;
    break;
}

var_RegValue_u32 = ( var_Pclk_u32 / (16 * baudrate )); 
LPC_UART0->DLL =  var_RegValue_u32 & 0xFF;
LPC_UART0->DLM = (var_RegValue_u32 >> 0x08) & 0xFF;

// util_BitClear(LPC_UART0->LCR,(1<<7));

}
//********************* envio de caracter *******************

void uart_Txchar(char ch)
{
while(util_IsBitCleared(LPC_UART0->LSR,5)); // ESPERA A TRNSMISSAO
LPC_UART0->THR=ch;
// printf(); //INICIA ATRANSMISSAO
}
//************************************************

//************* receber caracater ****************************

char uart_RxChar()// RECEBENDO CARACTER
{
char ch;
while(util_IsBitCleared(LPC_UART0->LSR,0)); //Aguarde até que os dados sejam recebidos
ch = LPC_UART0->RBR; // Aguarde até receber os dados recebidos
return ch;
}

0 votos
857 visualizações

Olá tudo bem?

Estou em fase de desenvolvimento de uma ideia e eu tenho um ESP32. Com ele vou precisar de plotar alguns gráficos de informações físicas e estava pensando em fazer isto da forma mais barata possível e isso aconteceria se eu conseguisse criar uma rede wifi e gerar um webapp, então esta interface gráfica poderá ser vista por um tablet ou celular de qualquer marca. Não estou achando nenhum projeto, pricicpalmente relacionado ao ESP32 que mostre rodando javascript e html nele. Alguém sabe de algo?

A rede gerada pelo ESP32 estará em uma rede interna, sem conexão com a internet

  • Felipe Paulo perguntada 2 anos atrás
  • última atividade 2 anos atrás
Mostrando 1 - 10 de 39 resultados