Project Energy Plus
Estrella del Peral (directora) y Carlos Ávalos(TIC) del Colegio San José Lucero |
Nombre del proyecto
Project Energy Plus
Resumen del trabajo
Estudio
de la trayectoria de una pelota de ping pong. Para ello hemos creado un dispositivo de lanzamientos
de pelotas. Dicho dispositivo es una catapulta trebuchet modificada que se activa a control
remoto con el móvil (vía bluetooth) y comunica con una placa Arduino. Todo con la finalidad de determinar la ecuación que describa su movimiento. Además puede ser activado con un comando de voz con el móvil y con el teclado.
La foto de los alumnos no la hemos colocado por ser menores de edad. En el vídeo
de abajo salen los chicos, dicho vídeo está alojado en el canal
oficial del colegio en Youtube.
¿Quiénes somos?
Somos un grupo de alumnos y de profesores de un colegio concertado y mixto del Barrio de Lucero- Distrito La Latina, en Madrid. Somos un colegio pequeño, “L1”, lo cual nos acerca al alumnado y a sus familias. Nuestro Colegio se llama Colegio San José Lucero.¿Por qué participamos?
Queremos mejorar el colegio, el reto nos incentivó a re-acondicionar nuestros ordenadores, reinstalar sistemas operativos, comprar pantallas, ordenadores nuevos, routers, aprender de redes, de software libre (GNU/Linux), inscribirnos a cursos de Bitbloq, Appinventor, Diseño e Impresión 3D, MAX 9.0.¿Cómo estamos trabajando?
Estamos trabajando en forma cooperativa, desde 1 a 4 de la ESO. Hemos reciclado equipos viejos. Estamos probando un aula piloto en 4 de ESO con un ordenador para cada grupo de trabajo. Los alumnos y profesores han pintado las clases, instalado la red eléctrica, la red wifi. Nuestra sala de informática la hemos mejorado, estamos usando Raspberry Pi como ordenadores de bajo consumo. Nos equivocamos todos los días, pero buscamos solucionar el problema. Ha sido agotador, pero muy enriquecedor. El reto es, con pocos recursos económicos llegar a alcanzar la meta. Creemos que participar ha sido un triunfo, no somos conformistas y seguiremos adelante. Nuestro colegio ha cambiado para bien.Problema
Cómo generar un movimiento parabólico para ser estudiado en las clases de matemáticas con los alumnos. Empleando el diseño 3D, la robótica y un smartphone.Objetivo principal
Construir un sistema de lanzamiento confiable para generar un tiro parabólico constante para determinar la ecuación de la función cuadrática que describe el movimiento.Metodología
1) Construcción de una catapulta tipo trebuchet modificadaMateriales
- Listones de madera (10*10*225)mm
- Tornillos de rosca continua 4 mm
- tuercas 4 mm
- Arandelas planas de 4mm
- Arandelas de presión 4 mm
- Placa Arduino
- Un servomotor continuo
- Impresora 3D
- PC con sistema Linux
- Raspberry Pi con sistema Raspbian
- Móvil con sistema Android
- Bitbloq Connect (para programar el móvil)
- OpenScad (diseño de las piezas 3D)
- BitBloq (para programar la placa Arduino)
- Zetup (para laminar los archivos 3D "STL" en "gcode" para ser usados por la impresora 3D.
- Sistema Ubuntu 17.10 (para el PC)
Objetivos
- Construir una catapulta para generar lanzamientos constantes
- Programar la placa Arduino para mover un servo durante el disparo
- Disparar el sistema de forma manual y a través de un smartphone
La catapulta
Extraído de Tecnosalva |
A = Longitud total del brazo lanzador
B =A*4/5
C=1/5 A
D=3/4 B
La masa W (Contrapeso), debe de ser 100 veces mayor que el peso WP, del proyectil a lanzar.
Además el ángulo del brazo lanzador “amartillado” debe de ser de 45°.
Cálculos en LibreOfficeCal |
2) Determinación de la masa de las canicas utilizadas dentro del contrapeso
Materiales
- 139 canicas
- balanza de cocina con apreciación +- 1 g
Por lo que la masa promedio de la canica es de 5,24 g
Piezas diseñadas en 3D para la catapulta
Nos hemos basado en Obijuan.
Para el diseño de estas piezas hemos utilizado el programa 3D OpenScad sobre un PC con el Sistema Operativo Linux
Prof. Carlos M. Ávalos
Proyecto Retotech Fundación Endesa.
Ejecución: Carla Abad, David Villarejo, Assem Suliman*/
//-------- Parámetros de la pieza
r1 = 5; //-- Radio cilindro 1
r2 = 8; //-- Radio cilindro 2
gro = 4; //-- Grosor de la pieza
d =50; //-- Distancia entre los centros de los cilindros de la pieza
difference(){
hull() {
/*Crear el objeto convexo mínimo que contiene los dos cilindros*/
//-- Cilindro 1 de la pieza
translate([-d/2, 0, 0])
cylinder(r = r1, h = gro, center = true, $fn = 50);
//-- Cilindro 2
translate([d/2, 0, 0])
cylinder(r = r2, h = gro, center = true, $fn = 50);
}
//taladros
//-------- Parámetros de los taladros
r_tal=2.2;
h_tal= 2*gro;
union(){
//taladro 1
translate([-d/2, 0, 0])
cylinder(r = r_tal, h = h_tal, center = true, $fn = 50);
//taladro 2
translate([d/2, 0, 0])
cylinder(r = r_tal, h = h_tal, center = true, $fn = 50);
}
}
permite variar el angulo.
Prof. Carlos M. Ávalos
Proyecto Retotech Fundación Endesa.
Ejecución: Carla Abad, David Villarejo, Assem Suliman*/
difference(){//(base pelota y anclaje) - (pelota y taladro)
union(){//base y anclaje
//base de la pelota
lad_cubo= 40;
translate([-20,-20,0])
cube([lad_cubo,lad_cubo,lad_cubo/4]);
//anclaje base de la pelota a el brazo
translate([-2,-40,0])
cube([4,20,10]);
}
union(){//union pelota y taladro en el anclaje
//pelota
dia_pel=37;
translate([0,0,20])
sphere(d=dia_pel, $fn=100);
//taladro 1 en el anclaje
translate([-3,-35,5])
rotate([0,90,0])
cylinder(h = 6, r=2.2, $fn=20);
}
}
//sujeción al brazo
translate([-6,-130,0])
cube([12,80,10]);
union(){
//anclaje base de la pelota a el brazo
translate([-3,-68,-1])
cube([6,20,12]);
//taladro 2
translate([-8,-55,5])
rotate([0,90,0])
cylinder(h = 16, r=2.2, $fn=20);
//taladro 3
translate([0,-80,-3])
cylinder(h = 16, r=2.2, $fn=20);
//taladro 4
translate([0,-120,-3])
cylinder(h = 16, r=2.2, $fn=20);
//taladro 5 (punto para atar)
translate([-8,-100,5])
rotate([0,90,0])
cylinder(h = 16, r=2.2, $fn=20);
}
}
Código
/*
Sistema de disparo de la catapulta
Prof. Carlos M. Ávalos
Proyecto Retotech Fundación Endesa.
Ejecución: Carla Abad, David Villarejo, Assem Suliman*/
difference() {
union() {
//base del pasador
translate([0,0,8])
color("pink")
cube([10,10,15],center=true);
//sujetador
translate([0,0,0])
cube([30,10,3], center=true);
}
union() {
//estructuras a retirar
//taladro 1
color("red")
translate([11,0,-6])
cylinder(d=4.5,h=12,$fn=150);
//taladro 2
color("blue")
translate([-10,0,-6])
cylinder(d=4.5,h=12,$fn=150);
//pasador
color("yellow")
translate([0,0,12])
rotate([0,90,0])
cylinder (d=2.5, h=35, $fn=150, center=true);
//hendidura de la base del pasador
translate([0,0,13])
color("green")
cube([5,10,8],center=true);
}
}
Sujetadores del contrapeso en la catapulta |
Código
/*
Sujetadores de contrapeso para la catapultaProf. Carlos M. Ávalos
Proyecto Retotech Fundación Endesa.
Ejecución: Carla Abad, David Villarejo, Assem Suliman*/
//-------- Parámetros de la pieza
r1 = 5; //-- Radio cilindro 1
r2 = 8; //-- Radio cilindro 2
gro = 4; //-- Grosor de la pieza
d =50; //-- Distancia entre los centros de los cilindros de la pieza
difference(){
hull() {
/*Crear el objeto convexo mínimo que contiene los dos cilindros*/
//-- Cilindro 1 de la pieza
translate([-d/2, 0, 0])
cylinder(r = r1, h = gro, center = true, $fn = 50);
//-- Cilindro 2
translate([d/2, 0, 0])
cylinder(r = r2, h = gro, center = true, $fn = 50);
}
//taladros
//-------- Parámetros de los taladros
r_tal=2.2;
h_tal= 2*gro;
union(){
//taladro 1
translate([-d/2, 0, 0])
cylinder(r = r_tal, h = h_tal, center = true, $fn = 50);
//taladro 2
translate([d/2, 0, 0])
cylinder(r = r_tal, h = h_tal, center = true, $fn = 50);
}
}
Sistema para sujetar la bola en la catapulta con ángulo variable |
Código
/*
Pieza para sujetar la pelota de ping pong en la catapultapermite variar el angulo.
Prof. Carlos M. Ávalos
Proyecto Retotech Fundación Endesa.
Ejecución: Carla Abad, David Villarejo, Assem Suliman*/
difference(){//(base pelota y anclaje) - (pelota y taladro)
union(){//base y anclaje
//base de la pelota
lad_cubo= 40;
translate([-20,-20,0])
cube([lad_cubo,lad_cubo,lad_cubo/4]);
//anclaje base de la pelota a el brazo
translate([-2,-40,0])
cube([4,20,10]);
}
union(){//union pelota y taladro en el anclaje
//pelota
dia_pel=37;
translate([0,0,20])
sphere(d=dia_pel, $fn=100);
//taladro 1 en el anclaje
translate([-3,-35,5])
rotate([0,90,0])
cylinder(h = 6, r=2.2, $fn=20);
}
}
// Pieza que sujeta la base al brazo de la palanca
difference(){//(base pelota y anclaje) - (pelota y taladro)//sujeción al brazo
translate([-6,-130,0])
cube([12,80,10]);
union(){
//anclaje base de la pelota a el brazo
translate([-3,-68,-1])
cube([6,20,12]);
//taladro 2
translate([-8,-55,5])
rotate([0,90,0])
cylinder(h = 16, r=2.2, $fn=20);
//taladro 3
translate([0,-80,-3])
cylinder(h = 16, r=2.2, $fn=20);
//taladro 4
translate([0,-120,-3])
cylinder(h = 16, r=2.2, $fn=20);
//taladro 5 (punto para atar)
translate([-8,-100,5])
rotate([0,90,0])
cylinder(h = 16, r=2.2, $fn=20);
}
}
Sistema de disparo de la catapulta |
/*
Sistema de disparo de la catapulta
Prof. Carlos M. Ávalos
Proyecto Retotech Fundación Endesa.
Ejecución: Carla Abad, David Villarejo, Assem Suliman*/
difference() {
union() {
//base del pasador
translate([0,0,8])
color("pink")
cube([10,10,15],center=true);
//sujetador
translate([0,0,0])
cube([30,10,3], center=true);
}
union() {
//estructuras a retirar
//taladro 1
color("red")
translate([11,0,-6])
cylinder(d=4.5,h=12,$fn=150);
//taladro 2
color("blue")
translate([-10,0,-6])
cylinder(d=4.5,h=12,$fn=150);
//pasador
color("yellow")
translate([0,0,12])
rotate([0,90,0])
cylinder (d=2.5, h=35, $fn=150, center=true);
//hendidura de la base del pasador
translate([0,0,13])
color("green")
cube([5,10,8],center=true);
}
}
El servomotor
¿Qué es un servomotor?
Un servomotor o “servo” es un motor electrónico de baja inercia al que se le puede controlar tanto la velocidad de giro como la posición dentro de su rango de operación.
El cuerpo de los servo motores está formado por un motor eléctrico, una caja reductora con engranajes y un circuito electrónico de control. Los servos motores son comúnmente utilizados en modelismo para controlar los sistemas de dirección, por ejemplo el timón de un barco o los alerones de un avión.
Los servos usan la modulación por ancho de pulsos (PWM) para controlar la posición del motor eléctrico."1
La desventaja es que consumen más energía que un servo motor analógico, por lo que se recomienda suministrarles energía por un circuito alterno para no dañar la placa micro-controladora. Son muy usados en robótica. Mirar servomotores en la webgrafia.
Problemas de comunicación del software bitbloq con la placa BT-328
Descripción del error: "Failed to connect to the port"
Se resolvió utilizando Linux Ubuntu 18.04 LTS , Google Chrome y la extensión bitbloq. Para que funcione correctamente debes tener permisos administrativos en el ordenador.
Sistema liberación del brazo de la catapulta para lanzar la bola (sistema manual), versión 1.
Materiales y aparatos
- Un servomotor (rotación de 0-180 grados)
- Dos diodos leds luz (verde y azul)
- Un zumbador
- Un botón pulsador
- Una placa BT-328 "Arduino de BQ"
- Cable USB a mini USB (datos y alimentación)
- Batería de 5VCC (alimentación)
- Un alambre para ser usado como pasador, doblado en forma de alcayata circular, con la ayuda de un alicate
- Smartphone con sistema Android
- Cuenta en Google
- Ordenador con acceso a internet
Software utilizado
- Bitbloq on line
- Bitbloq Connect (app android para el móvil)
- Sistema Operativo GNU/LINUX Ubuntu 18.04 LTS . Instalado en nuestro ordenador
- Navegador Google Chrome instalado en el SO
- Extensión Bitbloq para Google Chrome.
El código de esta chrome app es libre y se puede descargar en GitHub https://github.com/bq/bitbloq-chromeapp
Hemos programado en lenguaje Arduino, pero usando la interfase Bitbloq de BQ, para facilitar a la hora de escribirlo. Lo hemos realizado en el modo ON LINE. Para ello se hizo necesario tener una cuenta en Google.
Nuestros primeros intentos.
Código Arduino para programar la placa ZUM BT-328
/*** Included libraries ***/
#include <Servo.h>
/*** Global variables and function definition ***/
const int boton = 3;
const int led_disparo = 7;
const int zumbador = 10;
Servo servo;
const int led_sistema_listo = 6;
/*** Setup ***/void setup(){
pinMode(boton, INPUT);
pinMode(led_disparo, OUTPUT);
pinMode(zumbador, OUTPUT);
servo.attach(13);
pinMode(led_sistema_listo, OUTPUT);
digitalWrite(led_sistema_listo,HIGH);
tone(zumbador,261,500);
delay(500);
servo.write(0);
digitalWrite(led_sistema_listo,LOW);
}
/*** Loop ***/void loop(){if(digitalRead(boton) == 1){digitalWrite(led_sistema_listo,HIGH);
tone(zumbador,261,333);
delay(333);
tone(zumbador,293,333);
delay(333);
tone(zumbador,329,333);
delay(333);
digitalWrite(led_disparo,HIGH);
servo.write(180);
delay(3000);
digitalWrite(led_sistema_listo,LOW);
digitalWrite(led_disparo,LOW);
}
else {servo.write(0);
digitalWrite(led_sistema_listo,HIGH);
delay(500);
digitalWrite(led_sistema_listo,LOW);
delay(1000);
}
}
Código Bitbloq
Sistema liberación del brazo de la catapulta para lanzar la bola (sistema manual y a control remoto usando el smartphone), versión 3.
Logo Bitbloq Connect de BQ |
Hemos mejorado la programación del sistema, ahora se puede activar en forma manual y remota.
Manual pulsando un botón y remoto desde el móvil con un comando. Podemos escribir un comando o grabar el comando con voz, esto es posible si utilizamos un software llamado Bitbloq Connect.
Esta aplicación "App" está disponible para móviles con sistema Android.
"... ahora con la aplicación de Bitbloq Connect podrás utilizar los
sensores y actuadores de tu smartphone como si estuvieran conectados a
tu placa BQZum o Arduino." En nuestro caso solo queríamos enviar comandos, pero las otras opciones resultan muy interesantes para futuros proyectos.
Esto permitirá accionar el sistema de manera redundante.
Interface principal de Bitbloq Connect |
Para poder usar Bitbloq Connect, es necesario encender el bluetooth del smartphone y tener agregado el componente dispositivo Bluetooth como muestra la siguiente ilustración, en el código Arduino.
Esquema de conexión del hardware y el componente bluetooth para poder conectarlo a un smartphone |
Cambio del PIN y nombre de la placa ZUM Bt-328, en el bluetooth
Hemos cambiado el nombre de la placa BT-328 "Arduino" y su pin para evitar problemas a la hora de participar en el festival Retotech_Endesa, ya que podrían tener el mismo nombre más de una placa.
Pasos
- Mover en la placa BT-328 los pines 1, 2 y 3 del módulo bluetooth en "on"
pines 2 y 3 se usan para configurar la placa arduino, para ello deberán estar en on
- Abrir bitbloq y crear un programa conectando en la placa dos botones en los pines 0 y 1, para obligar a la placa tener en input los pines 0 y 1
En la pestaña de programación tipo código veras el cambio, se hacen los pines 1 y 2 de entrada "input".
/*** Included libraries ***/
/*** Global variables and function definition ***/
const int boton_1 = 1;
const int boton_2 = 0;
/*** Setup ***/void setup(){
pinMode(boton_1, INPUT);
pinMode(boton_2, INPUT);
}
/*** Loop ***/void loop(){}
/*** Global variables and function definition ***/
const int boton_1 = 1;
const int boton_2 = 0;
/*** Setup ***/void setup(){
pinMode(boton_1, INPUT);
pinMode(boton_2, INPUT);
}
/*** Loop ***/void loop(){}
- Abrir el programa Arduino y configurar en las herramientas el tipo de placa
Procesador: ATMega328P
Puerto /dev/ttyUSB0 (variará según el puerto usb que conectes en el pc)
Colocar desplazamiento automático "autoscroll"
velocidad en19600 baud,
Retorno de carro
velocidad en19600 baud,
Retorno de carro
- Abrimos Con los comandos AT cambiar el nombre de la placa ZUM BT-328, para ello abrimos en herramientas "Monitor serie" y escribimos los comandos AT
AT+NAME= comotuquieras (Se llamará comotuquieras)
- Cambiar el pin de la clave, usamos el comando AT+HELP, vimos que para cambiar el pin de la clave de la placa ZUM BT-328 simplemente escribimos en la consola.
Vídeo a diferentes velocidades
Es increíble la cantidad de detalles que podemos apreciar en la cámara a velocidad lenta.
Captura de fotogramas a partir del vídeo y edición en un sola foto con Gimp para ver la trayectoria de la bola
Fotogramas ensamblados "Layers" obtenidos a partir de un vídeo utilizando GIMP |
Utilización del software Geogebra para determinar la función cuadrática
Obtención de la función cuadrática con la ayuda de Geogebra |
Cartel de Exposición
Tríptico a entregar a los asistentes
Imágenes libres de derecho para que las puedas utilizar.
Freeimages.com
Foter.com
Picography.co
Magdeleine.co
Unsplash.comStokpic.com
Pixabay.com
Pexels.com
Morguefile.com
Picjumbo.com
Skitterphoto.com
Gratisography.com
Splitshire.com
Stocksnap.io
Participantes del Concurso Retotech Fundacion_Endesa
Profesores asistentes:
Estrella del Peral
Carlos Ávalos
Alumnos asistentes:
- Piñero Pérez, Victoria (1 ESO)
- Abad Carla (2 ESO)
- Caballero Santiago (2 ESO)
- Suliman Assem (2 ESO)
- Alba Pablo (3 ESO)
- Alonso Daniel (3 ESO)
- Camara Basari (3 ESO)
- Makhoukhi Omar (3 ESO)
- Escanio Edwin (4 ESO)
- Matamoros David (4 ESO)
Alumnos suplentes:
- Tomás Benitez (1 ESO)
- Andrea Roa (1 ESO)
- Leudi del Orbe (1 ESO)
- Andres Chavez (1 ESO)
- Pablo Flores (3 ESO)
- Luz Mary González (3 ESO)
- Rocío Arjona ( 4 ESO)
- Roció Rodríguez (4 ESO)
- Jatna Paula (4 ESO)
- Luis Galván (4 ESO)
- Isaac Oviedo "Ciborg"
- Iván La Peña "Brutus"
Para investigar a futuro y su relación con física (Por investigar)
Tomado de: https://www.fisicalab.com/apartado/movimiento-parabolico#contenidos |
webgrafía:
- Construcción de una Catapulta Trebuchet. Tecnosalva. Profe de tecnología.URL: http://www.tecnosalva.com/construcci%C3%B3n-trebuchet
- Diseño de piezas con OpenScad II . Autor: Juan González (Obijuan) URL: http://www.iearobotics.com/wiki/index.php?title=Dise%C3%B1o_de_piezas_con_OpenScad_II
- Servomotores. El blog de Chito de tecnología. URL: https://chitoraspberrypi.blogspot.com.es/2017/06/servomotores.html
Comentarios
Publicar un comentario