Arquivar para Janeiro 2014

Projeto de lavadora de roupas

Autor: andre_luis • Categoria: Eletrônica geral • Postado em 15 Jan 2014 19:51 • Visualizado: 2496x • 2 comentários

A seguir, será apresentado um projeto pessoal bem sucedido de uma lavadora de roupas com diversos recursos.
Para quem está iniciando na eletrônica, é uma excelente oportunidade para lidar com dispositivos eletro-mecanicos.

A unidade central de processamento foi o microcontrolador 8051, tendo sido o firmware criado em C. A lógica de operação do programa foi baseada no conceito de máquina de estados, onde cada etapa do ciclo de lavagem representa um valor da variável de controle.

Segue abaixo um trecho do programa que ilustra esse conceito:
cpp code

void CicloBasicoDePreLavagem ( void )
{
switch ( Etapa )
{
case ETAPA_ENXAGUAR :
{ /* Rotinas */ }
case ETAPA_ESVAZIAR_ANTES_ENX :
{ /* Rotinas */ }
case ETAPA_ENCHER_ENX :
{ /* Rotinas */ }
case ...


cpp code
/*------------------------------------*/
/* Etapa ( Enxague ) */...

Ler mais »

Programa-exemplo de aprimoramento de imagem com OpenCV no QT

Autor: andre_luis • Categoria: Programação C/C++ • Postado em 14 Jan 2014 21:42 • Visualizado: 1760x • 1 comentar

Aplicações envolvendo processamento de imagens tem sido cada vez mais comum no quotidiano.

Para inicar qualquer trabalho de reconhecimento e classificação de imagens, o primeiro passo é realizar a etapa de aprimoramento da imagem "image enhancement" para melhor facilitar a extração dos pontos de interesse.

Uma das bibliotecas gratuitas mais utilizadas é o OpenCv, cujos recursos permitem acelerar o desenvolvimento de soluções em processamento de imagens.

O programa abaixo foi baseado num exemplo disponibilizado gratuitamente no fórum QTcentre, no qual incluí algumas outras opções:
http://www.qtcentre.org/threads/43056-Qt-OpenCV-simple-example

Segue a tela:
Imagem

Segue o projeto, baseado no OpenCV2.3 e QT 4.7.3:
http://speedy.sh/nJ8dB/WebCamReader.rar

Segue a tela da IDE:
Imagem

Ler mais »

Programa para rotacionar matriz de caracteres

Autor: andre_luis • Categoria: Programação C/C++ • Postado em 09 Jan 2014 21:24 • Visualizado: 2043x • 0 comentários

Ao lidarmos com displays que não têm padrão de caracteres no tamanho desejado, precisamos inserir mapas de caracteres no código do programa. Como gerar a tabela inteira é uma tarefa um tanto proibitiva, o próximo passo é fazer uma busca na web por algum arquivo de bitmap disponível.

No entanto, depois de encontrá-lo e colocar o mapa no código, não raramente nos damos conta de que esses caracteres não foram criados na direção que o painel será posicionado, e teremos de fazer rotação de + / - 90 graus no mapa, o que significa:

Queremos converter isso...
Imagem

...nisso
Imagem

O programa abaixo realiza essa tarefa: Primeiro, definimos o arquivo que contém o código do mapa deve ser incluído, em seguida seleciona-o e, finalmente transpôe-se cada matriz de caracteres da seguinte forma:...

Ler mais »

AX88772B - Compilando o driver ( CONVERSOR USB<>RJ45 )

Autor: Rodrigo_P_A • Categoria: Linux • Postado em 08 Jan 2014 00:30 • Visualizado: 2134x • 0 comentários

Precisei compilar o driver AX88772B para usar com minha placa ARM9, segui os passos abaixo, estou explicando da forma mais simples possível, pois a internet já tem muito artigo complicado e mirabolante! :D

1) Baixar o arquivo no site do fabricante do CHIP:
http://www.asix.com.tw/download.php?sub ... ItemID=105

Eu baixei o arquivo: Linux kernel 3.x/2.6.x Driver V4.11.0 de 08-08-2013.

2) extraia os arquivos para uma pasta do seu computador com LINUX.

Para compilar o driver para a sua placa, você deverá ter os arquivos fontes do kernel usado na sua placa, tem que ser a mesma versão, exemplo: se na sua placa roda o linux 3.0.8 você deverá ter o fonte do linux 3.0.8 na sua máquina.

3) Alterar o arquivo MakeFile pois ele vem configurado para compilar para o seu PC.

O original...

Ler mais »

Rotina alternativa para leitura de teclado matricial 4x4

Autor: andre_luis • Categoria: Programação C/C++ • Postado em 05 Jan 2014 20:40 • Visualizado: 2052x • 0 comentários

Será apresentado a seguir a implementação de uma rotina de varredura de teclado matricial, um pouco diferente as utilizadas regularmente, que traz alguns benefícios:

1) Permite combinação de várias teclas pressionadas na mesma linha: 8 (4 teclas), 32 (3 teclas), 48 (2 teclas), 16 (1 tecla).
2) Mais rápido, pois são realizadas 2 varreduras (de nibble), em vez de 16 varreduras de bits na abordagem clássica.

Segue abaixo a implementação:
cpp code

/* ********************************************************************** */
#define ROW_MASK 0x0F
#define COLUMN_MASK 0xF0
#define NO_KEY 0x00
/* ********************************************************************** */
unsigned int ScanKey ( void )
{
unsigned int ReadingKey ;
TRISx = COLUMN_MASK ; // Set high nible as Input and low nible as Output ( not tested )...

Ler mais »

BSD para PIC32

Autor: Rodrigo_P_A • Categoria: Microchip PIC • Postado em 05 Jan 2014 19:40 • Visualizado: 1840x • 0 comentários

Projeto bacana:

http://retrobsd.org/index.php?sid=2988e ... cc74b71270

Resumo: BSD que roda no PIC32.

A diferença do PIC32 para a maioria dos ARMs está na MMU, que o PIC32 já tem e a maioria dos ARMs num tem, então esta versão antiga do BSD roda com os recursos de memória protegida.

Cada vez mais to achando interessante ficar de olho nos PIC32

Ler mais »

PIC32MZ - 330DMIPS 2MB FLASH 512KB RAM

Autor: Rodrigo_P_A • Categoria: Microchip PIC • Postado em 05 Jan 2014 19:37 • Visualizado: 1812x • 0 comentários

Faz muito tempo que eu num uso PIC, mas sempre fico de olho para ver o que está acontecendo e este lançamento da Microchip eu achei bem interessante:

PIC32MZ - 330DMIPS 2MB FLASH 512KB RAM

E é barato, veja só o preço na mouser:
http://br.mouser.com/Semiconductors/Emb ... mz&FS=True

Dá pra fazer muita coisa só com este CHIP, sem adicionar nenhum tipo de memória externa.

Sei que os ARMs estão em quase tudo, mas não podemos fechar os olhos para os MIPS, eles são usados em muitas aplicações, e pelo jeito a Microchip agora entrou na briga no mundo dos 32bits. Eu num conheço nenhum ARM com estas características e com este tipo de encapsulamento , veja que eles tem esta versão com o encapsulamento TQFP-64!

TQFP64: http://br.mouser.com/ProductDetail/Micr...

Ler mais »

Ferramentas de desenvolvimento - IDEs

Autor: Rodrigo_P_A • Categoria: ARM - Todos • Postado em 05 Jan 2014 18:05 • Visualizado: 1912x • 0 comentários

Muitas dúvidas aparecem quando pensamos em começar o desenvolvimento com microcontroladores ARM, acredito que a principal seja sobre as ferramentas de desenvolvimento, pois sem ela não podemos fazer muita coisa.
Vou citar aqui no meu blog algumas ferramentas que eu já tive contato e fazer algumas comparações:

IDEs: ( IDE = Integrate Development Enviorement )

KEIL:
Site do fabricante: www.keil.com
Acredito que seja a mais conhecida e uma das mais usadas.
Esta IDE é fácil de usar e pode ser utilizada com o compilador da própria KEIL ( RVDS da ARM) e com o GCC.
Curiosidade: Antigamente, antes da Keil ser comprada pela ARM dava para usar também um compilador CARM agora este compilador CARM só pode ser usado se você tiver o Keil antigo, acho que até a versão 3.15 aceita o compilador CARM, depois disso só é possível suar o Keil com o RVDS e com o GCC.

Linguagens suportadas: C, C++, e Assembler.

Umas das vantagens do...

Ler mais »

Ferramentas de desenvolvimento - JTAG

Autor: Rodrigo_P_A • Categoria: ARM - Todos • Postado em 05 Jan 2014 17:50 • Visualizado: 1690x • 0 comentários

JTAG ( Ferramentas para depurar o programa ).
Vou simplificar para o que serve uma ferramenta JTAG:
O uso com JTAG agiliza o processo de desenvolvimento pois com um JTAG conectado ào microcontrolador podemos executar o nosso programa passo a passo, visualizar os valores na memória, verificar o valor das variáveis do programa.

Também Podemos usar o JTAG para Gravar o programa no microcontrolador.

Algums modelos:
JLINK da Segger: http://www.segger.com/jlink
A vantagem deste JTAG é que ele pode ser utilizado com várias IDEs eu já testei o JLINK com as seguintes IDEs: KEIL, IAR, ROWLEY e ele funcionou muito bem com todas elas.

KEIL ULINK2: http://www.keil.com/ulink2/
Este JTAG funciona muito bem, mas só funciona com o software da KEIL.
Eu já testei o ULINK2 com os seguintes microcontroladores:
ARM7: NXP LPC2148, LPC2368, LPC2478
CORTEX...

Ler mais »

Livro em Inglês sobre o microcontrolador LPC23xx da NXP

Autor: Rodrigo_P_A • Categoria: ARM - Todos • Postado em 05 Jan 2014 15:40 • Visualizado: 1692x • 0 comentários

Ótimo livro em inglês sobre o microcontrolador LPC2368, LPC24xx:


Ler mais »

cron

x