Novo endereço

12 de abril de 2010

A partir de hoje utilizarei outro blog para minhas postagens.

Desenvolvi um blog – bem simples – usando o Google App Engine e minhas atualizações, quando ocorrerem, serão lá.

O novo endereço é: http://dmmartins.appspot.com.

Nos vemos por lá.

DOSBox

19 de fevereiro de 2010

Descobri o DOSBox quando precisei rodar um programa em modo DOS no Windows Vista e descobri que este não suporta console DOS fullscreen.

Funciona bem, inclusive com o conversor USB/Serial, já que o programa que eu precisava rodar usa a porta serial para enviar dados para um CNC.

Para quem, em 2010, ainda precisa usar softwares mal feitos em DOS é uma mão na roda.

http://www.dosbox.com

Firefox 3.5 no Kubuntu

11 de julho de 2009

Para quem usa Kubntu 9.04 e quer testar o Firefox-3.5 sem instalar um monte de bibliotecas do Gnome, basta usar o seguinte commando:

sudo apt-get install --no-install-recommends firefox-3.5

Bons testes.

Teste Python

24 de março de 2009

teste para PythonBrasil

Arduino e LCD

23 de março de 2009

Depois de botar pra funcionar meu arduino feito em casa abri o exemplo da biblioteca LiquidCrystal, que vem na instalação padrão do arduino.

A utilização da biblioteca é bem simples, basta indicar os pinos RS, RW, EN e os pinos de dados. Pode ser utilizado o controle em 4 bits e 8 bits.

Liguei os pinos do LCD no arduino, configurado para controle com 4 bits, baixei o programa e … não funionou! Azarado.

Verifiquei as ligações, tudo certo. Resetei a placa algumas vezes e o tal do ‘hello, world!’ apareceu.

Olhando o código da LiquidCrystal, vi que faltavam alguns comandos de inicialização para o controlador do display (HD44780). Deixei uma mensagem no forum Bugs & Sugestions mas não teve nenhuma resposta.

Resolvi os problemas de inicialização do LCD e coloquei o código em http://code.google.com/p/arduinolcd/. Para utilizar baixe o arquivo ZIP, descompacte e copie a pasta ‘HD47660′ para a pasta ‘hardware/libraries/’ da instalação do Arduino.

Depois de instalada a biblioteca, vamos aos exemplos.

Abra o exempl HelloWorld em ‘File>Sketchbook>Examples>Library-HD44780>HelloWorld’,  baixe para a placa, …

HD44780

HD44780

… agora sim. :)

O exemplo SerialDisplay também funcionou. Demorei um pouco pra testar pois não tinha achado ainda um cristal de 16 MHz e queria também testar a porta serial. Como moro em Santa Catarina e longe da capital, não é muito fácil encontrar componentes eletrônicos por aqui. Não estava disposto a pagar mais pelo frete que pelo componente  e não tinha nenhuma compra em vista para incluir alguns cristais. Achei em uma placa MiniDrangon que tenho aqui e agora posso testar as bibliotecas corretamente (as que utilizam temporização e porta serial).

Estou esperando chegar os fios para wire wrap para montar a placa ethernet e ver o que dá pra fazer com o Arduino na rede.

Arduino feito em casa.

13 de março de 2009

Há algum tempo estava querendo testar o Arduino, pelo menos descobrir o que era e por que chamava tanto a atenção do pessoal.

Depois de descobrir do que se tratava, a vontade de testar passou um pouco, não comprei um arduino pronto, pois mesmo o preço não sendo muito alto lá fora, com os impostos de importação  mais o frete acaba ficando um preço bem alto por uma placa tão simples.

Montagem

Decidi montar meu próprio arduino. Tinha um Atmega8 sobrando, uma placa padrão para montagem do circuito e o resto é regulador de tensão, alguns resistores e um max232 para comunicação serial (no arduino oficial usa apenas alguns transistores, mas eu prefiro soldar um max232 :). Ah, acrescentei um display LCD e algumas chaves que também tinha à disposição.

13-03-09_09301

Componentes utilizados para montagem do Arduino.

Depois de algumas horas soldando, cortando fios, resoldando, mudando componentes de lugar, surge o Arduino:

13-03-09_0011

A parte "bonita".

E o trabalho sujo:

13-03-09_0013

A parte feia.

As fotos ficaram bem ruins, estava sem câmera e utilizei a do celular. Mas dá pra ter uma idéia do trabalho.

Problemas

Depois de montado, o primeiro problema. Eu não tinha um cristal de 16Mhz. No lugar dele, usei um de 12Mhz, mas o arquivo hex do bootloader não funcionaria. Tudo bem, só recompilar, certo? Errado!

Já tinha o avr-gcc instalado, tinha o código fonte, botei pra compilar e:

../../avr/bin/ld.exe: address 0x205e of ATmegaBOOT.elf section .text is not with
in region text
make: *** [ATmegaBOOT.elf] Error 1

Isto é,  o arquivo bootloader ultrapassava a memória do arduino. Pesquisei em alguns fóruns e vi que era culpa da versão mais nova do gcc que gerava arquivos maiores. Resolvi utilizar o gcc que vem no arduino e descobri que era a mesma versão que eu tinha instalado.

Mais algumas pesquisas e resolvi mudando uma linha do Makefile. Onde tem:

OPTIMIZE   = -Os

Substituí por:

OPTIMIZE   = -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums \
             -ffunction-sections -fdata-sections -fno-split-wide-types -Wl,--relax \
             -fno-inline-small-functions -mcall-prologues

Resolvido o problema, funcionou o bootloader e comecei a brincadeira, que contarei outra hora.

Conclusão

Confesso que tinha um certo preconceito contra o Arduino. Depois de mexer um pouco com ele, descobri que a brincadeira é bem divertida.

Uma coisa interessante no Arduino, é que as bibliotecas são escritas em C++, pelo menos as que dei uma olhada. Nos meus projetos microcontrolados, uso sempre C e, quando não tem outra saída, assembly.  Usar orientação a objetos, mesmo que minimamente, parece interessante.


Seguir

Obtenha todo post novo entregue na sua caixa de entrada.