132.09 A+aplicação

=Proposta da Aplicação em desenvolvimento =

A aplicação desenvolvida é um sistema de controle de um motor de passo para realizar os movimentos de subir e descer em um Mini Elevador.

O Mini Elevador:

Composição do elevador:
 * 1 Wixel para controlar o motor.
 * 1 Motor de passo para controlar o elevador.
 * 2 botões (Um para subir e outro para descer
 * Estrutura de madeira.
 * 2 roldanas e um pedaço de barbante.
 * Uma placa para controlar o motor de passo.
 * 2 pilhas - para o motor de passo e para o Wixel.

Seguem as imagens das etapas de desenvolvimento da estrutura do elevador:





A disposição do projeto, haviam 3 motores de passo, com diferentes forças, sendo 2 deles do tipo bipolar. Segue a imagem do motor de passo utilizado no projeto:

Este motor funciona com até 12V. No projeto, ele está sendo alimento com 10V.

Interligando o motor e o Wixel, tem-se a seguinte placa:



Ainda para o controle da voltagem passada ao motor, a seguinte placa está sendo utilizada:



Resumo do projeto: A função da aplicação desenvolvida é controlar um mini elevador por meio de botões para subir e descer. O movimento do elevador ocorre enquanto o botão é mantido pressionado. Uma lógica mais elaborada foi pensada, para que houvesse a possibilidade do uso de 3 botões, cada um referente a um andar, com funções especificas para cada um deles, porém alguns problemas com a sintaxe da linguagem utilizada impediu que este método fosse aplicado ao projeto.

Problemas e soluções: <span style="font-family: 'Lucida Sans Unicode','Lucida Grande',sans-serif;">Durante o desenvolvimento do projeto, notou-se uma grande falta de material de estudo, exemplos e suporte, o que ocasionou em maior perda de tempo com certas funções básicas, tanto na parte do desenvolvimento lógico, quanto na na aplicação da lógica ao projeto. Como exemplo, tem-se o funcionamento do motor de passo utilizado (ou da placa utilizada para controla-lo). <span style="font-family: 'Lucida Sans Unicode','Lucida Grande',sans-serif;">No inicio do projeto, o time utilizou uma tomada como fonte para alimentar o motor, porem, após a implementação dos botões, ela teve de ser substituída por uma bateria, pois, aparentemente, o campo eletromagnético gerado pela tomada estava interferindo no funcionamento dos botões - mesmo após o isolamento dos fios, a aplicação era acionada mesmo sem pressiona-los. Este problemas foi solucionado trocando a alimentação via tomada por uma bateria.

<span style="font-family: 'Lucida Sans Unicode','Lucida Grande',sans-serif;">Segue o vídeo do projeto final em execução:

media type="file" key="CAM00605.mp4" width="300" height="300"

<span style="font-family: 'Lucida Sans Unicode','Lucida Grande',sans-serif;">Segue o código comentado, que foi utilizado no projeto: code format="c"
 * 1) include <wixel.h>
 * 2) include <usb.h>
 * 3) include <usb_com.h>
 * 4) include <gpio.h>

// Definindo nomes para os pinos
 * 1) define PinoDireita P1_6
 * 2) define PinoEsquerda P1_7

// Função passo para direita com maior torque void passo_D_FORTE {  // Define para a porta P1 os valores em binário, //correspondentes aos pinos no Wixel P1 = 0b00001100; delayMs(30);

// É dado um tempo de 20 milisengundos, antes de  // definir outro valor para a porta P1   P1 = 0b00000110; delayMs(40); P1 = 0b00000011; delayMs(40); P1 = 0b00001001; delayMs(40); }

void passo_E_FORTE {  P1 = 0b00000011; delayMs(30); P1 = 0b00000110; delayMs(40); P1 = 0b00001100; delayMs(40); P1 = 0b00001001; delayMs(40); }

void main {  systemInit; usbInit;

// Define-se os pinos do wixel como saída digital. // A referência numérica "10" corresponde ao pino 0(zero) da porta P1 no Wixel. setDigitalOutput(10,LOW); setDigitalOutput(11,LOW); setDigitalOutput(12,LOW); setDigitalOutput(13,LOW); setDigitalOutput(14,LOW); setDigitalOutput(15,LOW);

// Define-se os pinos do wixel como entrada digital. setDigitalInput(16,1); setDigitalInput(17,1); setPort1PullType(0);

// Quanto ao segundo parâmetro das funções "setDigitalOutput" e "setDigitalInput" // o algarismo 1 corresponde a HIGH e 0 corresponde a LOW. Esses são Operadores usados // para definir como o pino se inicia (ligado ou desligado)

// Loop principal do programa while(1) {     boardService; usbComService;

// Realiza a checagem do pino 6 da porta P1 (mudado no define) para // verificar se o pino recebe ou não energia. if(PinoDireita == 1) {        // Caso o pino receba energia a função Passo para a direita, forte é chamada. passo_D_FORTE; }

if(PinoEsquerda == 1) {        // Caso o pino receba energia inicia-se a função Passo para a direita, forte! passo_E_FORTE; }  } } code

<span style="font-family: 'Lucida Sans Unicode','Lucida Grande',sans-serif; font-size: 13px; line-height: 1.5;">Home > <span style="font-family: 'Lucida Sans Unicode','Lucida Grande',sans-serif; font-size: 13px; line-height: 1.5;">Microcontroladores > <span style="font-family: 'Lucida Sans Unicode','Lucida Grande',sans-serif; font-size: 13px; line-height: 1.5;">O Wixel > Tutorial de instalação e uso > **<span style="font-family: 'Lucida Sans Unicode','Lucida Grande',sans-serif; font-size: 13px; line-height: 1.5;">A aplicação ** > <span style="font-family: 'Lucida Sans Unicode','Lucida Grande',sans-serif; font-size: 13px; line-height: 1.5;">Conclusão > <span style="font-family: 'Lucida Sans Unicode','Lucida Grande',sans-serif; font-size: 13px; line-height: 1.5;">Links e Refêrencias