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 simples, só um botão, optei por inserir o

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 class: Public Class Form1     Public mo

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> </h

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, assim: //mostra a matriz do jogo void mostrar(void) { int l,c;     system("cls");     for(l=0;l<4;l++){         for(c=0;c<4;c++){             if(jogo[l][c]>0){

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 vai de 0

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.Object, e As System.Windows.RoutedEventArgs) Handles Button1.Click        

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. No meu

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 criamos um objeto Senso

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:layout_width=