martes, 24 de marzo de 2009

Prácticas coa placa controladora por porto paralelo do PC.


O noso grupo (Alex, Nélida e Diego) foi o encargado de realizar as prácticas coa placa controladora por porto paralelo do PC que xa fixeron fai varios anos no nosoTaller. O profesor encargounos primeiro ir comprobando os proxectos que xa estaban feitos e que por diversos motivos xa non funcionaban correctamente como o Tiovivo ou o Semáforo. A continuación puxémonos cun proxecto propio este ano xunto ao grupo que traballo de Arduino, a activación dun motor paso a paso modelo NMB PM42S-048-YTB3. Un resumo do traballo que fixemos durante este trimestre está recollido na memoria de prácticas coa controladora, o resultado da práctica co motor paso a paso está nunha entrada anterior deste blog.

luns, 23 de marzo de 2009

Prácticas co brazo robot S300114 de SuperRobotica


O noso grupo (Rober, Adry e Amy) foi o encargado de realizar as prácticas co brazo robot de SuperRobotica. O brazo robot levaba dous anos no taller e desde o curso anterior non funcionaba ben. Os problemas parecían ser de cables desoldados, así que o noso primeiro cometido foi buscar os problemas e ilos solucionando. Unha vez que arranxamos eses pequenos problemas, empezamos a traballar coa conexión desde o ordenador e o programa que manexa o brazo robot (“VisualSC2.exe”). Agora mesmo estamos programando as secuencias de movemento do brazo robot e esperamos poñer un vídeo sobre o tema. A continuación poñemos un enlace á memoria de prácticas "Brazo robot.pdf".

sábado, 21 de marzo de 2009

Prácticas con Arduino


O noso grupo (Javi, Vero e J. Antonio) foi o encargado de realizar as prácticas coa placa controladora Arduino, coa que fixemos un simulador de entradas e saídas dixitais (con LEDs e pulsadores), ademáis das prácticas que nos encargou o profesor. Na memoria "Prácticas con Arduino.pdf" puxemos un resumo destas prácticas. A última práctica que estamos a desarrollar é en combinación co grupo que traballa coa placa controladora por porto paralelo, para activar un motor paso a paso.

xoves, 5 de marzo de 2009

Activación dun motor paso a paso

Esta práctica consistiu en activar un motor paso a paso modelo NMB PM42S-048-YTB3.
Para esta práctica necesitamos buscar a folla de características do motor, na que vimos que este motor require 24 Voltios de polarización e que necesita de 48 pasos para realizar un xiro completo de 360º (7,5º por paso).
A continuación debuxamos nun círculo 24 divisións (con separacións de 15º) e conectamos os 4 cables do motor (negro, marrón, laranxa e amarelo).
A secuencia de activación do motor é a seguinte:

Para realizar a secuencia correcta de activación do motor decidimos utilizar a placa Arduino que programamos convenientemente e conectamos o Arduino ao motor a través dos relés dunha controladora por porto paralelo do PC que fabricamos no Taller.
O resultado pode verse no seguinte vídeo:

Mediante un pulsador o Arduino xenera a secuencia que fai que o motor se mova nun sentido e accionando outro pulsador facemos que Arduino invirta o seu xiro.

O esquema circuital aparece no seguinte debuxo:
O programa que tivemos que escribir en Arduino foi o seguinte:

int contador = 0;
int secuencia = 1;
int pinesentrada[] = {6, 7};
int pinessalida[] = {8, 9, 10, 11};
void setup() {
for (contador=0;contador<2;contador++) {
pinMode(pinesentrada[contador], INPUT);}
for (contador=0;contador<4;contador++) {
pinMode(pinessalida[contador], OUTPUT);}
}
void loop() {
if (digitalRead(pinesentrada[0]) == HIGH) {
secuencia= secuencia+1;}
if (digitalRead(pinesentrada[1]) == HIGH) {
secuencia= secuencia-1;}
if (secuencia == 0) secuencia= 4;
if (secuencia == 5) secuencia= 1;
if (secuencia == 1) {
digitalWrite(pinessalida[0], LOW);
digitalWrite(pinessalida[1], HIGH);
digitalWrite(pinessalida[2], HIGH);
digitalWrite(pinessalida[3], LOW);
}
if (secuencia == 2) {
digitalWrite(pinessalida[0], LOW);
digitalWrite(pinessalida[1], HIGH);
digitalWrite(pinessalida[2], LOW);
digitalWrite(pinessalida[3], HIGH);
}
if (secuencia == 3) {
digitalWrite(pinessalida[0], HIGH);
digitalWrite(pinessalida[1], LOW);
digitalWrite(pinessalida[2], LOW);
digitalWrite(pinessalida[3], HIGH);
}
if (secuencia == 4) {
digitalWrite(pinessalida[0], HIGH);
digitalWrite(pinessalida[1], LOW);
digitalWrite(pinessalida[2], HIGH);
digitalWrite(pinessalida[3], LOW);
}
delay(100);
}