Estou disponibilizando o arquivo .OVA do VirtualBox com o snapshot de um ambiente de desenvolvimento em C++ com o Eclipse no Lubuntu:
https://drive.google.com/file/d/0B1Pk4ZxWGXeVQ2M1SDFOT3R6ZHM/view?usp=sharing ( Usuário: user / Senha: andre )
Devido á um "bug" do syntax highlighter do Eclipse com codigo C++ de não reconhecer o tipo nativo uint8_t do GCC, não consegui remover esse Warning da IDE, mas que ficou presente apenas no Eclipse, sendo que na compilação do GCC não afetaou em nada. Nos foruns da área, cada um resolveu isso de um modo diferente, mas não quis perder tempo com isso.
Inicialmente utilizei como base o video do AMMAURO #3, que ensina detalhadamente todos os passos necessários para instalação do SDK da Espressif e toolchain de Xtensa para compilação em C para o microcontrolador ESP8266 ( o final do video anterior dele AMMAURO #2 também é util, mostrando como compartilhar arquivos entre Linux/Widows ):...
Para quem instalou o PCBSD, o ambiente gráfico já vinha instalado automaticamente, mas no caso do Freebsd, tem que instalar manualmente, pois o dvd de instalação somente instala o ambiente de texto.
Passo uma dica basica de como instalar o ambiente grafico no S.O. Freebsd 11, na internet tem várias dicas, mas algumas obsoletas ou com pouca explicação.
O usuario deve dominar no mínimo o ambiente Linux, Unix e seus comandos.
Montei e testei o procedimento abaixo nas versões 32 e 64 bits do Freebsd 11 em 03 máquinas e funcionou sem problemas, pode haver alguma diferença em outros sistemas.
Verificar:
1) O sistema operacional deve estar ativo e configurado, de preferencia com conexão internet funcional.
Deve estar configurado o usuario Root e um usuario comum, que será utilizado para entrar via ambiente gráfico do Kde.
O teclado que uso padrão brasileiro é o: PT_BR ISO8859_1 ou br275.iso.acc.kbd, deve ser configurado no ato de instalação do Freebsd para não ter problemas de uso no...
Mais uma dica para quem quer modificar o kernel do sistema Freebsd 11 e compilar.
Lembrando que estas instruções são para usuarios que dominem o ambiente Linux/Unix.
Eu modifiquei, eliminei o que não era necessário e inclui algumas alterações no kernel conforme o hardware de minha máquina.
No final o Kernel, diminuiu de tamanho, de 25mb para 15mb e foi perceptivel o desempenho de minha máquina.
Efetuei a compilação em dois computadores, um instalado com a versão i386 e outro com a versão AMD64 do Freebsd 11.
Recomendo logar via Root e verificar o hardware do seu computador com o comando no terminal: #dmesg | more , o que for reconhecido pelo Freebsd será listado.
Pode acontecer de ter algum hardware não listado porque não foi incluido o modulo no Kernel ou o hardware ainda não está disponivel no sistema.
Durante a instalação do sistema Freebsd, antes de compilar o Kernel, tem que ser instalados os documentos, sources, compiladores, etc. Ou instalar posteriormente via PKG ou via Ports....
De um modo geral, sempre tentamos mapear os pinos de um display de 7 segmentos em uma porta do microcontrolador bit-a-bit na mesma sequencia do LSB ao MSB, de modo a espelhar o conteúdo do registrador/variável do programa sem necessidade de processamento adicional da CPU. Porém, há casos de projetos onde os pinos disponiveis estão dispersos em diferentes portas, e isso complica a programação.
Por exemplo, no caso do programa abaixo, onde os pinos foram mapeados da seguinte forma:
#define DISP7_A PIN_A7
#define DISP7_B PIN_A6
#define DISP7_C PIN_A5
#define DISP7_D PIN_A4
#define DISP7_E PIN_B3
#define DISP7_F PIN_B4
#define DISP7_G PIN_C6
void Display7seg ( char number )
{
switch(number)
{
case 0 : // escreve caracter "0" do display de 7 segmentos
output_HIGH(DISP7_A);...
Após muito apanhar com o erro "NO USB DEVICE" no Android Studio, e procurar em tudo que é websites por soluções mirabolantes, encontrei um programa que faz isso de modo automatico;
SAMSUNG_USB_Driver_for_Mobile_Phones.zip
Também disponível aqui na área de downloads do ASM51 (\downloads\celulares\SAMSUNG):
https://server2.asm51.com.br/downloads/
Fica a dica...
Este tópico visa a medição de distância, utilizando-se o ultrasom (US).
O ultrasom percorre o ar em determinada velocidade. Esta velocidade não é fixa, ela varia com a temperatura do ar ambiente. A expressão resultante não é linear. Ela foi inicialmente aproximada pela raiz de uma razão. Esta aproximação é aceitável dentro de limites. Estes limites se encontram fora das temperaturas ambientes normais. Ainda considerando-se essa não linearidade, a expressão anterior, com raiz de razão, foi aproximada por uma equação linear. Tal equação é mais apropriada para sua utilização em microcontroladores (uC).
O uso desta equação em microcontroladores (uC) exige que se utilize variáveis do tipo ponto flutuante (PF). Operações com PF exigem muito mais memória do que operações com variáveis inteiras. O trabalho a seguir contém um pouco de teoria, com o objetivo de se chegar à expressão da distância percorrida pela onda de US.
A expressão da distância (h) obtida é função da velocidade da onda de US, em m/s, da temperatura ambiente (Ta), em ºC e do período, em s, que a onda de US percorreu o trajeto (para ir e retornar)....
O EdSim51 é um simulador com alguns periféricos já acoplados, nesse tópico vou falar sobre o display de 7(8) seguimentos.
1. Selecionando o display
O EdSim52 disponibiliza 4 displays de 7(8) segmentos, o controle de qual display vamos utilizar é feito pelo P3 nas posições 3 e 4. O P3 armazena 8bits de informação, então falando nas posições 3 e 4 significa que em P3 é armazenado valores como "10101010" ou "11100111", cada bit tem alguma função para o controle dos periféricos.
Representação do P3
Nesse caso os bits são o 3 e 4 11111111, com esses 2 bits para controle temos 4 possibilidades 00, 01, 10 e 11.
11 para o primeiro display...
O presente artigo destina-se á orientar no calculo dos transformadores utilizados em estabilizadores monofasicos que empregam a topologia série. Esse modelo inclusive é pouco utilizado em baixa potencia, pois o sistema de controle dos dispositivos de comutação é mais complexo, porém para altas potencias, onde o peso de um transformador convencional ( multi-derivações ) seria proibitivo, além do fato de que se alcança uma melhor resolução na saída se comparado ao modelo original.
Um caso de estudo será um estabilizador projetado para lidar com uma variação de ( ±15% ) com uma resolução de 1%. Uma ilustração do circuito é apresentada abaixo, de onde podemos inicialmente notar a presença de 4 transformadores:
Basicamente, é realizado uma soma ou subtração da tensão por uma lógica binária, conforme abaixo:...
A seguir, será apresentado o projeto de um inversor senoidal desenvolvido originalmente como um No-break, entretanto com as funcionalidades relacionadas ao sincronismo da comutação rede-inversor ainda não estão operacionais no firmware, o projeto será apresentado compativel como inversor.
Para geração da senoide foi utilizado o seguinte arquivo em EXCEL, que gera os valores da tabela em função dos valores inseridos:
Download: http://teprom.eng.br/arquivos/Inversor/seno.zip
A cada interrupção do Timer, é recarregado o valor do Duty-cycle ( calculado na tabela acima ). No total, foram 32 amostras por ¼ de ciclo da senoide. Sempre que atingir os limites de 0o e 90o da senoide, as funções NivelMinimo()
...
Me deparei com um problema, tenho uma placa linux que eu fiz, que o leitor de código de barras funciona.
já em uma mini2440 com kernel 2.32 não funcionava, ele só mapeava o dispositivo em /dev/event0 enquanto que o certo é mapear em /dev/event1 ... não vou entrar em maiores detalhes, em resumo, o leitor lia um código e travava, e eu não consegui ler o código em minha aplicação pois por padrão você tem que abrir o /dev/event1
Depois de quebrar um pouco a cabeça, peguei o VID e o PID e busquei no arquivo fonte do kernel na pasta: /drivers/hid/hid-ids.h
VID/PID do meu BARCODEREADER: 1130 0001
encontrei o VID no arquivo hid-ids.h na linha 390 assim:
cpp code
#define USB_VENDOR_ID_TENX 0x1130
#define USB_DEVICE_ID_TENX_IBUDDY1 0x0001
#define USB_DEVICE_ID_TENX_IBUDDY2 0x0002
/* a list of devices that shouldn't be handled by HID core at all */
static const struct hid_device_id...