Sunday 9 December 2012

Flashing de um Atmega novo

Quando tentei flashar um Atmega 8 novo usando o USBASP, o avrdude não consegui-o obter a assinatura do dispositivo, lançado a seguinte mensagem:
avrdude: error: programm enable: target doesn't answer. 1
Por defeito todos os atmega novos estão configurados para usar o oscilador interno, que é demasiado lento para o sinal de SCK do USBASP.

Mas existe uma opção para resolver o problema que consiste em activar a opção de SCK lento, conectando o pino 25 do Atmega8 do USBASP à massa, assim obtém-se a seguinte mensagem executado o comando de leitura do dispositivo:
avrdude: Device signature = 0x1e9307
Comando de leitura da assinatura: 
sudo avrdude -c usbasp -p m8

Comando para flashar o Atmega 8 para usar o oscilador de cristal de 12 MHz: 
sudo avrdude -c usbasp -p m8 -U lfuse:w:0xde:m -U hfuse:w:0xd9:m 

Os fusíveis podem ser calculados com a ajuda deste site, o start time escolhido não foi o maior que era possível, parece ser boa prática escolher o tempo mais longo para que o sinal gerado durante o arranque esteja o mais estável possível.

Saturday 18 February 2012

Lowpoly human brain texturing

PT: Criação do mapa de relevo para um modelo de baixa resolução de um cérebro em Blender 2.6X.
EN: Creating the bumpmap for a lowpoly brain model in Blender 2.6X.

Download or click on View Image to see full-size version
PT
  1. Modelo de baixo detalhe criado a partir de uma referência encontrada na wikipedia;
  2. Pintar os relevos do cérebro no modelo usando a opção de edição Texture Paint na 3D View; 
  3. Mapa da textura não organizada(o mapa UV foi feito com o auto-unwrapping, não é recomendável eu é que fui perguiçoso ... :P );
  4. Mapa da textura reorganizada (criar uma nova camada de mapeamento UV, criar os seams necessários e unwrap, usar Render > Bake > Texture gerar então a textura reorganizada); Desfocar a textura pouco para suavizar a pintura;
  5. Adicionar os modificadores de multires e displace; No displace usar nova textura para deformar a geometria e depois carregar em Apply, isto vai transferir a deformação para o multires;
  6. Colocar o preview do multires em zero e ir ao separador Render > Bake > Normals para transferir os normais para uma textura;
  7. Mapa da textura de relevo gerada;
  8. Previsualização em tempo real do modelo com as texturas criadas.
EN
  1. Lowpoly model created from a wikipedia reference;
  2. Paint brain relief using Texture Paint editing option in the 3D View;
  3. Unsorted texture map (the uvmapping was made with auto-unwrapping because i was too lasy ... :P );
  4. Fixed texture map with a new uv layout, the texture was created using the Render > Bake > Texture feature; The texture should be blurred a bit to smooth the painting;
  5. Add multires & displace modifiers; On displace modifier use the new texture to displace the geometry, then press on the Apply Button to merge the displace modifier with the multires;
  6. Set the preview on Multires to zero and go to Render > Bake > Normals to generate the bumpmap;
  7. The generated bumpmap texture;
  8. Profit :) !

Tuesday 14 February 2012

Sawtooth oscilator

This is a small sawtooth (almost) oscillator circuit which I have been tweaking the last weeks to generate a reasonably decent 100kHz waveform at Vcc=5V. It was based on some random schematic on the web, which didn't generated the output from 0V to Vcc, so I added a few more components and changed a few parts.

Circuit schematic
Assembled circuit
Oscilloscope signal capture

Basically it charges a capacitor (C1) and uses the 555 comparators to trigger the discharge via other PNP transistor(Q2). The triggering voltage is calibrated with the POT_2 and the capacitor fill time is calibrated with the POT_1.

It has a few glitches which didn't appeared on the simulation and neither on the breadboard(parasite capacitances FTW), but I also used some BC560 instead of the BC557.