Após muito tempo tentando configurar o Ubuntu para expandir o Desktop para 2 monitores consegui realizar a configuração correta utilizando este tutorial para configurar a função Xinerama de placas Nvidia.
O truque que observei foi de seguir o exemplo dado e aplicar a sua configuração atual. No meu caso, observando o arquivo xorg.conf (localizado em /etc/X11/xorg.conf) estava com a função TwinView estava ativada e funcionando e o que tive que fazer foi adaptar á Configuração do Xinerama da seguinte forma:
- Dupliquei a seção Monitor e Device, identificando cada um diferentemente. (estas configurações foram tiradas da configuração padrão criada pelo driver da Nvidia quando selecionado "separate X screens");
- Criei 2 seções Screen com a propriedade "Modes" da subsessão Display com as resoluções desejadas de cada monitor, que no caso eram iguais a "1680x1050" e "1024x768";
- Para mostrar qual era a disposição das telas, mesclei a seção ServerLayout de modo que os InputDevices eram os que eu já tinha na minha configuração anterior.
Finalmente, saí do modo gráfico ( ctrl + F5 por exemplo) e reiniciei a interface gráfica com sudo service lighdm restart.
Felizmente, agora tudo funciona como deveria.
*Edit: Importante acrescentar as linhas seguintes a cada device acidionado:
Option "RenderAccel" "true"
Option "UseEdidFreqs" "true"
E remover (no meu caso) a seguinte linha gerada automaticamente:
Option "nvidiaXineramaInfoOrder" "CRT-1"
sexta-feira, 3 de maio de 2013
sexta-feira, 26 de abril de 2013
Blender + pyserial
Algumas considerações sobre utilizar o Blender + pyserial :
Utilizando um arduino UNO a porta serial utilizada no Ubunto está em /dev/ttyACM0, e para se poder escrever nesta porta temos que executar o seguinte comando:
Utilizando um arduino UNO a porta serial utilizada no Ubunto está em /dev/ttyACM0, e para se poder escrever nesta porta temos que executar o seguinte comando:
sudo adduser user dialout Este comando adiciona o usuário "user" ao grupo dialout, para se poder escrever na serial. Em seguida deve-se reiniciar a sessão para a alteração ter efeito.
O script de comunicação serial a linha deve ficar assim:
G.SerialPort = serial.Serial('/dev/ttyACM0',9600)
sexta-feira, 12 de abril de 2013
Engine selecionada : Blender

Apesar do Blender não ter sido um dos programas que inicialmente planejei testar acabei por usar ele pois descobri que seu engine é muito eficiente nos aspectos que desejo implementar, além de ser também muito intuitivo.
Digo que o Blender Game Engine é eficiente não somente pelo fato de incorporar elementos que outras engines possuem, mas por incorporar o python com linguagem de scripting ele amplia as possibilidades de aplicação com o uso de módulos incluídos no python.
Tudo isso foi conseguido com uma instalação muito fácil, e com uma interface muito user-friendly. (Instalei a versão 2.66)
Do post anterior, eu gostaria de uma engine que:
- Tivesse possibilidade de tocar video
- Possibilitasse uma layer com animaçao (game) sobre o uma layer com um video
- Colher posição atual do video
- Conseguir enviar comandos para porta serial
Todos esses requisitos foram alcançados pelo Blender, que juntamente com o python, facilitou a o desenvolvimento do teste que descreverei a seguir.
A técnica para tocar video é criar uma textura a partir do vídeo desejado que é dinamicamente atualizada a cada frame pelo blender. Desta forma o video é executado, porém sem som.
O som deve ser tocado em paralelo, sincronizado com o video. Abaixo estão algumas imagens do projeto e o código-fonte está anexo e os controles relacionados para se tocar o video.
Neste projeto também existe um mini-game que roda em cima(literalmente) do video. Para este teste, segui o tutorial deste video do youtube.
O código para o video foi adaptado do código neste site, cujos créditos (aparentemente) vão para Dalai Felinto.
![]() |
| Sensores e controladores do minigame |
![]() |
| Sensores e controladores do video e envio de sinais |
Um ponto crucial deste teste foia integração com um hardware externo, comunicando-se por uma porta serial.
Para isso utilizei o módulo pyserial, que permite uma comunicação descomplicada com a porta serial.
Inicialmente tive problemas para a instalação deste módulo, uma vez que apesar de ele funcionar com o python 3.3 (python que vem com o Blender 2.66) ele é escrito para um python anterior.
Para contornar esse problema, instalei o pip para windows deste link e segui o tutorial de instalação do pyserial para o pip, e deu tudo certo.
Só como observação: você deve ter a versão do python 3.3 instalada no seu sistema para poder gerar o pacote do pyscript que você depois colocará na pasta do python para ser utilizada dentro do Blender.
Finalmente, utilizei um arduino mega para poder fazer os testes com a comunicação serial. O código para o arduino pode ser baixado aqui. O arquino em teste foi testado com uma shield com leds e reles.
Baixe aqui o arquivo .blend para testar o projeto.
Assinar:
Postagens (Atom)

