Un zoótropo es un dispositivo de animación previo a la aparición de la película, que
produce la ilusión de movimiento al mostrar una secuencia de dibujos o
fotografías con fases progresivas de un movimiento.
1. Características del proyecto: Este proyecto se encuentra en construcción pero lo considero interesante
para trabajar los orígenes de los medios audiovisuales.
2. Alumnos a los que va dirigido el proyecto: Alumnos de NTIC que están trabajando la unidad relacionada con la historia de los multimedios.
3. Componentes necesarios:
. Placa Arduino Uno
. Protoboard
. Batería 9V
. Motor DC
. Puente H - Motor
. Potenciómetro 10K
. 2 Resistencias de 10kOhmnios
. Cables de conexión
4. Programación (hasta esta etapa):
//H-bridge control and enable
const int controlPin1 = 2;
const int controlPin2 = 3;
const int enablePin = 9;
//button pins
const int directionSwitchStatePin = 4;
const int onOffSwitchStatePin = 5;
//potentiometer pin
const int potPin = A0;
int onOffSwitchState = 0;
int previousOnOffSwitchState = 0;
int directionSwitchState = 0;
int previousDirectionSwitchState = 0;
int motorEnabled = 0;
int motorSpeed = 0;
int motorDirection = 1;
void setup(){
pinMode(directionSwitchStatePin, INPUT);
pinMode(onOffSwitchStatePin, INPUT);
pinMode(controlPin1, OUTPUT);
pinMode(controlPin2, OUTPUT);
pinMode(enablePin, OUTPUT);
//turn the motor off, initially
digitalWrite(enablePin, LOW);
}
void loop(){
onOffSwitchState = digitalRead(onOffSwitchStatePin);
delay(1);
directionSwitchState = digitalRead(directionSwitchStatePin);
motorSpeed = analogRead(potPin)/4;
if(onOffSwitchState != previousOnOffSwitchState){
if(onOffSwitchState == HIGH){
motorEnabled = !motorEnabled; //exclamation point inverts the boolean value
}//end of nested(if)
}//end of outer (if)
if(directionSwitchState != previousDirectionSwitchState){
if(directionSwitchState ==HIGH){
motorDirection = !motorDirection; //flip motor direction
} //end of nested if()
} //end of outer (if)
if(motorDirection == 1){ //configure H bridge
digitalWrite(controlPin1, HIGH);
digitalWrite(controlPin2, LOW);
}
else{
digitalWrite(controlPin1, LOW);
digitalWrite(controlPin2, HIGH);
}
if (motorEnabled == 1){
//set speed with PWM
analogWrite(enablePin, motorSpeed);
}
else{
analogWrite(enablePin, 0);
}
previousDirectionSwitchState = directionSwitchState;
previousOnOffSwitchState = onOffSwitchState;
} //end of loop()
5. Consideraciones generales: Entiendo que se trata de un proyecto con cierto grado de dificultad pero que con la colaboración del taller de Tecnología y trabajando de manera colaborativa y en equipos, puede resultar un interesante desafío a sortear.

