Developed Works

Aqui refiro uma serie de trabalhos realizados quer a nível individual a título lúdico, quer a nível académico.

Kesgina

Começo por referir um pequeno trabalho lúdico feito em Visual C++ com o intuito de melhorar o raciocínio algébrico. O seu nome é kesgina e pode ser descarregado no SourceForge.

Enigma 2000

A Enigma 2000 - Um codificador/descodificador (encoder/decoder) feito em C++ para a prompt do Dos. A passoword varia entre 8 e 16 bytes, o que resulta num encoder entre 64 e 128 bits. Mas como possui seis fases de codificação e inclui a técnica do cubo, pode equivaler a um encoder de 16*16*16*8 bits. Transforma qualquer ficheiro "bonito" em ruído branco. Garanto assim que nem o melhor computador do mundo (ECHELON's e familiares) com as melhores técnicas de reconhecimentos de padrões conseguem descodificar isto, nem daqui a 20000 anos. Descarregue o executável ou o código fonte para a linha de comandos do Dos ou pode descarregar aqui a versão executável para o Windows, ou o código completo para o Visual C++ 6. Pode também ler uma pequena descrição sobre o seu funcionamento algorítmico.

Será que o gelo depois de derretido faz aumentar o nível da água?

Será que o gelo depois de derretido faz aumentar o nível da água? Numa entrevista de emprego colocaram-me a seguinte questão: Imagine um cubo de gelo emergido dentro de um recipiente com água. Depois do cubo de gelo derreter completamente o que sucede ao nível da água? Manter-se-á? Aumentará ou diminuirá? Foi deveras caricato e coloquei a minha intuição racional, se é que tal se pode denominar sem se entrar em conflitos filológicos, contra os meus dados empíricos que referiam que o derretimento das calotas polares provocavam o aumento do nível médio da água do mar. Cheguei a casa e tentei aferir matemática e fisicamente o resultado. Pode ver aqui esse pequeno pensamento intitulado An ice cube principle reflection. Pode também descarregar a reflexão em formato pdf.

Dias úteis

Programa informático para calcular o número de dias úteis entre duas datas para qualquer cidade de Portugal. Sabia por exemplo que o dia da Páscoa é calculado tendo em consideração o equinócio da Primavera e um dia de lua cheia, ou seja, o dia da Páscoa no calendário Gregoriano (usado em Portugal) é o primeiro Domingo depois da primeira lua cheia depois do equinócio da Primavera. O Carnaval e a quinta-feira de corpo de Deus são calculados em função da Páscoa, sendo estes os três feriados móveis em Portugal. Também é sabido que cada município tem o seu feriado específico num certo dia do ano. Temos também todos os outros feriados fixos generalizados para Portugal. Os últimos feriados que foram acrescentado ao calendário presente foram o dia 25 de Abril e o 1º de Maio. Consideram-se dias úteis os dias de segunda a sexta-feira excluindo os feriados. O programa considera todos estes factores para calcular para qualquer cidade Portuguesa o número de dias úteis entre quaisquer duas datas do calendário. O resultado é inclusivo nas datas final e inicial, ou seja, entre dia 1 e dia 2 de um dado mês, se ambos forem dias úteis, o resultado será dois dias úteis de diferença. Programa desenvolvido para o Windows. Descarregue no Sourceforge ou aqui.

Primitivas e Integrais

Pequenos trabalhos e fichas com o objectivo de calcular primitivas e integrais. Inserem-se nestas fichas tabelas de primitivas/integrais muito úteis. Para descarregar estes exercícios pressione aqui. Estes cálculos podem ser usados a título de exemplo para calcular áreas.

Robótica (IST) - Rob3

Uma aplicação feita em Visual C++ para o ROB3, desenvolvida para a cadeira de Robótica. Consiste num programa que tem uma série de actuadores para as diferentes juntas de um braço robótico. É também possível, através da cinemática inversas manipular as posições das coordenadas da garra do braço no referencial cartesiano. Pode-se manipular apenas a posição das abcissas (x) da garra do braço; neste caso será necessário movimentar em conjunto uma seŕie de juntas para que a posição em y e z se mantenham constantes. Pode descarregar o programa aqui.

Robótica (IST) - JoanaDarm

Um simulador de um braço robótico para a cadeira de Robótica feito em OPENGL. O braço robótico é composto por três juntas rotacionais cada uma rodando nos três eixos, e é composta por duas juntas prismáticas, que se limitam a elevar ou reduzir linearmente um vector numa dada direcção. Todo o cálculo envolvendo a cinemática directa e inversa, assim como cálculo energético, bem como as aplicações práticas de um bi-braço robótico deste género pode ser descarregado aqui.

Inclui o relatório do trabalho, a aplicação em OPENGL e o ficheiro Leia-me.

Sistemas Electromecânicos (IST)

Um relatório extensivo para aferir sobre o funcionamento de uma máquina eléctrica assíncrona ou de indução. Fizeram-se estudos sobre o rendimento da máquina em função da rotação da mesma e comparou-se com a máquina eléctrica síncrona. Pode descarregar o relatório do projecto aqui. Este trabalho foi realizado para a cadeira de Sistemas Electromecânicos.

Reconhecimento de Padrões (KTH)

Pode também descarregar aqui um reconhecedor de números, baseado nos modelos de Markov. A aplicação está concebida para Matlab. Coloque os ficheiros todos na mesma directoria e execute "rec" da prompt do Matlab. Devo dizer que não está optimizado, pois a taxa de sucesso é da ordem dos 75 %. Feito para a cadeira de Reconhecimento de Padrões na KTH em Estocolmo. (Optimizado para MATLAB 6.0)

Introdução às redes de Telecomunicações (IST)

Trabalho realizado para a cadeira de Introdução às redes de Telecomunicações que consiste num cliente e num servidor que interagem entre si para poderem jogar o jogo do quatro em linha. Projecto realizado para o Linux. Descarregue aqui.

Fundamentos de Energia Eléctrica (IST)

Testes realizados para a cadeira de Fundamentos de Energia Eléctrica a uma máquina síncrona e a um transformador trifásico. Relatórios realizados em folha de cálculo.

Sistemas de Controlo Distribuídos em Tempo Real (IST)

Vários projectos entre os quais um controlador digital remoto para um motor eléctrico que foi necessário modelar. Trabalho realizado para a cadeira de Sistemas de Controlo Distribuídos em Tempo Real. Descarregue aqui.

Sistemas de Processamento e Controlo Digital (IST)

Na cadeira de Projectos de Sistemas de Processamento e Controlo Digital pretendeu-se desenvolver um projecto de controlo de um robô para seguir uma dada trajectória ou atingir uma posição final a partir de uma posição inicial. O robô é controlado via rádio a partir de um PC, e como sensor foi utilizada uma câmara de vídeo, externa ao robô. Descarregue o projecto aqui.

Programação Orientada por Objectos em C++ (KTH)

Um jogo feito para a cadeira de Programação por Objectos em C++ realizada ao abrigo do programa Erasmus na KTH em Estocolmo. Um jogo de aventura, de combate entre homens e máquinas, realizado para a linha de comandos do Dos.

Processamento de Imagem e Visão (IST)

O meu trabalho para a cadeira de Processamento de Imagem e Visão realizado em conjunto com o meu colega Karl-Heinz Gärtner. Consistiu em detectar em imagens em movimento certos padrões quadrados ou circulares que se deslocavam no seguimento das imagens. Para cada vídeo haviam diversos padrões. Era realizada uma detecção inicial e depois havia que fazer o seguimentos dos padrões em causa. Utilizaram-se diversos métodos de predição e de cálculo como a correlação matemática aplicada às imagens para fazer a detecção dos padrões pré-estabelecidos. Os padrões poderiam mudar de tamanho e rodar, aplicando-se nestes casos basicamente uma homografia. Os vídeos eram diversos, e sempre com um sistema estéreo de câmaras. Sabendo a posição tridimensional no espaço cartesiano das câmaras e as suas definições intrínsecas poderia calcular-se a posição tridimensional no espaço cartesiano dos objectos detectados, através de cálculo essencialmente matricial. Pode descarregar aqui o relatório do trabalho (em Inglês) ou o ficheiro do código fonte para MatLab.

Trabalho Final de Curso (IST)

O meu Trabalho Final de Curso foi realizado numa parceria entre o Instituto Superior Técnico e o Metropolitano de Lisboa, em que consistiu no teste dos comandos do maquinista do material circulante ao serviço do Metropolitano.

Os comandos foram simulados com auxílio de programas desenvolvidos (software) e de maquinaria externa (hardware) conectada ao computador. Os aparelhos externos inseriam os comandos numa unidade central de comando do metropolitano que se encontrava no laboratório de testes. Os programas de aplicação foram desenvolvidos para serem utilizados pelo pessoal operacional do metropolitano, e foram desenvolvido em LabView. O hardware foi planeado, desenhado em Eagle, e foi projectado para ser conectado ao PC através de uma placa PCI. Os comandos depois de inseridos na Unidade Central de Comando da carruagem eram lidos num barramento de dados, e processados pelo software instalado no PC. O programa fazia a confirmação que a UCC estava a operar correctamente.

O trabalho envolveu várias etapas. Numa primeira etapa foi necessário fazer um levantamento rigoroso de todos os comandos do maquinista e onde estes eram actuados nas maquinarias diversas das carruagens. Depois foi necessário desenvolver hardware que consistisse numa barramento de conversores que transformassem sinais digitais 0-5V para sinais 0-110V.

De seguida desenvolveu-se o software que simulava os comandos da carruagem motora do metropolitano, através de um painel no monitor do PC que fosse o mais fidedigno possível com o painel da carruagem. Este programa, através do hardware inseria os sinais na Unidade Central de Comando. A UCC enviava através do seu barramento de dados comum a todas as carruagens esta informação através do protocolo RS485. Estes dados eram lidos através de uma placa PCI e eram descodificados através de software por forma a garantir que a informação que circulava no barramento era consistente e de acordo com aquilo que havia sido inserido inicialmente.

Resumindo, fazíamos um teste fidedigno aos comandos do maquinista do material circulante ao serviço do metropolitano de Lisboa, que poderia ser feito através de um PC em laboratório, ou através de um portátil junto à carruagem tendo acesso às ligações correspondentes.

Pode descarregar o trabalho intitulado Simulação das funções da carruagem do material circulante do Metropolitano de Lisboa. O trabalho foi elaborado em conjunto com o meu colega Ricardo Santos. Tivemos um apoio fulcral do nosso prof. Pedro Miguel Ramos e da Eng. Cândida Borges.

Sendo eu um ciclista urbano assíduo, coloco aqui uma apresentação que fiz no âmbito do CCP (Certificado de Competências Pedagógicas de Formador, antigo CAP), com o apoio da MUBi, associação da qual faço parte, apresentação onde evoco as claras e grandes vantagens de se optar pela bicicleta em meios urbanos.

bina.pptx