Avançar para o conteúdo principal

Mensagens

A mostrar mensagens de 2013

Let there be light - vamos fazer uma lanterna

Neste post vamos fazer um pequeno programa que permite utilizar o telefone Android como se de uma lanterna se tratasse. O projeto é muito simples, vamos inserir um botão na interface para ligar e desligar a luz do flash que vamos utilizar para a iluminação. Primeiro a interface, o código: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"     android:id="@+id/relativeLayout1"     android:layout_width="fill_parent"     android:layout_height="fill_parent" >     <Button         android:id="@+id/buttonFlashlight"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:layout_centerVertical="true"         android:layout_centerHorizontal="true"         android:text="Luz" /> </RelativeLayout> Muito si...

Unity 3D - Jogo em Split Screen

Neste artigo vou criar um pequeno jogo para dois jogadores humanos em ecrã dividido utilizando o Unity 3D. Para começar vou mostrar o resultado final. Na parte de cima da imagem anterior temos a composição da cena e na parte de baixo a imagem que os jogadores vão ver quando jogarem. Primeiro vamos preparar a cena e depois vamos ao código, assim adicione um plano para servir de chão e depois defina uma textura a aplicar. Altere o tamanho do plano, nomeadamente a largura nos eixos x e z para acomodar os dois jogadores. Agora que temos o campo de jogo vamos tratar dos jogadores, para isso adicione uma capsule. Agora vamos posicionar esta capsula no lado esquerdo do ecrã. De seguida vamos posicionar a camera que temos na cena atrás da capsula, assim: Continuamos a preparar o jogador do lado esquerdo alterando a sua cor e definindo um ponto de disparo à sua frente, para isso vamos utilizar um ponto vazio. O próximo passo é muito importante porque vai permitir organizar o nosso trabalho por ...

Tem troco

Para hoje um pequeno programa que dá troco, bem dar não dá mas calcula o troco a dar em função das moedas disponíveis. Neste projeto vamos utilizar o novo Visual Studio 2012. Como era de se esperar vamos iniciar um projeto novo: Agora adicionamos os seguintes elementos:  - um botão para calcular as moedas a dar de troco  - um botão para repor o número de moedas iniciais disponíveis  - uma textbox para introduzir o valor a pagar  - uma textbox para introduzir o valor entregue  - umas labels para informar o utilizador do que deve introduzir e outra para mostrar o troco  - por fim uma grelha para mostrar os valores das moedas e as quantidades disponíveis de cada uma. A janela principal do programa fica assim: Agora o código, primeiro o evento load do formulário, neste vamos definir os valores das moedas e as respetivas quantidades Para guardar estes valores vamos necessitar de uma variável definida ao nível do formulário, logo abaixo da definição da ...

Atualizar uma página html com jquery

Neste post vamos implementar uma página web que atualiza o seu conteúdo sem ter de recarregar a página toda. A estrutura básica da página tem as seguintes pastas: \ajax - pasta com ficheiro php que pesquisa a base de dados e devolve o valor encontrado \db - pasta com ficheiro php com instruções para ligação à base dados \js - pasta com código javascript que utiliza a livraria JQuery para atualizar o ficheiro index.html com os dados devolvidos pelo ficheiro php que pesquisa a base de dados. O resultado final será: Se a página fosse construída somente com código html ao clicar no botão "Pesquisar" o browser seria redirecionado para outra página ou para a mesma mas fazendo um reload. Para implementarmos a página sem reload utilizamos código que vai alterar o DOM da página com os dados recolhidos na base de dados. Começamos pela página principal, index.html, com o seguinte código: <!DOCTYPE html> <html> <head> <title>AJAX Database</title...

Game of 15

Toda a gente conhece o jogo de puzzle em que existe um espaço livre para mover as peças para os lugares certos. Para quem não conhece pode sempre clicar aqui . Imagem da wikipedia Hoje vamos resolver o jogo em C. Para começar utilizamos uma matriz 4x4 para o jogo. int jogo[4][4]; Além desta matriz vamos definir outra para armazenar a solução do jogo. int solucao[4][4]; Antes de mais nada criamos uma função para limpar e preparar a matriz de jogo e a matriz da solução: //prepara a matriz do jogo void limpar(void) { int l,c,conta=1;     n_jogadas=0;     for(l=0;l<4;l++){         for(c=0;c<4;c++){             jogo[l][c]=conta;             solucao[l][c]=conta;             conta++;         }     }     jogo[3][3]=0;     solucao[3][3]=0; } Também precisamos de uma função para mostrar o estado da matriz do jogo,...

Arduino & Motor DC

Neste post vou apresentar um pequeno projeto com o Arduino , a ideia é simples, controlar um motor DC . O projeto vai incluir um potenciómetro para regular a velocidade do motor. O circuito é o apresentado a seguir, criado com o fritzing . Como o motor consome mais energia do que o Arduino lhe pode fornecer vamos utilizar uma pilha de 9V só para o motor. O truque está no transistor  IRF520 MOSFET  que vai controlar a energia que o motor recebe, da pilha de 9V, em função do valor que o Arduino lhe vai enviar. O transistor tem 3 pernas: a base, o coletor e o emissor. A base está ligada ao pino digital do Arduino, o coletor é ligado ao motor e o emissor é ligado no neutro. O transistor além de funcionar como interruptor, ligado e desligado o motor, vai funcionar como um acelerador pois quanto maior o valor da base maior a corrente que flui entre o emissor e o coletor. Antes de definir a velocidade do motor o Arduino lê o valor do potenciómetro, ajusta a escala, no potenciómetro ...

CalcNotas - WindowsPhone

Para este post vamos desenvolver uma aplicação, ou como se dizia antigamente um programa, para calcular notas finais de uma disciplina do ensino secundário português. Como a interface é relativamente grande precisamos de permitir deslocar o conteúdo verticalmente. Para validar os dados nas textboxes vamos criar uma função que implementa a função isNumeric da versão desktop do Visual Basic.     Public Function isNumeric(ByVal str As String) As Boolean         Dim t As Decimal = 0         Return Decimal.TryParse(str, t)     End Function Se a string poder ser convertida num número devolve true se não devolve false. O primeiro botão serve para calcular a chamada CIF (Classificação Interna Final) que corresponde à média das notas do 10º, do 11º e do 12º ano. Para isso temos de verificar se cada textbox tem um valor numérico caso contrário não consideramos o seu conteúdo.     Private Sub Button1_Click(sender As System.Objec...

RFID Tags

As etiquetas RFID são, hoje em dia, muito comuns em diversas atividades, desde cartões de identificação a etiquetas para identificar produtos. RFID significa Radio Frequency Identification (Identificação por rádio frequência). O principio é simples, existe um leitor e uma etiqueta que comunicam, mas ao contrário dos rádios a etiqueta não tem de ser alimentada (apesar de existirem algumas que são) por baterias, esta é alimentada pelo leitor por um período breve de tempo durante o qual é enviado para o leitor o número de identificação da etiqueta. Para este pequeno projeto vou utilizar uma placa RFID USB da SparkFun para comunicar com um leitor RFID. O leitor encaixa na placa que por sua vez liga-se ao computador via USB. Nada mais fácil. Agora precisamos dos drivers da placa para isso basta seguir este link . Depois do dispositivo estar instalado temos de saber qual o número da porta que lhe foi atribuído  para isso basta ir ao gestor de dispositivos e procurar na secção portas...

Vamos acelerar

Como é do conhecimento geral os telemóveis Android têm um sensor designado de acelerómetro. Este sensor permite avaliar os movimentos a que o dispositivo está sujeito num sistema de três eixos. O eixo dos x permite avaliar a inclinação do dispositivo para a esquerda ou para a direita. O eixo dos y é controlado pela inclinação do dispositivo para a frente ou para trás. O eixo dos z reflete o movimento para cima e para baixo. Para este pequeno projeto vamos fazer um labirinto cujo objetivo é levar uma esfera até ao buraco inclinando o dispositivo tal como  se se trata-se um jogo físico. Primeiro vamos criar um projeto novo. Na atividade principal (MainActivity) vamos implementar uma função que fica associada ao sensor, é o que se designa por SensorEventListener. Assim alteramos a declaração da class para         public class MainActivity extends Activity implements SensorEventListener{ De seguida na função onCreate temos de "capturar" o sensor, para isso cria...

i-Racer

Neste post vamos criar um programa que permite controlar um i-Racer com um dispositivo Android através do Bluetooth. Para quem ainda não conhece este pequeno carro fica aqui um vídeo. O i-Racer responde a um conjunto limitado de comandos em hexadecimal cujo significado pode ser encontrado aqui . O objetivo é demonstrar o funcionamento do envio dos comandos através do Bluetooth, para isso vamos implementar quatro comandos: andar para a frente, andar para trás, virar rodas para direita e virar rodas para a esquerda. Os restantes comandos são igualmente fáceis de implementar basta alterar os códigos enviados ao i-Racer. Para começar a interface. O design: Em execução: Resumindo: - oito botões; - duas listviews, uma onde estão os botões a outra para apresentar os dispositivos Bluetooth emparelhados e detetados. O xml: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.com/tools"     android...