Para facilitar o estudo da viabilidade técnica, decidimos dividir as várias tecnologias de acordo com a componente do sistema em que poderão servir de suporte. Assim, temos três categorias: interação com o desenho, interação com o telemóvel e interação com o website.
Neste ponto procuramos analisar as tecnologias necessárias à recolha dos movimentos corporais do utilizador, de forma a poder executar ações sobre o desenho.
| a) Dispositivo móvel com acelerómetro e giroscópio embutidos | |
A generalização dos smartphones com sensores de movimento levou a uma revolução no modo como interagimos com estes dispositivos. Atualmente, os dispositivos mais avançados estão dotados de acelerómetro, mede a aceleração linear do dispositivo; giroscópio, deteta a orientação no espaço; pedómetro, bússola, termómetro, barómetros e leitores de impressões digitais. Para o nosso projeto, a interação com a projeção poderia ser feita através do telemóvel, como se de uma lata de tinta se tratasse. Para isso, seria necessário detetar não apenas a orientação do dispositivo face ao seu eixo, mas também a sua localização relativa a um ponto fixo, ponto de calibragem inicial ou algum sensor da instalação. Assim, seria necessário combinar os dados recolhidos pelo acelerómetro e do giroscópio, de modo a detetar a aceleração ocorrida e orientação, calcular a velocidade atual do movimento e a posição relativa ao início da deslocação. Esta técnica de navegação denomina-se “Sistema de Navegação Inercial” e é utilizado, por exemplo, em mísseis, aeronaves e navios. No entanto, a utilização deste sistema depende muito do rigor dos sensores e dos cálculos efetuados, tornando-a numa alternativa difícil de implementar, o que poderá resultar numa experiência para o utilizador mais frustrante. Por outro lado, a presença do giroscópio é ainda limitada a telemóveis mais avançados, tendência que se prevê melhorar nos próximos anos. Links úteis: | |
| Vantagens | Desvantagens |
| - Familiaridade dos utilizadores com o dispositivo é maior; - O dispositivo não necessita de ser disponibilizado pela instalação. | - Compatibilidades de SO; - Acesso aos mercados de aplicações pode ser demorado e necessitar de uma ligação à internet; - A presença do giroscópio é atualmente reservada a dispositivos mais avançados (dispendiosos). |
| |
| b) Microsoft Kinect | |
Em 2010, a Microsoft lança a câmara que promete revolucionar o modo como interagimos como a tecnologia. Inicialmente apelidado de “Project Natal”, o Kinect começou por ser disponibilizado como acessório para a consola XBOX 360. Atualmente existe já uma versão dedicada ao PC, permitindo que a comunidade de utilizadores e produtores de conteúdos para a plataforma se desenvolva. A programação de conteúdos para a plataforma poderá ser desenvolvida diretamente numa linguagem de programação, C++ ou C#, ou através das diversas frameworks desenvolvidas pela Microsoft e comunidade, permitindo outras linguagens como ActionScript 3.0 e Java, por exemplo. O dispositivo incorpora uma câmara RGB, sensores de profundidade por infravermelhos e um array de microfones, de modo a distinguir a voz dos utilizadores dos ruídos de fundo. A combinação destes sensores permite a captura 3D do movimento corporal do utilizador, reconhecimento facial e de voz. Links úteis: | |
| Vantagens | Desvantagens |
| - Boa relação qualidade/preço; - Abertura da plataforma ao desenvolvimento pela comunidade; - Reconhecimento do posicionamento 3D das várias partes do corpo (não se limita a reconhecer movimento); - Reconhecimento facial e de comandos de voz; - Não necessita de dispositivos extras para interação com a plataforma; - Multi-utilizador; - Permite combinar vários dispositivos. | - É necessário posicionar o dispositivo corretamente (distância mínima de 40cm). |
| |
| c) Playstation Eye + Playstation Move | |
O pacote Plastation Eye com os comandos Playstation Move permite detetar os movimentos de até quatro utilizadores. O comando é dotado de uma esfera luminosa no topo, adaptando a sua cor ao ambiente da sala onde é utilizado. Desta forma, a esfera toma uma cor única, não se misturando com o fundo (efeito chroma key), que será captada pela câmara, Playstation Eye. Links úteis: | |
| Vantagens | Desvantagens |
| - Multi-jogador (4 comandos/utilizadores); - Feedback luminoso e por vibração; - Permite localização 3D no espaço. | - Plataforma mais fechada; - Necessita de um comando por utilizador; - Necessita de um segundo comando para detetar o movimento de ambas as mãos; - O comando terá de ser responsabilidade da instalação; - Custo final acrescido pela necessidade de vários comandos; - Autonomia dos comandos (bateria). |
| |
| d) Nintendo Wii Remote | |
O comando apresentado pela Nintendo foi pioneiro na deteção de movimentos por acelerómetro em videojogos. Combinando os dados recolhidos pelo acelerómetro de 3 eixos e com os dados do detetor de infravermelhos, é possível calcular a orientação do comando e o local para onde este aponta. O recetor infravermelhos presente no topo do comando calcula a posição da mira no ecrã através da posição do emissor de infravermelhos que se encontra fixo (geralmente sobre a TV).
A introdução do Wii Motion Plus vem adicionar um giroscópio ao sistema, permitindo-nos melhor detalhe na captura do movimento e orientação do comando, e até o desenvolvimento de um sistema de navegação por inércia. Links úteis: | |
| Vantagens | Desvantagens |
| - Multi-jogador (4 comandos/utilizadores); - Feedback sonoro no comando e vibração; - Comando com acelerómetro e giroscópio; - Comando com capacidade de armazenamento (16KB); - Maior número de botões e botões direcionais; - Sensor ótico por infravermelhos. | - Plataforma mais fechada; - Necessita de um comando por utilizador; - Necessita de um segundo comando para detetar o movimento de ambas as mãos; - Nunchuk com sensor menos preciso; - Giroscópio necessita do Wii Motion Plus; - O comando terá de ser responsabilidade da instalação; - Custo final acrescido pela necessidade de vários comandos; - Distância reduzida do sensor de infravermelhos e pouco - Autonomia dos comandos (pilhas ou bateria comprada à parte). |
| |
| e) Ultrasons | |
A utilização de ultrassons para reconhecimento espacial é uma tecnologia com alguma maturação, sendo utilizada na navegação marítima, exploração do fundo marítimo e do subsolo, medicina, entre outras áreas. A sua utilização é também observada na natureza, nomeadamente nos sistemas de navegação dos morcegos e golfinhos. Dotando um dispositivo de um emissor de ultrassons, ou um conjunto destes, é possível receber os sons emitidos por diversos microfones e, calculando do desfasamento entre os tempos registados em cada ponto, calcular a posição no espaço dos dispositivos. No entanto, esta tecnologia ainda não está muito presente no mercado doméstico, podendo tornar o seu desenvolvimento numa tarefa mais árdua e dispendiosa. Links úteis: | |
| Vantagens | Desvantagens |
| - A luminosidade e as cores ambiente não afetam o funcionamento. | - Pouca documentação; - Tecnologia mais dispendiosa; - Possibilidade de interferências. |
| |
Analisando as várias tecnologias que poderiam ser utilizadas, o Kinect destaca-se como a tecnologia mais propícia a ser utilizada. Ao contrário de outras opções, não necessita de dispositivos individuais para cada utilizador e permite a captura dos movimentos a três dimensões, tornando-a numa excelente opção e a um preço mais acessível. Por outro lado, o facto de terem sido disponibilizadas ferramentas de desenvolvimento pela Microsoft e de já existir uma versão dedicada para PC, refletem-se numa maior comunidade de produtores de conteúdos, maior documentação e mais ferramentas. Contrariamente à maioria das opções, através de algumas frameworks, permite o desenvolvimento em linguagens de programação já conhecidas do grupo, nomeadamente o AS3.

Os dados recolhidos pelos sensores são enviados para um socket server, utilizando o driver libfreenect para assegurar a comunicação. Este servidor irá analisar os dados do “Depth stream” recolhido e disponibiliza-los a pedido do AS3.
Embora já existam alguns projetos para desempenhar o papel deste servidor, apenas durante os primeiros contactos com o Kinnect é que poderemos identificar qual a plataforma indicada ao nosso trabalho. Por enquanto, ficam apenas registadas as ligações às frameworks.
Neste ponto procuramos analisar as tecnologias necessárias à utilização de um dispositivo móvel para autenticar o utilizador e servir de palete de cores/ferramentas à aplicação.
| Aplicações Nativas (desenvolvida na linguagem nativa do SO do dispositivo) | |
| Java | Vantagens - O facto de o sistema operativo Android usar a linguagem Java nativamente permite uma melhor compatibilidade e desempenho da aplicação. Desvantagens - A necessidade de aprender uma linguagem nova pode atrasar o desenvolvimento do trabalho e resultar num produto abaixo das espectativas; - Incompatibilidade com outros sistemas operativos; - O download e instalação da aplicação seria um pouco desmotivador, já que, para além disto, o utilizador também necessita de cumprir outros requisitos para poder utilizar o LivePainting. |
| Objective-C | Vantagens - O facto de o sistema operativo iOS utilizar nativamente a linguagem Objective-C permite uma melhor compatibilidade e desempenho da aplicação. Desvantagens - A necessidade de aprender uma linguagem nova pode atrasar o desenvolvimento do trabalho e resultar num produto abaixo das espectativas; - O download e instalação da aplicação seria um pouco desmotivador, já que, para além disto, o utilizador também necessita de cumprir outros requisitos para poder utilizar o LivePainting. |
| Aplicações Web (desenvolvida numa linguagem Web) | |
| Phonegap | Vantagens - Compatibilidade com um maior número de dispositivos (trabalha com vários sistemas operativos). Isto deve-se ao facto de a programação de aplicações utilizando PhoneGap ser feita numa linguagem única, que depois será convertida nas diversas linguagens nativas. Isto permite o desenvolvimento multi-plataforma; - Facilidade para o desenvolvimento da aplicação visto que o PhoneGap utiliza linguagens de programação que são familiares ao nosso grupo, tais como HTML, CSS e JavaScript; - Possibilidade de acesso facilitado a componentes do telemóvel, tais como acelerómetro e a dados de geolocalização. Desvantagens - A necessidade de o utilizador ter de descarregar e instalar a aplicação. |
| Website online (alojado na internet e/ou na instalação) | Vantagens - Utilização de linguagens de programação que nos são familiares, o que vai agilizar e simplificar o processo de programação da web-app; - A existência de um ponto de acesso wi-fi no local da instalação, vai permitir a todos os utilizadores com um dispositivo compatível conectarem-se à instalação do LivePainting; - A maior rapidez, do ponto de vista do utilizador, que assim não necessita de descarregar uma aplicação e perder tempo na instalação da mesma. Desvantagens - Necessidade de uma ligação ao servidor; - Necessidade de inserção do URL; - Compatibilidade entre browsers. |
| Adobe AIR | Vantagens - Compatibilidade da plataforma com diferentes sistemas operativos; - Utilização de Actionscript 3.0; Desvantagens - Compatibilidade da plataforma da Adobe limitada a certos dispositivos (o Samsung Gio do grupo, por exemplo, não é compatível. |
Analisando as opções disponíveis, verifica-se uma grande vantagem das aplicações suportadas por linguagens Web face às implementadas na linguagem nativa dos dispositivos. O facto de serem multiplataforma e já dominadas pelo grupo, tornará o desenvolvimento mais rápido, podendo resultar num produto melhor acabado.
No entanto, qualquer aplicação web está dependente da interpretação do browser do cliente. Assim sendo, achamos necessário proceder a um breve estudo para conhecer o mercado do browsers nos dispositivos móveis.
Utilização dos diferentes browsers móveis em Portugal
Source: StatCounter Global Stats - Mobile Browser Market Share
Utilização dos diferentes browsers móveis no Mundo
Source: StatCounter Global Stats - Mobile Browser Market Share
Em Portugal, verificamos que a grande maioria dos inquiridos utiliza os browsers nativos dos dispositivos Android, iPhone e Nokia (70,93%), existindo ainda uma faixa de utilizadores considerável utilizando Opera (10,33%). No paradigma mundial, existe um grande equilíbrio entre os browsers móveis mais utilizados, verificando-se uma pequena vantagem para o Opera.
Neste ponto procuramos analisar as tecnologias necessárias ao desenvolvimento de um site de suporte à aplicação.
A par da instalação física que iremos concretizar, pretendemos desenvolver um site recorrendo a algumas linguagens de programação. Relativamente às linguagens front-end, queremos fazer uso especialmente das tecnologias html e css para formatar o aspeto do site. Para lhe conferir algum dinamismo, utilizaremos javascript e, caso haja necessidade, recorreremos a jquery.
Quanto à linguagem back-end, temos duas alternativas possíveis. Podemos optar por programar o site “manualmente”, utilizando PHP ou ASP ou, por ouro lado, utilizar sistemas de gestão de conteúdos, como é o caso do Drupall, Joomla ou Wordpress.
O PHP para além das vantagens de ser livre e muito versátil, ter-se tornado no standard do mercado e existir uma grande comunidade de suporte, foi a única aprendida pelo grupo.
O Drupall é uma plataforma mais indicada para projetos com prazos alargados, quando é necessária programação extensa e o design não é um elemento de grande relevância. Já o Joomla, requer menos tempo de aprendizagem, permitindo uma implementação mais rápida e com design mais apelativo. Quanto ao Wordpress, é especialmente indicado para sites de apresentação de conteúdo, e é, provavelmente, o mais simples de aprender e de utilizar.

Perante as várias hipóteses e, tendo em conta que o site possui uma baixa complexidade, consideramos que a programação manual, utilizando PHP é a melhor opção. De um modo geral, pode concluir-se que esta linguagem envolve menos custos, visto ser de acesso livre e possibilita um melhor controlo do código inserido. Apresenta finalmente a grande vantagem do grupo já estar familiarizado com ela, optimizando assim o tempo que levaria a sua aprendizagem.

A monitorização dos movimentos do utilizador é efectuada através do Kinect, ligado à aplicação central, desenvolvida em Actionscript 3.0, através do servidor de socket. Este servidor converte o Depth Stream em dados possíveis de ser utilizados pelo AS3.
A utilização do telemóvel será suportada por um servidor web local, que irá gerir os inputs do utilizador no telemóvel (escolha de ferramentas, cores, etc) através de uma liguagem server-side, provavelmente PHP. A autenticação deverá ser redirecionada para o servidor web público, assim como o upload de fotos para a galeria pública. A aplicação AS3 deverá consultar os dados necessários ao servidor local.
Após o processamento dos dados pela aplicação, o resultado final deverá ser exibido pela projeção.
A utilização do website por clientes é suportada pela ligação HTTP ao website.
A implementação de futuros requisitos poderá a arquitetura apresentada neste esquema, nomeadamente a disponibilização do streaming e da projeção de uma instalação.
. #aula13
. #aula12
. #aula11
. Mosaiko - Lx Factory Open...