Primeiro projeto com microcontrolador

O pessoal deve ter percebido que estou meio sumido, tudo culpa da minha rotina louca trabalho-faculdade-trabalho-faculdade-trabalho-faculdade-faculdade-faculdade.....affff, principalmente a faculdade ("porque escolhi engenharia? ahuahauhauahuah, porque ADORO :)"), mas tudo bem um dia isso passa.
Estou com muitas novidades para postar aqui no blog, e uma delas é a minha iniciação no mundo dos microcontroladores, e só pra não deixar passar em branco meu primeiro projeto, fiz um vídeo mostrando o funcionamento do motor de passo de uma impressora Mecaf, girando no sentido horário e anti-horário, com sinalização dos bits de saida das portas RDB com leds.
O mais breve possível disponibilizarei um tutorial informando como fiz, o que utilizei e minhas dificuldades, também colocarei algumas informações sobre sistemas digitais.
Até a próxima...

http://www.youtube.com/watch?v=vjyRC8xzqeM

Remasterizando um LiveCd do [K]ubuntu com o UCK (Ubuntu Customization Kit)

Hoje vou mostrar com remasterizar um livecd do ubuntu com o UCK. Antes de conhecer o UCK eu utilizava o Reconstructor, mas como sou curioso por novas ferramentas...
Deixando de bla bla bla, vamos ao que interessa, como o modo de geração da ISO via linha de comando é bastante simples, iremos utiliza-lo, isso não quer dizer que o UCK não tenha um modo gráfico (podendo ser acessado via "uck-gui --wait-before-exit" *sem as aspas).

Antes de mais nada vamos instalar o UCK:


$ wget -c http://sourceforge.net/project/downloading.php?group_id=169959&use_mirror=ufpr&filename=uck_2.0.3_all.deb&46020298

$ sudo dpkg -i uck_2.0.3_all.deb && apt-get -f install


Depois de instalado vamos a brincadeira:

Por padrão a saída dos comandos serão salvas em /home/usuario/tmp

Para descompactar a ISO

$ sudo uck-remaster-unpack-iso distribuicao.iso


Mounting ISO image...
Unpacking ISO image...
Unmounting ISO image...

Montando o arquivo casper/filesystem.squashfs

$ sudo uck-remaster-unpack-rootfs


Removing remastering root dir...
rm: cannot remove directory `/home/usuario/tmp/remaster-root/tmp/.X11-unix': Device or resource busy
Mounting SquashFS image...
Unpacking SquashFS image...
Unmounting SquashFS image...


Agora vamos acessar o sistema da ISO para efetuar algumas modificações

$ sudo uck-remaster-chroot-rootfs


Ao término da configuração do sistema, é normal que surjam muitos pacotes "órfãos", bibliotecas e arquivos que não são mais usados por nenhum programa, servem apenas para ocupar espaço. Você pode localizar estas sobras facilmente usando o comando:

# deborphan


Ele retorna uma lista dos pacotes orfãos que você pode remover com segurança através do apt-get. Isso vai quase sempre liberar alguns megas.
Caso você tenha usado o apt-get update e o apt-get install você pode liberar mais um bom espaço limpando o cache local de pacotes:

# apt-get clean


Delete também o histórico de comandos do root, este arquivo armazena os últimos comandos usados. Não existe necessidade de divulgá-los ao mundo. Aproveite para eliminar também o diretório .rr_moved:


# rm -f /home/root/.bash_history
# rm -rf /.rr_moved

Depois de efetuar todas as suas configurações pressione CTRL+D para fechar o chroot.

O próximo passo é preparar o ambiente para geração da ISO

$ sudo uck-remaster-pack-rootfs 


Updating files lists...
Packing SquashFS image...
Parallel mksquashfs: Using 1 processor
Creating little endian 3.0 filesystem on /home/usuario/tmp/remaster-iso/casper/filesystem.squashfs, block size 65536.
[==========================================================================================================================] 73596/73596 100%
Exportable Little endian filesystem, data block size 65536, compressed data, compressed metadata, compressed fragments, duplicates are removed
Filesystem size 419377.71 Kbytes (409.55 Mbytes)
35.60% of uncompressed filesystem size (1178153.99 Kbytes)
Inode table size 755770 bytes (738.06 Kbytes)
30.92% of uncompressed inode table size (2444062 bytes)
Directory table size 683576 bytes (667.55 Kbytes)
46.89% of uncompressed directory table size (1457786 bytes)
Number of duplicate files found 5868
Number of inodes 74066
Number of files 62250
Number of fragments 6536
Number of symbolic links 5373
Number of device nodes 399
Number of fifo nodes 3
Number of socket nodes 1
Number of directories 6040
Number of uids 13
root (0)
messagebus (105)
unknown (3001)
haldaemon (107)
hamilton (1000)
daemon (1)
dhcp (100)
www-data (33)
man (6)
avahi (106)
news (9)
unknown (108)
hplip (103)
Number of gids 31
video (44)
audio (29)
tty (5)
kmem (15)
disk (6)
lp (7)
dip (30)
dialout (20)
cdrom (24)
adm (4)
daemon (1)
uucp (10)
messagebus (113)
avahi-autoipd (112)
bin (2)
dhcp (101)
shadow (42)
utmp (43)
scanner (104)
fuse (106)
plugdev (46)
admin (109)
nvram (105)
www-data (33)
ssl-cert (107)
staff (50)
src (40)
root (0)
nogroup (65534)
ssh (111)
mail (8)

E por fim, o comando para gerar a ISO em /home/usuario/tmp/remaster-new-files/Livecd.iso

$ sudo uck-remaster-pack-iso


Preparing directory for new files
Updating md5sums...
~/tmp/remaster-iso ~
~
Packing ISO image...
ISO description set to: Remastered Ubuntu LiveCD
Unknown file type (unallocated) /home/usuario/tmp/remaster-iso/.. - ignoring and continuing.
Size of boot image is 4 sectors -> No emulation
2.20% done, estimate finish Sat Sep 13 21:40:24 2008
4.40% done, estimate finish Sat Sep 13 21:40:46 2008
6.61% done, estimate finish Sat Sep 13 21:40:39 2008
8.81% done, estimate finish Sat Sep 13 21:40:35 2008
11.01% done, estimate finish Sat Sep 13 21:40:33 2008
13.21% done, estimate finish Sat Sep 13 21:40:31 2008
15.41% done, estimate finish Sat Sep 13 21:40:30 2008
17.61% done, estimate finish Sat Sep 13 21:40:29 2008
19.82% done, estimate finish Sat Sep 13 21:40:34 2008
22.01% done, estimate finish Sat Sep 13 21:40:42 2008
24.22% done, estimate finish Sat Sep 13 21:40:44 2008
26.42% done, estimate finish Sat Sep 13 21:40:42 2008
28.62% done, estimate finish Sat Sep 13 21:40:44 2008
30.82% done, estimate finish Sat Sep 13 21:40:46 2008
33.03% done, estimate finish Sat Sep 13 21:40:45 2008
35.22% done, estimate finish Sat Sep 13 21:40:46 2008
37.43% done, estimate finish Sat Sep 13 21:40:48 2008
39.63% done, estimate finish Sat Sep 13 21:40:46 2008
41.83% done, estimate finish Sat Sep 13 21:40:47 2008
44.03% done, estimate finish Sat Sep 13 21:40:48 2008
46.23% done, estimate finish Sat Sep 13 21:40:49 2008
48.43% done, estimate finish Sat Sep 13 21:40:48 2008
50.64% done, estimate finish Sat Sep 13 21:40:49 2008
52.83% done, estimate finish Sat Sep 13 21:40:52 2008
55.04% done, estimate finish Sat Sep 13 21:40:53 2008
57.24% done, estimate finish Sat Sep 13 21:40:53 2008
59.44% done, estimate finish Sat Sep 13 21:40:54 2008
61.64% done, estimate finish Sat Sep 13 21:40:53 2008
63.85% done, estimate finish Sat Sep 13 21:40:53 2008
66.04% done, estimate finish Sat Sep 13 21:40:54 2008
68.25% done, estimate finish Sat Sep 13 21:40:53 2008
70.45% done, estimate finish Sat Sep 13 21:40:53 2008
72.65% done, estimate finish Sat Sep 13 21:40:54 2008
74.85% done, estimate finish Sat Sep 13 21:40:54 2008
77.05% done, estimate finish Sat Sep 13 21:40:53 2008
79.25% done, estimate finish Sat Sep 13 21:40:54 2008
81.46% done, estimate finish Sat Sep 13 21:40:54 2008
83.66% done, estimate finish Sat Sep 13 21:40:56 2008
85.86% done, estimate finish Sat Sep 13 21:40:56 2008
88.06% done, estimate finish Sat Sep 13 21:40:56 2008
90.26% done, estimate finish Sat Sep 13 21:40:56 2008
92.46% done, estimate finish Sat Sep 13 21:40:56 2008
94.67% done, estimate finish Sat Sep 13 21:40:56 2008
96.87% done, estimate finish Sat Sep 13 21:40:58 2008
99.07% done, estimate finish Sat Sep 13 21:40:57 2008
Total translation table size: 2048
Total rockridge attributes bytes: 37962
Total directory bytes: 141436
Path table size(bytes): 908
Max brk space used 42000
227123 extents written (443 MB)

Pronto a ISO está criada.
Qualquer duvida e correções mande um comentario, até a proxima.

Criando um Pen-Drive de Boot com o Unetbootin

Uma forma de criar um pendriver de boot com muita facilidade, tanto no linux como no windows é utilizadando o UNETBOOTIN, o sistema é bastante intuitivo, por isso não vou explicar aqui o seu funcionamento mas fica ai a dica.

Edição de arquivos remoto via SSH/SFTP com Eclipse

Antes de conhecer o plugin RSE - Remote System Explorer para o eclipse, eu utilizava a dupla notepad++ e Winscp no windows e o Kate no linux para programar em PHP, mas comecei a ter alguns problema de sincronismo de arquivos com a dupla do windows, por isso fui atras de uma outra alternativa.
Em minha procura, encontrei o projeto DSDP, responsável por criar plugins para desenvolvimento de sistemas embarcados com eclipse, e um desses plugins é o RSE no qual é uma otima ferramenta para acessar um host remoto.
Abaixo descrevo como deve seguir a instalação e uma configuração básica desse plugin.

1 - Instalação:

  • Acesse Help->Software updadtes -> Find and Intall...
  • Marque a opção "Search for new features to install"
  • Escolha a opção "New Remote Site..."
  • Adicione os mirror's http://download.eclipse.org/dsdp/tm/updates e http://download.eclipse.org/releases/europa
o segundo mirror já vem no Eclipse europa e no Zend 6.
  • Marque os dois mirros que foi adicionado e clique em "Finish"
  • No próximo passo escolha apenas o mirror http://download.eclipse.org/dsdp/tm/updates para instalação.
  • Continue até o termino da instalação

2 - Configurando o RSE:

  • Acesse Window -> Open Perspective -> Other, escolha a opção "Remote Systems Explorer" e clique em OK
  • No lado esquerdo da IDE irá aparecer uma aba com o RSE
  • Para adicionar uma nova conexão clique com o botão direito do mouse e escolha "NEW", depois escolha a opção "SSH Only",adicione os dados pedidos e pronto, a conexão com o servidor remoto está feita.
Obs: na opção "HostName" pode ser utilizado o IP do servidor.

Esse post teve o intuito apenas de apresentar esse plugin, em um outro post irei mostrar como utiliza-lo.
Testei esse plugin no Eclise Europe, no EasyEclipse PHP e no Zend Framework 6, todos com sucesso.

Resolução de sistema linear por Gauss-Seidel

Método de resolução de um sistema linear onde a diagonal principal da matriz seja dominante.
Programa feit no MATLAB

Método de Gauss-Seidel

Como já sabem o arquivo está com extensão .pdf então salve o arquivo na sua maquina e depois renomeie para .rar, depois é so descompactar.
Download aqui ->gauss

Método de procura de raízes em uma determinada função matemática

Estarei disponibilizando três método para procura de raízes em uma determinada função matemática.
Programas feito no MATLAB.
O método da BISSEÇÃO, NEWTON-RAPHSON e SECANTE

Como já sabem o arquivo está com extensão .pdf então salve o arquivo na sua maquina e depois renomeie para .rar, depois é so descompactar.
Download aqui -> metodos_raizes

Método dos Mínimos quadrados para Ajuste de Curva

Como tenho feito diversos trabalhos na faculdade, estarei disponibilizando aqui alguns deles.
Hoje vou postar um programa feito em MATLAB que tem o objetivo de linearizar uma curva pelo método dos mínimos quadrados, para executa-lo no MATLAB digite "systemajuste", ele está bem estável e com interface gráfica e tudo.

Como já sabem o arquivo está com extensão .pdf então salve o arquivo na sua maquina e depois renomeie para .rar, depois é so descompactar.
Download aqui -> Linearização de curva

CVESS - Cálculo de viabilidade econômica de um sistema solar

Como prometido a alguns posts anteriores, estou disponibilizando aqui o programa CVESS que fiz na faculdade que tem o objetivo de calcular a viabilidade econômica de um sistema solar, o sistema foi todo feito em C e GTK e com geração do relatório em html, o sistema foi feito utilizando o DEV-CPP (mas recomendo o Code::Blocks para desenvolvimento de outros programas), também está incluso a documentação feita com doxgen e o programa sem a interface grafica.
Espero que se programa ajude a quem está começando a programar em C e GTK
[wp_caption id="attachment_112" align="aligncenter" width="300" caption="Tela do CVESS"]Tela do CVESS[/wp_caption].
Para fazer o download, escolha "salvar como", após salvar renomeie o arquivo com a extensão .zip, metódo utilizado, porque o wordpress não tem opção de upload de arquivos .zip.
Fazer o download -> cvess-engenharia-codigo-fonte-e-documentacao
Qualquer duvida sobre o programa deixe um comentário.

Ajude a sustentar a Wikipédia e outros projetos, sem colocar a mão no bolso, e concorra a um Eee PC!

…e também a pen drives, card drives, camisetas geeks, livros e mais! O BR-Linux e o Efetividade lançaram uma campanha para ajudar a Wikimedia Foundation e outros mantenedores de projetos que usamos no dia-a-dia on-line. Se você puder doar diretamente, ou contribuir de outra forma, são sempre melhores opções. Mas se não puder, veja as regras da promoção e participe - quanto mais divulgação, maior será a doação do BR-Linux e do Efetividade, e você ainda concorre a diversos brindes!

Montando um ambiente de desenvolvimento C e GTK com CodeBlocks no Windows

A seguir descrevo um tutorial sobre como montar um ambiente de desenvolvimento windows, para C com GTK. Como vocês podem perceber mudei minha IDE de desenvolvimento. Estou utilizando hoje o Code::Blocks Nightly Builds por duas razões: Primeiro: O Code::Blocks é uma IDE multi-plataforma, quer dizer funciona muito bem tanto no Windows como no Linux (Farei um tutorial de instalação no linux em outro post) e a Segunda: O Code::Blocks funciona perfeitamente com o GDB "GNU source level debbuger", um ótimo e maravilhoso depurador. Até porque o ele está em constante desenvolvimento, melhorando a cada dia.


Mas vamos deixa de blábláblá e partir para ação.



Criando uma pasta



Muitas dores de cabeça são evitadas se você criar uma pasta para conter todo o seu ambiente de desenvolvimento.Essa pasta deve ser criada preferencialmente na raíz. Por exemplo: C:\Desenv


Dentro dessa pasta, crie também uma subpasta chamada dlls. Essa subpasta servirá para você colocar todas as bibliotecas. Um bom nome para ela seria: C:\Desenv\dlls.



Inserindo caminhos no path do windows



Muitas pastas, como a pasta de dlls deverão ser adicionadas ao path. Por padrão, o Windows apenas procura por arquivos que estejam no mesmo diretório da aplicação sendo executada ou que estejam listados na variável de ambiente path.


Para acrescentar um diretório ao path, siga os passos abaixo:


1. Abra as propriedades do sistema no painel de controle. A janela também pode ser aberta pressionando simultaneamente a tecla do windows e a tecla break;


2. Clique na aba "Avançado" e em "Variáveis de Ambiente";


3. Na parte de baixo, procure a variável chamada Path:


path_1.png


4. Clique em editar. Adicione um ";"(sem as aspas) e o seu diretório de dlls (no nosso caso C:\Desenv\dlls).


ScreenShot002.png



Instalando o MinGW e o GDB



O MinGW é a versão para windows de um dos mais famosos compiladores C/C++, o GNU. É ele quem irá transformar nossos arquivos .c e .h em programas executáveis reais. O site oficial do MinGW é: http://www.mingw.org


Para instala-lo:


1. Baixe o "Automated MinGW installer". Quando este artigo foi escrito, a versão disponível era a 5.1.3. O site de download do MinGW pode ser acessado clicando aqui.


2. Do mesmo site, baixe também o "GNU source level debbuger", ou simplesmente GDB, na versão 5.2.1. Você encontrará essa versão clicando sobre o nome "GNU source level debbuger" ou procurando na longa lista da parte inferior a tabela principal. Se quiser, pode arriscar também trabalhar com o release candidate 6.6.


3. Rode o MinGW installer e passe a tela de abertura;


4. Selecione a opção Download and Install;


5. Concorde com a licença (I Agree);


6. Você pode escolher entre instalar a versão atual clicando em Current (recomendado), uma pré-release da próxima versão clicando em Candidate ou uma das versões antigas clicando em Previous. Para esse tutorial, clique em Current;


7. Selecione as opções MinGW base tools, g++ compiler e MinGW Make:


mingw.png


8. Selecione o diretório para instalação do aplicativo. É recomendável colocar dentro da sua pasta de desenvolvimento. Por exemplo: C:\Desenv\MinGW


9. Clique em Next e em Install. O aplicativo será baixado e instalado na sua máquina. Para a versão 5.1.3, serão 65.8mb;


10. Após a instalação, adicione a pasta bin do mingw a seu path. ;C:\Desenv\MinGW\bin


11. Rode o instalador do gdb e siga todos os passos da instalação. Ele será instalado no mesmo diretório do MinGW (No nosso caso: C:\Desenv\MinGW)


12. Esse passo é necessário apenas para usuários do Windows Vista: Copie o conteúdo do diretório MinGW\libexec\gcc\mingw32\3.4.5 para o diretório MinGW\bin



Instalando o Code::Blocks



Seria possível escrever nossos próprios programas usando apenas o MinGW e o bloco de notas. Mas essa é uma tarefa tediosa e pouco produtiva. Para facilitar a edição de código, controlar automaticamente o make e ainda fornecer uma interface amigável com o depurador, vamos instalar o Code::Blocks. O Code::Blocks é uma IDE gratuita, leve e poderosa e tem versões para diversos sistemas operacionais. O site oficial do Code::Blocks é http://www.codeblocks.org. Os arquivos de instalação estão compactados no formato 7z. Para descompacta-los você pode usar a última versão do WinRar, ou o 7-zip. O 7-zip pode ser baixado aqui.


Para instalar o Code::Blocks, faça o seguinte:


1. Entre no fórum de Nightly Builds do Code::Blocks. É muito importante que você baixe uma nightly build, não a versão oficial. Não há versões oficiais desde 2005. O fórum pode ser acessado clicando aqui.


2. Procure a versão mais atual possível e clique no link. Haverá um texto como "The 24 December 2007 build (4750) is out". Os tópicos não estão rigorosamente ordenados por data;


3. Na página, devemos fazer o download indicado em dois dos links. O primeiro é da biblioteca wxwidget.dll, necessária para o funcionamento do CodeBlocks. Será necessário baixa-la apenas uma vez. Depois disso, grave-a no diretório de dlls de sua pasta Desenv;


4. O segundo é o próprio Code::Blocks. Faça o download completo.


5. Crie uma pasta chamada CodeBlocks no seu diretório de desenvolvimento e descompacte o arquivo lá dentro. Por exemplo: C:\Desenv\CodeBlocks


6. No seu diretório de desenvolvimento, crie também uma pasta chamada Projetos, que é onde você gravará os seus projetos feitos no Code::Blocks;


Não será necessário baixar o arquivo mingwm10.7z. O mingw já se encarregou disso. Abaixo, está um exemplo do site de uma nightly build, os retângulos vermelho e púrpura destacam os arquivos a serem baixados:


ScreenShot003.png




Instalando o GTK



Agora iremos instalar o GTK, faça o download do da ultima versão do gtk-dev, ao escrever esse post a versão atual era a 2.10.11 que já vinha com o Glade instalado (Link para versão 2.10.11).


Instalando:


1. No processo de instalação do GTK ao escolher a pasta de instalação insira a pasta de densenvovimento (No nosso caso C:\Desenv\GTK). E bom seguir esse metodo para que fique tudo organizado.



Configurando o Code::Blocks



Para nossa alegria as ultimas versões do Code::Blocks Nightly Builds já vem com um wizard de criação de projetos GTK, sendo necessário apenas escolhe-lo, pois o mesmo irá criar um projeto com um modelo para testar.


1. Criando um novo projeto: File->New->Project...


ScreenShot009.png


2. Escolhendo o wizard "GTK+ project".


ScreenShot008.png


3. Continuar o procedimento


ScreenShot004.png


4. Insira as informações do seu projeto e escolha a pasta para adicionar-lo (No nosso caso C:\Desenv\Projetos\).


ScreenShot005.png


5. Aqui será pedido o caminho onde o GTK foi instalado, prescione "Next", pois será na proxima tela a configuração necessária.


ScreenShot006.png


6. Nessa tela adicione os seguintes caminhos e flags.



  • base - C:\Desenv\GTK

  • include - C:\Desenv\GTK\include

  • lib - C:\Desenv\GTK\lib

  • obj - C:\Desenv\GTK\bin

  • cflags - pkg-config --cflags gtk+-2.0

  • lflags - pkg-config --libs gtk+-2.0



Após essas configurações prescione "Close", o configurador voltará a tela anterior, prescione "Next", aparecerá um erro, apenas prescione "OK", e prossigar a configuração.



ScreenShot007.png


7. Finalize a configuração e pronto. OBS: A configuração de caminho e flags só será necessário efetuar um vez.


ScreenShot010.png


8. Prescione F9 para compilar o projeto criado e pronto.


ScreenShot011.png


9. Agora é só trabalhar.

O post acima foi baseado no post do ótimo blog PontoV do Vinícius Godoy de Mendonça, onde ele teve uma ótima ideia de como organizar a instalação dos aplicativos acima citados.


Qualquer dúvida e correção deixe seu comentário.




Del.icio.us :