Herramienta rotativa manual tipo Dremel

Con un motor que rescaté de una impresora rota me he construido una “dremel”: una herramienta que puede ser un taladro, una fresadora, un lija, un disco de corte…

El proyecto es muy básico, pero realmente muy útil y así nos ahorramos la compra de una de estas herramientas. Lo único que hace falta es un motor DC suficientemente rápido, o tubo o similar para sujetarlo, un pulsador, un portabrocas y luego las brocas, discos, fresas o lo que vayamos a necesitas, que tendremos que comprar.

El portabrocas tiene que poder fijarse al eje del motor, por lo que tendrá que ser de un diámetro pequeño. Yo compré uno similar a este por 5.99 €.

Este es el motor que saqué de una impresora:

Le acoplo el portabrocas:

El motor quedaba un poco holgado dentro del tubo, así que enrollé un poco de cable y con esto encajó perfectamente.

Para la tapa, corté un poco de plástico de una caja de CD:

Compré algunos accesorios, como mini brocas, discos de corte y piezas para amolar/fresar.

 

Mejoras si vuelvo a construirme uno:

  • Emplear un pulsador más grande y mejor (el que puse es muy pequeño e incómodo)
  • Añadirle un par de baterías de ion litio 18650 y cargador, y así lo hago totalmente inalámbrico.

Where are they?

Cita

Evolution has no destination. Each time you push the “go” button, you end up someplace different. Start things over on Earth (or another Earth-like planet) and not only would there be different species with perceptions and intelligences that vary wildly from our own, the very chemistry of life would be altered as well!

That’s conjecture – but it’s pretty safe conjecture. To see why, let’s do a quick back-of-the-envelope calculation.

Among other things, our DNA contains instructions for building proteins out of sequences of amino acids. For simplicity, let’s assume that life always evolves that same basic molecular machinery. There are 500 or so known amino acids, of which life on Earth uses only 23. Sticking with our KISS (keep it simple, stupid) approach, let’s assume all life uses those same 23.

The average protein in an eukaryotic (nucleus-containing) cell on Earth is about 450 amino acids long. There are therefore 23^450 (=10^613) different proteins of that length that the machinery of our DNA might construct. That’s a huge number! Not surprisingly, terrestrial life has stumbled upon uses for only a small fraction of those possible proteins – about 10 million.

So now let’s take those 10^613 possible proteins and split them into planet-proportioned groups of 10 million each. With no overlap at all, there would be 10^606 of those piles! There are no more than about 10^23 habitable planets in the entire observable universe. You could spread those stacks of proteins over the planets in 10^583 similar universes without having to duplicate a single protein on any two planets!

The takeaway is this: The likelihood that any two life-bearing planets in the universe share even remotely compatible biochemistry is effectively zero.

 

Jeff Hester. Astronomy Magazine, September 2016

El Castillo en el Cielo

Aquí va el arreglo que preparé de “Llevándote” (Kimi wo nosete) de la película de animación “El Castillo en el Cielo” (Laputa, Castle in the Sky), de Hayao Miyazaki. La música es de Joe Hisaishi, y para este arreglo que he hecho para coro, chelo, flauta, guitarra y bajo me basé en el concierto que dio Joe Hisaishi en el Budokan:

La verdad es que podría mejorar la parte instrumental, pero por el momento lo dejo así.

Laputa Llevándote – Bajo eléctrico

Laputa Llevándote – BAJO

Laputa Llevándote – CONTRALTO

Laputa Llevándote – Flauta

Laputa Llevándote – Guitarra acústica

Laputa Llevándote – Partitura completa

Laputa Llevándote – SOPRANO, CONTRALTO, TENOR, BAJO

Laputa Llevándote – SOPRANO

Laputa Llevándote – TENOR

Laputa Llevándote – Violín 1

Laputa Llevándote – Violonchelo

Este es el vídeo del Sibelius:

Laputa Llevándote

Y estas las grabaciones para practicar cada voz:

 

NOTA: Hice este arreglo sin ánimo de lucro. No he cobrado ni cobro por el arreglo, ni permito su uso con ese fin. La autoría de la canción original es de Joe Hisaishi.

Cumpleaños feliz

Aquí va el arreglo que he hecho de “Cumpleaños Feliz” para coro (SATB):

Cumpleaños feliz – Partitura completa

Y las grabaciones, para ensayar cada voz por separado (muy mal cantado, lo siento):

Soprano:

Contralto:

Tenor:

Bajo:

Todos:

On Structural Engineering

Cita

The welfare of the earth and its inhabitants is a defining theme for the 21st century. Structural engineering has a significant role to play as the world faces these challenges. In fulfilling this function, building engineers continue the age-old human endeavor to provide society with structures that protect, serve, and inspire mankind. From pioneering new systems for better buildings with economy, to ensuring the safety of human life from nature’s wrath, to stabilizing implausible forms to defy gravity and lateral loads, building engineers venture to create livable spaces from humaninity’s dreams and ideas. Building engineering requires a comprehensive understanding of building assembly and an appreciation of how forces are resisted within the structure and eventually by the earth.

 

Bungale S. Taranath, “Structural Analysis and Design of Tall Buildings. Steel and Composite Construction”. CRC Press, Boca Raton, 2012

On seismic design

Cita

On seismic design:

Although over the years, experience and research have diminished our uncertainties and concerns regarding the characteristics of earthquake motions and its manifestations, it is unlikely, though, that there will be such a change in the nature of knowledge to relieve us of the necessity of dealing openly with random variables. In a way, earthquake engineering is a parody of other branches of engineering. Earthquake effects on structures systematically bring out the mistakes made in design and construction, even the minutest mistakes. Add to this the undeniable dynamic nature of disturbances, the importance of soil-structure interaction and the extremely random nature of it all; it could be said that earthquake engineering is to the rest of the engineering disciplines what psychiatry is to other branches of medicine. This aspect of arthquake engineering makes it challenging and fascinating, and gives it an educational value beyond its inmediate objectives. If structural engineers are to acquire fruitful experience in a brief span of time, expose them to the concepts of earthquake engineering, even if their interest in earthquake-resistant design is indirect. Sooner or later, they will learn that the difficulties encountered in seismic design are technically intriguing and begin to exercise that nebulous trait called engineering judgment to make allowance for these unknown factors.

Bungale S. Taranath, “Structural Analysis and Design of Tall Buildings. Steel and Composite Construction”. CRC Press, 2012, Boca Raton, Florida.

Elon Musk digging tunnels to save the world’s congestion problem?

I don’t know if you follow Elon Musk (Tesla, SpaceX…) on Twitter. I do. A few weeks ago he twitted on his way to work -on a Tesla, I suppose- that he was exasperated with Los Angeles traffic, and wondered about boring a tunnel. A moment later he twitted again that he would do it.

It seems now that he’s taken seriously the idea, and this past weekend workers started excavating a test trench at SpaceX headquarters.

I’m somewhat confused about this: being Elon Musk the visionaire and entrepeneur he is in so many different areas (PayPal, Tesla, SpaceX, Hyperloop…) this shouldn’t surprise anyone. But this is civil engineering (tunnel boring) he’s talking now, and he even claims he wants to improve tunneling speed by 500 or even 1,000 percent! Although he did say: “We have no idea what we’re doing – I want to be clear about that” (!!!!???!!!)

What do you think? Is Elon Musk out of his depth this time? Will this new idea fail? Or if it works (I don’t know what innovative technology he wants to try out), will it work on all types of soils/rocks? Something deep in my cartesian/engineer mind tells me that it’s very difficult for someone with no previous (civil) engineering knowledge to suddenly come up with an idea that thousands of engineers and contractors all over the world are struggling with everyday. Or is it?

This is Elon Musk we’re talking about. They said the same things about him and the electric car or about launching rockets and landing them back again… And he proved them wrong. And what about the Hyperloop…? We’ll soon see.

Maybe he will fail in this new tunnel adventure, maybe he wont. But in any case this is exactly what the civil engineering world requires: out-of-the-(cartesian)-box thinking and people like Elon Musk with enough ingenuity -and money- to propose and experiment on new, world-changing ideas.

Let’s keep a close eye on Elon Musk’s latest idea, because it would indeed change our profession and the world!

More info:

Inside the ‘Tunnel’ Elon Musk Is Already Digging Under Los Angeles


https://www.wired.com/2017/01/elon-musks-plan-tunnel-la-misguided-nonsense/http://gizmodo.com/elon-musk-on-digging-big-ass-tunnel-we-have-no-idea-wh-1791803837

Cita de Charles Babbage

Cita

On two occasions I have been asked (by members of Parliament!), “Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out?” I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question.

Charles Babbage (1791-1871), diseñador de la máquina analítica, precursora del ordenador.

Inventors and Inventions, Volume 1. Marshall Cavendish, 2007

Manejar un motor stepper con un driver A4988 y Arduino

Voy a contar cómo manejar un motor paso a paso (stepper) con Arduino a través de un driver A4988. En esta otra entrada ya expliqué cómo hacerlo con un controlador DRV8825, que es una versión mejorada del A4988 (el DRV8825 admite microstepping has 1/32, frente al 1/16 del A4988, 45V frente a 35V, y 2.5A frente a 2A).

Pololu driver A4988

 

Características principales del driver A4988:

  • Para motores bipolares
  • Permite microstepping de hasta 1/16
  • 2A
  • Interfaz casi idéntica al DRV8825
  • 35 V máximo
  • Control de corriente máxima con un potenciómetro

Nota importantísima: los datos anteriores, en especial el del límite de 2A es para los A4988 en los módulos Pololu (algo más caros). Hay una variante muy común que son los StepStick (más baratos, y seguramente es este el que tienes si lo has comprado de China). y la principal diferencia es que su límite es de 1A. Así que mucho ojito.

Stepstick driver A4988

El motor que voy a usar es un motor NEMA 17 GZGW09, comprado aquí por 13.50 €, pero valdría cualquier motor bipolar de 4 cables.

gzgw09

Características:

  • Step angle: 1.8 degree
  • Rated voltage: DC 4.83V
  • Rated current: 0.84A
  • Phase impedance: 5.75 Ohm + / – 10 degree centigrade
  • Phase inductance: 9.3 mH + / – 20 degree centigrade (1kHz 1V RMA)
  • Holding torque: 0.48Nm Min
  • Shaft diameter: 5mm / 0.188 (3/16)
  • Shaft length: 20mm
  • Motor height: 34mm
  • Number of lead wire: 4 wires
  • Driven X-axis and Y-axis movement, sprinkler wire wheel to scroll
  • Great for DIY project
  • Dimensions: 5.8 cm x 4.2 cm x 4.2 cm
  • Weight: 220 g

 

Para alimentar el motor empleo una fuente de alimentación de un ordenador (ver esta entrada).

Siguiendo las instrucciones de Pololu, voy a emplear el siguiente esquema de conexión, con paso completo (sin microstepping):

Empleo un Arduino Nano, pero valdría cualquier otro. Uso el pin 8 para la dirección y el 9 para el step. El esquema Fritzing sería así:

La conexión de los cables del motor al StepStick A4988 la hago así:

  • 1A: rojo (morado)
  • 1B: gris (gris)
  • 2A: amarillo (blanco)
  • 2B: verde (negro)

Para no dañar el motor tenemos que regular inicialmente el potenciómetro a la mínima potencia, girando el potenciómetro en sentido antihorario hasta el final, y más adelante ajustarlo hasta la capacidad del motor. En este vídeo se explica cómo regular adecuadamente la intensidad.

Lo primero es determinar el chip que realmente tenemos, pues cambia mucho si es un Pololu o un StepStick.

En la hoja de especificaciones se dice:

El Pololu tiene un valor de para la resistencia de censado SMD de 0.05 Ω (si se fabricó a partir de enero de 2017, entonces 0.068 Ω), mientras que en el StepStick es de 0.2 Ω. Lo mejor es mirarlo en la propia placa.

Así pues, en mi caso, tengo un StepStick (Rs= 0.2 Ω), y la intensidad máxima para mi motor de 0.84 A.

VREF = ItripMAX · 8 · Rs = 0.84 · 8 · 0.2 = 1.34 V

Así que debería limitar a 1.34 V.

Pero ojo, el valor de la intensidad que hemos empleado antes es la máxima. En función de qué configuración de microstepping vayamos a usar, se podrá emplear otro valor.

Así, si empleamos pasos completos sin micro pasos, vemos que la tensión va variando en cada micropaso (también se puede consultar una tabla en las especificaciones):

Si emplease pasos completos y no micro pasos, entonces la tensión máxima que se entrega al motor es de un 70.71%.

Y entonces, si voy a emplear pasos completos tendré que ajustar el voltaje a:

 

VREF= 0.7071· ItripMAX · 8 · Rs = 0.7071 · 0.84 · 8 · 0.2 = 0.95 V

Para medir este voltaje, lo hacemos con el multímetro sobre el potenciómetro y sobre tierra, y ajustamos el potenciómetro hasta la VREF calculada antes (0.95 V).

Ya tengo el driver ajustado a mi motor para pasos completos, así que ya puedo conectarlo y empezar a utilizarlo.

Cargando el siguiente código a Arduino, el motor da una vuelta completa en una dirección, y luego cambia de dirección y da otra vuelta:

const int dirPin = 8;
const int stepPin = 9;
 
const int steps = 200;
int microPausa = 1000;
 
void setup() {
 pinMode(dirPin, OUTPUT);
 pinMode(stepPin, OUTPUT);
}
 
void loop() {
 digitalWrite(dirPin, HIGH);  // Establezco una dirección

 for (int x = 0; x < steps ; x++) {
   digitalWrite(stepPin, HIGH);
   delayMicroseconds(microPausa);
   digitalWrite(stepPin, LOW);
   delayMicroseconds(microPausa);
 }
 delay(1000);
 
 digitalWrite(dirPin, LOW);  // Cambio la dirección

 for (int x = 0; x < steps ; x++) {
   digitalWrite(stepPin, HIGH);
   delayMicroseconds(microPausa);
   digitalWrite(stepPin, LOW);
   delayMicroseconds(microPausa);
 }
 delay(1000);

}

Y un vídeo mostrando el motor en movimiento con el código anterior:

Referencias

https://www.pololu.com/product/2133

Motores paso a paso con Arduino y driver A4988 o DRV8825

http://www.instructables.com/id/Drive-a-Stepper-Motor-with-an-Arduino-and-a-A4988-/

https://www.spainlabs.com/foros/tema-Ajuste-de-los-pololus-en-caliente

Manejar un motor stepper con un driver DRV8825 y Arduino

Voy a contar cómo manejar un motor paso a paso (stepper) con Arduino a través de un controlador DRV8825. En esta otra entrada explico cómo hacerlo con una Raspberry Pi, de forma muy similar, y en esta hablo de varios motores y drivers.

0j42241200

Características principales del driver DRV8825:

  • Para motores bipolares
  • Permite microstepping de hasta 1/32
  • 1.5  por fase o 2.2A si se dispone de ventilación forzada de aire o disipadores
  • Interfaz casi idéntica al A4988
  • 45 V máximo
  • Control de corriente máxima con un potenciómetro

El motor que voy a usar es un motor NEMA 17 JK42HS40-1704 13A, comprado aquí por 12.50 €, pero valdría cualquier motor bipolar de 4 cables.

Características del motor:

  • Número de parte: JK42HS40-1704 13A
  • Tamaño de marco: NEMA17
  • Ángulo del paso: 1,8 grados
  • Voltaje: 3.4V
  • Corriente: 1,7 A/fase
  • Resistencia: 2,0 ohmios/fase
  • Inductancia: 3,0 mH/phase
  • Llevar a cabo el esfuerzo de torsión: 4000g-cm 58.30 OZ-IN
  • Inercia del rotor: 54 g-cm2
  • Esfuerzo de torsión de la muesca: 0,22 kilogramo-cm
  • Número de ventajas de alambre: 4
  • Peso: 0,24 kilogramos
  • Longitud: 40m m
  • Eje del motor: 5mm
  • Longitud del árbol delantero: 20 mm
  • Certificación: CE, ROHS, ISO9001

Para alimentar el motor empleo una fuente de alimentación de un ordenador (ver esta entrada).

Siguiendo las instrucciones de la página de Pololu, voy a emplear el siguiente modo de conexión, con paso completo (sin microstepping):

Empleo un Arduino Nano, pero valdría cualquier otro. Uso el pin 8 para la dirección y el 9 para el step. El esquema Fritzing de mi montaje es así:

Manejar un motor paso a paso con DRV8825 y Arduino

 

La conexión de los cables del motor al DRV8825 la hago así:

  • B2: azul
  • B1: rojo
  • A1: negro
  • A2: verde

Para no dañar el motor tenemos que regular inicialmente el potenciómetro a la mínima potencia, girando el potenciómetro en sentido antihorario hasta el final, y más adelante ajustarlo hasta la capacidad del motor. En este vídeo se explica cómo regular adecuadamente la intensidad, que cuento a continuación.

Empiezo con el motor desconectado. Lo primero, calculo el voltaje por cada fase. Para eso me fijo en las características de mi motor. Ahí me dicen que el motor es de 1.7 A / fase. Tendré que limitar el DRV8825 a este valor. Por encima de 1.5 A (y hasta 2.2A) el controlador DRV8825 debe tener ventilación forzada de aire o un disipador, así que le pego un disipador (me venía al comprarlo con el DRV8825), pues pretendo fijarlo en la capacidad máxima del motor.

Ahora tengo que ajustar la corriente del DRV8825 con el potenciómetro. Primero tengo que averiguar a cuánto he de limitar esa corriente. Para ello empleo la fórmula que viene en la hoja de especificaciones del driver:

Current Limit = VREF × 2

(Ojo, que por muchas páginas se ven otras fórmulas; hay que emplear la fórmula específica de nuestro driver).

Entonces:

1.7 = VREF x 2

VREF = 0.85 V

Pero ojo, este voltaje va asociado a la corriente máxima que recibirá el motor, y depende de la configuración de micropasos. Hay que consultar en la Tabla 2 de la hoja de especificaciones del DRV8825. En mi caso, con paso completo (full step), la corriente es un 71%, así que deberé multiplicar por este factor el resultado anterior:

VREF = 0.71 · 0.85 = 0.60 V

Así que el voltaje límite que debo ajustar es 0.60 V por fase.

Ahora tengo que ver dónde medir con el multímetro en el DRV8825:

Aunque es más fácil medir directamente desde el potenciómetro:

Desconecto el motor, pero alimento con 12V el DRV8825 y alimento también el Arduino a través del puerto USB. Con todo así, mido el voltaje y ajusto el potenciómetro hasta alcanzar mis VREF calculado antes (0.60 V).

Ya tengo el driver ajustado a mi motor, así que ya puedo conectarlo y empezar a utilizarlo.

Cargando el siguiente código a Arduino, el motor da una vuelta completa en una dirección, y luego cambia de dirección y da otra vuelta:

const int dirPin = 8;
const int stepPin = 9;
 
const int steps = 200;
int microPausa = 1000;
 
void setup() {
 pinMode(dirPin, OUTPUT);
 pinMode(stepPin, OUTPUT);
}
 
void loop() {
 digitalWrite(dirPin, HIGH);  // Establezco una dirección

 for (int x = 0; x < steps ; x++) {
   digitalWrite(stepPin, HIGH);
   delayMicroseconds(microPausa);
   digitalWrite(stepPin, LOW);
   delayMicroseconds(microPausa);
 }
 delay(1000);
 
 digitalWrite(dirPin, LOW);  // Cambio la dirección

 for (int x = 0; x < steps ; x++) {
   digitalWrite(stepPin, HIGH);
   delayMicroseconds(microPausa);
   digitalWrite(stepPin, LOW);
   delayMicroseconds(microPausa);
 }
 delay(1000);

}

 

Y un vídeo mostrando el motor en movimiento con el código anterior:

 

Referencias

https://www.pololu.com/product/2133

Controlador de motor a pasos DRV8825

Motores paso a paso con Arduino y driver A4988 o DRV8825

https://forum.pololu.com/t/drv-8825-stepper-motor-steps-and-delay-between-pulses/7530