Fórum

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

Olá.
Preciso utilizar o Beaglebone Black com o mínimo de consumo de energia.

Tenho pesquisado muito na internet a respeito e frequentemente leio que a melhor solução seria utilizar o Gerenciador de Energia do BBB, TPS 65217, trabalhando e programando seletivamente alguns periféricos em sleep mode, quando fora de operação. Para despertá-lo e voltar ao estado de Operação programa-se alarmes do kernel do Linux.

Alguém sabe como fazer isso? Ou mesmo já viu alguma aplicação do BBB para muito baixo consumo?

Atenciosamente,

José Henrique
[email protected]

0 votos
3k visualizações

Colegas.
Estou desenvolvendo um projeto com o PIC18F26J50.

É um projeto legado onde estou implementando o firmware e não tenho que trabalhar com o hardware que me foi dado.

Basicamente é um sistema que realiza a leitura de dois sensores analógicos, aplica um filtro e disponibiliza esses dados através de um protocolo proprietário sobre RS-485.

Como estou sem o hardware em mãos (mais essa), estou realizando os testes de algoritmos em uma uStart (do nosso amigo Marcos Ribeiro), mesmo que seja um processador diferente, mas estou fazendo…

A minha pergunta é relacionada ao clock. O hardware que será construído não utiliza cristal. Estou utilizando o oscilador interno. Ontem fui medir indiretamente a frequência de operação do PIC, utilizando um interrupção de timer e um gpio, e notei uma discrepância de mais ou menos 20% na frequência de geração da interrupção do Timer0. Conferi toda a configuração do mesmo e está correto.

Gostaria de saber de vocês qual é a precisão do oscilador interno e se este tipo de configuração é adequada a um ambiente com um considerável spam de temperatura e que tenha necessidade de comunicação via interface serial, que pode ser bem sensível à variações de clock.

Cheguei a ler sobre isso no datasheet e a impressão que tive é de que não teria muitos problemas.

Ontem ao medir os tempos e perceber o desvio da frequência observada através da interrupção em relação ao esperado, fiquei ressabiado.

Muito obrigado pela ajuda!

  • Rafael Dias perguntada 3 anos atrás
  • última atividade 3 anos atrás
0 votos
0 respostas
404 visualizações

Pessoal, tenho um projeto que utilizará um mouse como odômetro. Baseado no site abaixo:
[url]http://www.instructables.com/id/Optical-Mouse-Odometer-for-Arduino-Robot/[/url]

O código utiliza a biblioteca PS2Mouse.h desse endereço:
[url]https://github.com/jazzycamel/PS2Mouse[/url]

Funciona tudo bem, consigo ler os dados do mouse, porém a variável me retorna um valor máximo de +-127 (8 bits), com uma velocidade de movimentação do mouse muito lenta, ou seja, está muito sensível, a variável “estoura” se movimentar um pouco mais rápido, tentei alterar as bibliotecas para 16 bits e fazer com que a leitura não “estourasse”, porém meu conhecimento limitado não me ajudou. Alguém pra me dar uma luz? Meu maior problema foi entender o código… Agradeço qualquer ajuda.

PS2Mouse.h:

[code]#ifndef PS2_H

define PS2_H

include <Arduino.h>

class PS2Mouse {
public:
PS2Mouse(int data, int clk);
void write(uint8_t data);
uint8_t read(void);

void begin(void);
void getPosition(uint8_t &stat, int &x, int &y);

private:
int _ps2clk;
int _ps2data;
void golo(int pin);
void gohi(int pin);
int twos(uint8_t value, bool sign);
};

endif // PS_2_H

[/code]

PS2Mouse.cpp:

[code]#include “PS2Mouse.h”

PS2Mouse::PS2Mouse(int clk, int data){
_ps2clk=clk;
_ps2data=data;
gohi(_ps2clk);
gohi(_ps2data);
}

void PS2Mouse::write(uint8_t data){
uint8_t parity=1;

gohi(_ps2data);
gohi(_ps2clk);
delayMicroseconds(300);
golo(_ps2clk);
delayMicroseconds(300);
golo(_ps2data);
delayMicroseconds(10);
gohi(_ps2clk);

while(digitalRead(_ps2clk)==HIGH);

for(int i=0; i<8; i++){
if(data&0x01) gohi(_ps2data);
else golo(_ps2data);
while(digitalRead(_ps2clk)==LOW);
while(digitalRead(_ps2clk)==HIGH);
parity^=(data&0x01);
data=data>>1;
}

if(parity) gohi(_ps2data);
else golo(_ps2data);

while(digitalRead(_ps2clk)==LOW);
while(digitalRead(_ps2clk)==HIGH);

gohi(_ps2data);
delayMicroseconds(50);

while(digitalRead(_ps2clk)==HIGH);
while((digitalRead(_ps2clk)==LOW)||(digitalRead(_ps2data)==LOW));

golo(_ps2clk);
}

uint8_t PS2Mouse::read(void){
uint8_t data=0, bit=1;

gohi(_ps2clk);
gohi(_ps2data);
delayMicroseconds(50);
while(digitalRead(_ps2clk)==HIGH);

delayMicroseconds(5);
while(digitalRead(_ps2clk)==LOW);

for(int i=0; i<8; i++){
while(digitalRead(_ps2clk)==HIGH);
bit=digitalRead(_ps2data);
while(digitalRead(_ps2clk)==LOW);
bitWrite(data,i,bit);
}

while(digitalRead(_ps2clk)==HIGH);
while(digitalRead(_ps2clk)==LOW);
while(digitalRead(_ps2clk)==HIGH);
while(digitalRead(_ps2clk)==LOW);

golo(_ps2clk);

return data;
}

void PS2Mouse::begin(void){
write(0xFF);
for(int i=0; i<3; i++) read();
write(0xF0);
read();
delayMicroseconds(100);
}

void PS2Mouse::getPosition(uint8_t &stat, int &x, int &y){
write(0xEB);
read();
stat=read();
uint8_t _x=read();
uint8_t _y=read();

bool negx=bitRead(stat,4);
bool negy=bitRead(stat,5);
x=twos(_x, negx);
y=twos(_y, negy);
}

void PS2Mouse::golo(int pin){
pinMode(pin, OUTPUT);
digitalWrite(pin, LOW);
}

void PS2Mouse::gohi(int pin){
pinMode(pin, INPUT);
digitalWrite(pin, HIGH);
}

const int m=0x100;
int PS2Mouse::twos(uint8_t value, bool sign){
int v=(int)value;
if(sign) v|=0xFF00;
return v;
}[/code]

0 votos
6k visualizações

Prezados bom dia!

Estou a alguns dias sofrendo com isto ja!

Preciso fazer a leitura de uma celula de carga com o Arduino.
Segue link da célula que estou utilizando
http://www.iwm-brasil.com.br/spl-celula-de-carga-tipo-single-point/?txt_friendemail&txt_friendmessage&sendlink=http%3A%2F%2Fwww.iwm-brasil.com.br%2Fpor-familia-celulas-de-carga%2F
O modelo que tenho é de 10KG, e estou alimentando a mesma com uma bateria de 9V.

Li em outros foruns que devo utilizar um amp op para fazer a leitura diferencial entre V+ e V- da celula, e jogar o Vout na entrada analogica do arduino. Utilizei um TL074, com ganho de 1000, e quanto tento ler no arduino, a entrada simplesmente nao varia.
Montei um amp op instrumental utilizando 3 TL072 e tambem nao obtive resultados satisfatorios…
Quando coloquei as entradas em um osciloscopio, vi que a diferença entre elas varia quando é aplicada força, entao acredito que nao seja problema na celula.

Alguma luz?

Obrigado!

0 votos
554 visualizações

olá, estou com problemas para rodar o sketch da placa de reconhecimento por voz v3.1 da ELECHOUSE. não reconhece o comando “VR myVR(2,3); // 2:RX 3:TX, you can choose your favourite pins.”

  • AFC29 perguntada 2 anos atrás
  • última atividade 2 anos atrás
0 votos
789 visualizações

Preciso de uma ajuda, estou elaborando um projeto para a faculdade na qual tenho que ligar um motor de passo. Integrei o motor de passo com o Arduíno, mas para dar um diferenciada no projeto, integrei também um módulo Bluetooth (HC-05). Consegui ligar o motor de passo, com o Arduíno e também com o módulo. Mas, como estou iniciando, consegui mandar apenas um pulso para o circuito e minha intenção era que o motor girasse sem interrupção, até que eu mandasse outro comando para ele parar. Alguém poderia me ajudar ? Fui claro na minha dúvida ? Abaixo segue a programação que eu fiz:

int pinLed[4] = {7,6,5,4};
int velocidade;
int var = 0;
int numeroLed;

void setup() {
// put your setup code here, to run once:

int x;
for (x = 0; x <= 3; x = x + 1){
pinMode(pinLed[x], OUTPUT);
}

Serial.begin(9600);

velocidade = 5;

}

void loop() {

char c = Serial.read();

if (c == ‘1’){
for(numeroLed = 0; numeroLed <= 3; numeroLed = numeroLed + 1){
digitalWrite(pinLed[numeroLed], HIGH);
delay(velocidade);
digitalWrite(pinLed[numeroLed],LOW);
delay(velocidade);
}
}
}

  • Gabrielddsp68 perguntada 2 anos atrás
  • última atividade 2 anos atrás
0 votos
894 visualizações
PWM

O QUE FAZER COM UM PWM?

  • André Kurbet perguntada 3 anos atrás
  • última atividade 3 anos atrás
0 votos
2k visualizações

Olá.

Estou em busca de treinamento para Linux embarcado aqui no RS.

Alguém recomenda uma empresa que preste consultoria ou treinamento para essa região? (preferencialmente presencial).

Grato.

  • Pedro Testa perguntada 4 anos atrás
  • última atividade 4 anos atrás
0 votos
2k visualizações

Olá pessoal, procuramos free lancer com domínio sistemas de leitura/interpretação e programação em SMD sistemas microcontroladores CI PIC das linhas 16C711/12 e 16F716 conhecimentos em Eprom/Assembly.

Objetivo: interpretar comandos da placa para novo projeto.

aguardamos seu contato.

  • Walter Pinto perguntada 4 anos atrás
  • última atividade 4 anos atrás
Mostrando 1 - 10 de 374 resultados