Projecto Aurora

Olá! Mais uma vez passou algum tempo desde a última publicação. Gostaria de publicar mais frequentemente mas tenho andado bastante ocupado. Desta vez escrevo acerca de um projecto que desenvolvi com os meus amigos e colegas Gonçalo Pereira e Fábio Martins. Este projecto foi desenvolvido aos poucos entre Dezembro de 2010 e Maio de 2011 para a XXVI Semana Académica da Universidade do Algarve. O evento consiste numa semana inteira de festa, com concertos onde bandas portuguesas conhecidas e algumas bandas internacionais actuam. Cada curso da universidade gere uma "barraca" de 3x3m onde é feita a venda de bebidas de modo a angariar fundos para viagens de finalistas ou outros propósitos. Para o curso de Engenharia Eléctrica e Electrónica, que estávamos a representar, decidimos fazer algo que nunca havia sido feito antes naquela série de eventos, algo que que as pessoas nem estejam habituadas a ver na maioria dos bares e discotecas. Abaixo podem ver um vídeo do que fizémos, falado em bom português e com legendas em inglês :).

Boas! Alguma vez precisaram de um conversor de USB para RS232 para estabelecer comunicações série com o vosso microcontrolador? Se sim, provavelmente compraram um conversor de USB para RS232 e depois usaram um MAX232/DS232 para converter os níveis de tensão RS232 para níveis TTL ou LVTTL. A conversão feita desta forma requer algum dinheiro e também algum trabalho. Contudo, há uns cabos que fazem a conversão de uma ligação USB para uma ligação série com níveis LVTTL (compatíveis com TTL). A única coisa que tem de ser feita é mudar o conector. O último cabo que fiz custou-me apenas 1,85€ incluindo os portes! :D Se se comprar apenas um chip FTDI irá custar quase o dobro! (Sim, eu sei que os chips FTDI são provavelmente os melhores conversores USB-série mas a maioria dos utilizadores não necessitam de um conversor com as capacidades e especificações de um chip FTDI).

(Clicar na foto para ver com melhor resolução no Picasa Photostream)

Mais uma entrevista na RUA FM

Boas! No dia 9 de Novembro fiz uma publicação sobre uma entrevista (Entrevista na RUA FM) que dei à RUA FM acerca da participação da minha equipa na competição europeia de engenharia do BEST, em Istambul. Mais uma vez fui convidado para dar mais uma pequena entrevista, desta vez sobre Robótica Cognitiva, que irá estar a passar na rádio durante esta semana. Podem ouvir a entrevista no leitor acima ou fazer o download da mesma aqui. Espero que gostem. Podem também ouvir algumas outras entrevistas e conversas interessantes de docentes e alunos do departamento de engenharia electrotécnica da Universidade do Algarve aqui.




Achou esta publicação útil? Deseja contribuir para outros projectos envolvendo ciências computacionais, electrónica, robótica ou mecatrónica que serão publicados neste blog? Se sim, pode fazer uma doação utilizando o botão do Paypal abaixo. Obrigado! :)

Donate

Como usar OpenMP com CMake

Boas! Já lá vão alguns dias desde que escrevi alguma coisa neste blog mas tenho andado ocupado. De qualquer das formas, estou de volta e desta vez para escrever sobre o CMake e o OpenMP. Se não sabe o que é o CMake e não sabe como usá-lo, recomendo a leitura do tutorial anterior, Como usar CMake com OpenCV onde descrevo os passos básicos para se iniciar com o CMake.
OpenMP é uma API multi-plataforma que permite efectuar programação paralela com memória partilhada em C/C++ e Fortran. A API OpenMP define um modelo portável e escalável com uma interface simples para desenvolver aplicações com programação paralela em plataformas desde o computador de desktop ao supercomputador.
Após seguir os passos do tutorial que referi acima, bastará adicionar as seguintes linhas ao ficheiro CMakeLists.txt:
if(OPENMP_FOUND)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}")
endif()
Após a inserção destas linhas tudo estará pronto para usar as bibliotecas do OpenMP nos seus projectos. É só isto :) .



Achou esta publicação útil? Deseja contribuir para outros projectos envolvendo ciências computacionais, electrónica, robótica ou mecatrónica que serão publicados neste blog? Se sim, pode fazer uma doação utilizando o botão do Paypal abaixo. Obrigado! :)

Donate

Entrevista na RUA FM

Boas! Há uns tempos atrás fui à RUA FM com o meu amigo Gonçalo Pereira dar uma entrevista acerca da nossa participação na competição europeia de engenharia do BEST, em Istambul, como representantes portugueses na categoria de Team Design. A nossa equipa era composta por quatro estudantes de engenharia electrotécnica: eu, Gonçalo Pereira, Ana Margarida e João Lezinho. Após termos vencido a competição local do BEST, em Faro, e a competição nacional do BEST, no Porto, qualificámo-nos para a competição europeia. Após o regresso a casa, fomos convidados para partilhar a nossa experiência em Istambul na rádio universitária da Universidade do Algarve. Podem ouvir a entrevista acima ou fazer o download da mesma aqui. Podem também ouvir algumas outras entrevistas e conversas interessantes de docentes e alunos do departamento de engenharia electrotécnica da Universidade do Algarve aqui.



Actualização (23/11/11): Dei outra entrevista sobre Robótica Cognitiva à RUA FM. Podem ouvi-la aqui. :) 



Achou esta publicação útil? Deseja contribuir para outros projectos envolvendo ciências computacionais, electrónica, robótica ou mecatrónica que serão publicados neste blog? Se sim, pode fazer uma doação utilizando o botão do Paypal abaixo. Obrigado! :)

Donate


O meu laboratório caseiro

Boas! Desta vez vou mostrar-vos o meu laboratório caseiro onde eu habitualmente desmonto coisas ou construo dispositivos electrónicos, electromecânicos ou robóticos. O laboratório é essencialmente composto por duas bancadas: uma para programação e electrónica e outra para o trabalho pesado (cortar, furar, martelar, etc.)

(Clicar na foto para ver com melhor resolução no Picasa Photostream)

Olá outra vez! Um dos hábitos que tenho é levar dispositivos electrónicos velhos para casa apenas para os desmontar e aproveitar os diversos componentes electrónicos ou mecânicos tais como motores de passo ou DC que os mesmos possam conter. É sempre uma excelente maneira de aprender electrónica e poupar algum dinheiro. Às vezes ficamos a conhecer um novo circuito integrado... outras consegue-se aproveitar algum outro circuito integrado bastante dispendioso... outras consegue-se um circuito integrado que nem se conseguirar comprar se se quisesse apenas um ou dois... Por isso, o meu conselho  para todos os que gostam de passar o tempo a fazer projectos electrónicos é começar a recolher todos os aparelhos electrónicos que os vossos familiares e amigos deitem fora.
Até há algum tempo atrás costumava dessoldar os componentes com o ferro de soldar e um chupa-soldas, o que se traduzia num processo lento e às vezes ainda cansativo e irritante quando queria aproveitar algum componente com vontade própria de permanecer agarrado à placa e que muitas das vezes acabava por ficar unitilizável com patas arrancadas ao fim de 5 minutos a aquecer, puxar para aqui e empurrar para ali. A remoção de conectores ou circuitos integrados era particularmente difícil por causa da quantidade de pinos que têm. E a pior parte é que não era nada saudável estar tanto tempo de volta de uma placa a respirar os fumos da solda. Porém, agora uso outra técnica! :D

(Clicar na foto para ver com melhor resolução no Picasa Photostream)

Neste post vou descrever o processo para se configurar um cliente VPN Cisco utilizando o Gestor de Rede do Ubuntu. Uma VPN é uma rede privada virtual (Virtual Private Network). O que é que isto significa? Significa que se torna possível ligar o computador a uma rede de área local através da internet e fazer tudo o que se poderia fazer nessa rede (aceder a ficheiros num servidor, aceder a websites específicos, etc.) como se o computador estivesse ligado a essa rede por cabo ou por Wi-Fi.
A primeira coisa que é preciso fazer é instalar o plugin VPNC para o Gestor de Rede do Ubuntu, para que o mesmo suporte os protocolos das VPNs Cisco. Para instalá-lo, basta abrir o terminal e inserir o seguinte comando:
sudo apt-get install network-manager-vpnc
Depois basta clicar no ícone das ligações de rede na barra superior, à direita, clicar em "Ligações VPN" e depois em "Configurar VPN". Aparecerá a janela do Gestor de Rede e depois podem adicionar uma nova VPN e inserir toda a informação para se ligarem à VPN desejada, ou importar um ficheiro de configuração (.pcf), se houver um disponível.
Por fim, basta reiniciar o computador para que o gestor de rede assuma as configurações, e a ligação deverá funcionar, se todos os dados tiverem sido inseridos correctamente. Simples não é?
Agora irei dar mais algumas informações para o caso específico da VPN da Universidade do Algarve, que possui um servidor VPN Cisco ao qual se podem ligar para que possam aceder aos computadores/servidores da UAlg ou para acederem a sites apenas disponíveis dentro da rede da UAlg, tais como o IEEE Xplore, no qual podem fazer download de inúmeras publicações científicas. Também pode ser útil para a realização de trabalhos de bases de dados ou relacionados com desenvolvimento web, podendo-se assim aceder aos servidores internos que sejam disponibilizados para o efeito pelos docentes.
Para se ligarem à VPN da UAlg, basta utilizar o ficheiro de configuração Ualg.pcf existente dentro do ficheiro comprimido vpnclient-linux-x86_64-4.8.02.0030-k9.ualg.tar.gz (os outros ficheiros não são necessários) e importarem esse ficheiro no painel de ligações VPN do Gestor de Rede do Ubuntu. Depois, no separador VPN insiram o vosso nome de utilizador no campo "Nome do _utilizador" com o formato "axxxxx@ualg.pt" e no campo "Senha do utilizador" insiram a vossa password da UAlg. Cliquem em Gravar e a vossa ligação VPN ficará pronta a funcionar! :)



Achou esta publicação útil? Deseja contribuir para outros projectos envolvendo ciências computacionais, electrónica, robótica ou mecatrónica que serão publicados neste blog? Se sim, pode fazer uma doação utilizando o botão do Paypal abaixo. Obrigado! :)

Donate

Boas! Desta vez venho escrever sobre um excelente arquivador de componentes que encontrei, o zParts. Há uns tempos atrás decidi que era tempo de organizar as centenas de componentes electrónicos que tinha no meu laboratório em casa. Cheguei a pensar em desenvolver uma aplicação em que pudesse inserir as referências dos componentes, a quantidade de cada e ainda um botão para abrir o datasheet sem ter de procurar por um datasheet específico no meio de centenas de outros datasheets. Contudo, antes de me dedicar ao desenvolvimento de uma aplicação decidi procurar se esse trabalho já tinha sido feito por alguém antes e encontrei o zParts, de Jon Ziebell. Decidi experimentá-lo e acontece que era exactamente o que precisava. É escrito em Java, de modo que funciona em qualquer sistema operativo.

(Clicar na foto para ver com melhor resolução no Picasa Photostream)
É bastante simples de usar e permite a criação de categorias de componentes, subcategorias e componentes com a quantidade de campos que desejar. Pode ainda relacionar cada componente com uma imagem e com um datasheet. O que mais precisa? :) No meu caso, não me lembro de nada mais que pudesse precisar, mas se no seu caso houver alguma funcionalidade que gostaria de adicionar, pode fazê-lo, uma vez que é um projecto open source e o código-fonte está disponível no sourceforge. Se necessita de organizar os seus componentes, experimente! :) Para executar basta abrir um terminal, entrar na pasta para onde os ficheiros do zParts foram extraídos e escrever o seguinte comando:
java -jar zParts.jar
Se testou, gostou e quer adicionar um atalho para o zParts no Unity do Ubuntu 11.10 basta seguir os seguintes passos:
  1. Criar um ficheiro em /usr/share/applications chamado zparts.desktop e colar o texto seguinte no mesmo:
    [Desktop Entry]
    Version=1.0
    Type=Application
    Terminal=false
    Icon[en_GB]=/usr/share/icons/hicolor/scalable/apps/gdu-category-multipath.svg
    Name[en_GB]=zParts
    Exec=/<path to folder where you have zparts>/zparts_start.sh
    Name=zParts
    Icon=/usr/share/icons/hicolor/scalable/apps/gdu-category-multipath.svg
    NOTA: Não esquecer de colocar o caminho correcto na linha 'Exec'. Pode ainda mudar a linha do Icon para o caminho para o ícone que preferir.
  2. Ir até à pasta onde se encontra o zParts e criar um ficheiro com o nome .zparts_start.sh e colar o script seguinte no mesmo
    !/bin/bash
    cd <path to your zparts folder>
    java -jar zParts.jar
    NOTA: Não esquecer de por o caminho correcto na segunda linha.
  3. Dar ao script permissões para ser executado
    chmod +x .zparts_start.sh
    E é tudo! :) Agora basta abrir o menu Unity e escrever zParts e o atalho irá aparecer.
Se usa o M$ Window$ pode ainda experimentar o Component Organizer, que é um programa gratuito semelhante desenvolvido por um português (utilizador msr do fórum Lusorobotica. Pode verificar a thread do fórum acerca do programa aqui).



Achou esta publicação útil? Deseja contribuir para outros projectos envolvendo ciências computacionais, electrónica, robótica ou mecatrónica que serão publicados neste blog? Se sim, pode fazer uma doação utilizando o botão do Paypal abaixo. Obrigado! :)

Donate


Boas! Nesta publicação vou mostrar como configurar um ambiente de desenvolvimento para elaborar e compilar código para microcontroladores PIC, da Microchip.
Iremos precisar de três pacotes principais:
  1. gputils - uma colecção de ferramentas para os microncontroladores PIC da Microchip (TM). Inclui o gpasm, o gplink e o gplib.
  2. sdcc - small device C compiler
  3. piklab - um ambiente de desenvolvimento integrado (IDE) para aplicações baseadas nos microcontroladores PIC e dsPIC da Microchip semelhante ao ambiente de desenvolvimento MPLAB. Integra várias toolchains de compilação quer para C, quer para Assembly e suporta também os programadores mais comuns (série, paralelos, ICD2, Pickit2, Picstart+), o debugger ICD2, e vários bootloaders (Tiny, Pickit2 e Picdem).

Há algum tempo tive a necessidade de juntar vários PDFs num único ficheiro e não fazia a mínima ideia de como fazê-lo. Após uma breve pesquisa descobri que era relativamente fácil fazê-lo e decidi partilhar aqui "a receita". Primeiro é preciso instalar dois programas:
sudo apt-get install gs
sudo apt-get install pdftk
Depois basta abrir uma consola e executar o seguinte comando:
gs -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE=resulting_file.pdf -dBATCH file1.pdf file2.pdf file3.pdf
E é só isso! :) Pode mudar o nome do documento final "resulting_file.pdf" para outro nome qualquer à escolha e adicionar quantos ficheiros desejar para juntar num único PDF.



Achou esta publicação útil? Deseja contribuir para outros projectos envolvendo ciências computacionais, electrónica, robótica ou mecatrónica que serão publicados neste blog? Se sim, pode fazer uma doação utilizando o botão do Paypal abaixo. Obrigado! :)

Donate


Como usar OpenCV com CMake e Codeblocks no Ubuntu

Continuando as publicações anteriores sobre Como instalar o OpenCV 2.3.1 no Ubuntu 11.10 Oneiric Ocelot com Suporte para Pyhton e Como usar o CMake com o OpenCV agora vou mostrar como usar o OpenCV com o CMake e o Codeblocks IDE. O Codeblocks é um excelente IDE para C++ open source, multi-plataforma, gratuito e concebido para corresponder às maiores necessidades dos utilizadores. É um IDE bastante extensível e configurável. Tenho-o usado desde há mais de 2 anos e nunca senti qualquer necessidade de mudar para outro IDE. Suporta também depuração e code completion que são funcionalidades muito úteis.

(Clicar na foto para ver com melhor resolução no Picasa Photostream)
No Ubuntu 11.10 Oneiric Ocelot é bastante fácil adicionar um atalho de teclado personalizado. Basta clicar no ícone no canto superior direito do ecrã, depois em Definições do Sistema > Teclado > Atalhos. De seguida basta clicar no botão "+" para adicionar um novo atalho, dar-lhe um nome e escrever o comando desejado. Como exemplo, defini um atalho com o nome "Banshee" que executa o comando "banshee" quando carrego na combinação de teclas Shift+F4.

Fácil, não é? Contudo, se usar efeitos de visualização do desktop não irá conseguir adicionar um atalho de teclado desta maneira uma vez que o metacity deixa de ser o gestor do ambiente gráfico, sendo substituído pelo Compiz.

Como usar CMake com OpenCV

CMake  é um sistema de compilação open source e multi-plataforma. Consiste numa família de ferramentas concebidas para compilar, testar e criar pacotes de software. É usado para controlar o processo de compilação utilizando ficheiros de configuração simples e independentes da plataforma e dos compiladores usados. O CMake gera Makefiles que podem ser usados num ambiente de compilação à escolha do programador.

OpenCV é uma biblioteca open source de visão computacional que já foi referida neste blog (ver Como instalar o OpenCV 2.3.1 no Ubuntu 11.10 Oneiric Ocelot com Suporte para Python).

Este tutorial vai guiá-lo pelo processo de usar o CMake para compilar projectos que usem a biblioteca OpenCV. Este tutorial é baseado num outro tutorial feito por Damiles mas tem algumas pequenas mudanças.

O OpenCV (Open Source Computer Vision) é uma biblioteca de funções de programação para visão computacional em tempo real. É escrita em C/C++ e é usada no mundo inteiro em muitas aplicações de visão computacional.

Este tutorial é uma mistura de dois outros bons tutoriais de instalação do OpenCV: A Compreehensive Guide to Installing and Configuring OpenCV 2.3.1 on Ubuntu do site ozbots.org; e OpenCV Installation Guide on Debian and Ubuntu da OpenCV Wiki. Utilizei este procedimento com sucesso para instalar o OpenCV em dois computadores com arquitectura amd64 (um portátil e um desktop) a correr Ubuntu 11.10 Oneiric Ocelot. Contudo, se se deparar com algum problema pode consultar a publicação Comprehensive OpenCV Installation Troubleshooting Guide do site ozbots.

Primeira publicação

Olá! Esta é a publicação de inauguração deste blog. Espero que gostem dos conteúdos que serão publicados brevemente por aqui. A maioria será sobre robótica, electrónica, ciências computacionais, hacks, etc. Contudo, ocasionalmente poderei também publicar coisas sobre outros assuntos. Este blog é uma versão em português do blog original The BiT Bang Theory blog que é escrito em inglês. Resumidamente, espero que gostem das eventuais publicações que irei fazer por aqui :)


top