11 de octubre de 2020

04. 2 Configurando Geany para ejecutar python3 (SOLO LINUX)

 

Una vez que hemos ejecutado nuestro Hola Mundo!, vamos a configurar geany para ejecutar una versión más moderna de python (http://introtopython.org/programming_environment_linux.html)

Con casi toda seguridad python3 está instalado en el ordenador, pero hay que activarlo en Geany si no lo está.

Configurando Geany para usar Python 3

NOTA: este paso quizás no sea necesario en una instalación de Windows.

Con el programa en Geany anterior de Hola Mundo! cargado en Geany (importante), navega al menú CONSTRUIR >> ESTABLECER COMANDOS DE CONSTRUCCIÓN.

Busca "Comandos de Python" y en la línea "Compilar" sustituye python por python3. Debe aparecer la instrucción python3 -m py_compile "%f"

Y donde aparezca "Comandos de ejecución" en la línea "Execute", también. Debe quedar como python3 "%f"

Prueba otra vez el programa Hola Mundo, pulsando F5.
Nota: como este año hemos cambiado de python a python3, en lo que sigue algunas instrucciones pueden cambiar. ¡¡Atentos/as a los cambios y novedades!!
python3

04. 1 Usando Python3 en mi ordenador con Windows 10

 

Para instalar Python3 en mi ordenador con Windows 10, puedo ver este vídeo. Pero ten en cuenta lo siguiente:


 

  1. No tengas miedo e instala la última versión estable. (Python 3.8.6 - Sept. 24, 2020)
  2. Página de descarga: https://www.python.org/downloads/windows/
  3. Bájate siempre un fichero ejecutable (debe poner executable). Si tu ordenador es de 64 bits debe poner x86-64 y si es de 32 bits sólo x86.
  4. Deberás darle al botón derecho sobre el icono de instalación y ejecutar como administrador.
  5. Para poder utilizar PYTHON3, todavía tienes que instalar GEANY

14 de junio de 2020

Programas simuladores del movimiento de los planetas con PROCESSING

En esta época de confinamiento, a mi clase de TIC 1º BAC D le había propuesto el aprendizaje del programa PROCESSING, un entorno de programación orientado al desarrollo de animaciones y gráficos.

Entre los programas propuestos se me ocurrió un simulador del movimiento de traslación de la Tierra en torno al Sol, y, como complicación, además la Luna en torno a la Tierra.

Estos programas no son relativamente difíciles de llevar a cabo. Simplemente se hace que un objeto (un círculo o una imagen) sigan una trayectoria circular respecto de un punto central (que sería el Sol, moviéndose la Tierra) o respecto a un punto móvil (la Luna respecto de la Tierra).

Mis alumnos se han decantado por otro tipo de programas, alguno de los cuales también proponía, pero yo, entre otras cosas, me he dedicado a hacerlos por si tenía que enseñárselos a ellos o a otras clases otros años.

Lo cierto es que tenía una espina clavada en este tema. En la carrera estudié, en la asignatura de Mecánica (rama de la Física), el problema de los dos cuerpos. Este problema calcula la trayectoria de dos masas en el espacio conocidas sus velocidades y posiciones iniciales, siguiendo la ecuación de la fuerza gravitatoria de Newton, y demostrando las leyes de Kepler del movimiento planetario. En su momento, aparte de la teoría y un montón de problemas, recuerdo como un fracaso una práctica de laboratorio que consistía en medir parámetros de una órbita simulada con un programa que creo recordar estaba en BASIC o PASCAL corriendo en un Conmmodore 64 o parecido.

Así que me he propuesto hacer un programa que reproduzca, fielmente, el problema de los dos cuerpos. Y que lo resuelva para el caso del Sol con los planetas interiores (Mercurio, Venus, Tierra y Marte). Para hacerlo, no sólo he tenido que repasar dicho problema, sino también algunos conceptos matemáticos que tenía oxidados, como el teorema del coseno aplicado a la geometría esférica.

Para lograrlo, hay que conocer los parámetros orbitales de cada planeta, que son básicamente posiciones angulares respecto del plano de la eclíptica (el plano que forman el Sol y la Tierra) y datos referente a su órbita. En concreto, semieje mayor de la elipse (a), excentricidad (e), inclinación de la órbita (i), longitud del nodo ascendente (Omega), argumento del perihelio (w) y época de paso por el perihelio (Tau).

El resultado son dos simulaciones que podéis encontrar en la web del IES Seritium: https://www.seritium.es/sissolar/ y https://www.seritium.es/sisTierraLuna/

Podéis encontrar los programas y más información en: https://github.com/agrgal/sistemaSolar

Además, os dejo unos enlaces a contenidos teóricos del problema.
  1. http://www.sc.ehu.es/sbweb/fisica3/celeste/ecuacion/ecuacion.html 
  2. http://www.sc.ehu.es/sbweb/fisica3/celeste/orbitas/orbitas.html 
  3. http://www.sc.ehu.es/sbweb/fisica/dinamica/con_mlineal/m_lineal/mlineal.htm#Sistema%20formado%20por%20dos%20estrellas%20en%20%C3%B3rbita%20circular.



22 de mayo de 2020

Tutoriales de Tinkercad

Tutoriales del propio Tinkercad

Lo mejor es empezar por los tutoriales del mismo TINKERCAD (www.tinkercad.com). Entras en tu cuenta de tinkercad, y, una vez dentro si pulsas en Aprendizaje...



Encontrarás varios tutoriales divididos en STARTERS, LECCIONES y PROYECTOS. Te recomiendo que te veas todos los starters, y algunas de las lecciones para empezar.




Tutoriales en Youtube






En inglés, pero paso a paso






4 de mayo de 2020

NodeMCU 13: intentando el uso de micropython en un v1.0 Lolin



Ya que no puedo terminar las placas, y ahora mismo con el estado de alarma no sé muy cómo continuar sin brocas adecuadas (no me atrevo a pedirlas a China), continuaré practicando algo más con los NodeMCU.

En este caso creo que intentaré usar micropython como lenguaje.

En primer lugar, estoy usando los apuntes de la página: https://randomnerdtutorials.com/getting-started-micropython-esp32-esp8266/

= = = = = = = = = = =

Lo primero es cargarle un firmware apropiado al NodeMCU. Tras unos intentos infructuosos, lo he conseguido. La lista de firmwares viene en la página https://micropython.org/download/esp8266/

  1. Me he descargado el primero estable, https://micropython.org/resources/firmware/esp8266-20191220-v1.12.bin
  2. He instalado con pip install esptool la herramienta esptool.py (version 2.8), tal como se describe en la web: https://github.com/espressif/esptool Nota importante: no me ha funcionado la herrramienta esptool directamente instalada desde comandos con apt (parece antigua).
  3. Comando que borra la memoria del NodeMCU:   esptool.py --port /dev/ttyUSB0 erase_flash
  4. Comando que flashea el NodeMCU: esptool.py --chip esp8266 --port /dev/ttyUSB0 write_flash --flash_mode dio --flash_size detect 0x0 ~/Escritorio/NodeMCU_micropython/esp8266-20191220-v1.12.bin
 = = = = = = = = = = 

Instalo el programa thonny, que es un IDE para Python, desde el terminal con la orden pip3 install thonny. Hay que ejecutarlo desde un terminal. Mediante ese procedimiento se descarga la última versión del programa.

En opciones, intérprete, elegir MycroPython (generic) y el puerto al que está conectado.

En shell, teclear help() para ver la salida y comprobar que todo funciona.

Y, por fin, escribir el primer programa en micropython.



Primeros pasos

Bueno, parece ser que los programas no se cargan directamente en memoria. Hay un programa llamado boot.py que arranca con el dispositivo.

Hay que hacer dos cosas:

  1. En el programa boot.py incorporar la linea import [nombre programa].py que queramos ejecutar.
  2. Guardar el programa [nombre programa].py al dispositivo. Click derecho en el nombre del programa y elegir "subir a".


25 de abril de 2020

Proyecto BOTPA (2): Obtención de los ficheros en GCODE a partir de los GERBER

Introducción

Con kicad obtenemos, como paso final, los ficheros GERBER. De los cuales, me interesan 3: La capa trasera o B_Cu, el fichero de taladros y la capa Edge-Cuts.

La primera es el dibujo de pistas en sí. La segunda los taladros de dicha capa, y, la tercera, cortaría de forma perfecta la baquelita.

La capa F-Cu, o de pistas delanteras, no se contempla en este proyecto. Se dibuja, pero son tan pocas las pistas que se harán puentes en ella. Además, voy a usar baquelita de una sola cara de cobre.

Nota del 4 -Enero-2021: ver revisión al final del artículo.

Conversión de los ficheros Gerber a B-Cu.


Usaré la aplicación online gratuita https://copper.carbide3d.com/rapidpcb/ . Intentaré seguir las escuetas instrucciones de su howto (https://carbide3d.com/apps/rapidpcb/community.html).

Primer paso: opciones iniciales.

  1.  Pongo las medidas de la placa (NodeMCU Botón del pánico CENTRAL): 53.34 x 48.26 y usaré baquelita de 1.58mm
  2. Marcaré "mill flat surface" con una broca de 3mm. Margen de 5 mm, profundidad de 1.5 mm (supongo que es la profundidad a la que ya quitará la capa de cobre) y 10mm/s de velocidad. Todos los datos por defecto.  Nota del 4-Enero de 2021: este paso no lo he necesitado.

Segundo paso: cargar placa de cobre B-Cu.gbr
  1.  Al cargarla, la placa aparece muy desplazada.
  2. Con los valores de offset en X e Y: -115.7 y 81, la centro en la placa.
  3. En el resto de parámetros escojo Count = 3. Si ampliáis la imagen, veréis que es el número de pasadas que da la broca. En el resto de parámetros: V-bit, 20º y 0.1 mm que se corresponde con unas brocas tipo lanza que he comprado (https://www.amazon.es/gp/product/B00SKFVP06/ref=ppx_yo_dt_b_asin_title_o05_s00?ie=UTF8&psc=1)


Tercer paso: ficheros de taladrado
  1. El offset el mismo, pero sale algo desplazado. rectificar la x a -115.7
  2. Elijo broca de 1 mm (¿tendré que cambiar de broca?). Profundidad pongo 4 mm. velocidad de penetración 1mm/s


Cuarto paso: generar línea de corte.
  1. Ajusto la zona de corte con los parámetros que vienen de offset y tamaño de la placa.
  2. Profundidad de 4mm con broca de 2 mm

Quinto paso: no voy a generar hatches, que son como líneas en las pistas. No lo veo necesario.

Sexto paso: extensión *.nc, z seguridad (supongo que es la retroacción) 5 mm y movimiento de traslación 50 mm/s.

= = = = = =

Y por fin guardo los tres ficheros *.nc obtenidos. Los abriré con el programa UGS (Universal Gcode Sender). Este programa simplemente me sirve para visualizar el proceso de grabado y ver que todo está correcto.No lo usaré para mandar el fichero a la máquina; usaré en vez de ello la tarjeta en la unidad controladora.
 
= = = = =

Nota del 4-May-2020: tras intentos infructuosos con V-bit 20º 0.1mm de punta, creo que necesito brocas mejores o baquelitas de cobre menos duras. Parece marcar correctamente a 0.3mm, pero los trazos son muy poco definidos y no rectos. Creo que necesito brocas de 30º o 60º, quizás del tipo flute string o algo parecido.

Vídeos: https://youtu.be/zRdJrE80Vjk, https://youtu.be/nrW6Hq6V3VY

= = = = = = =

Ampliación del 4-Enero-2021: haciendo una placa distinta (para un ATtiny85), y con otras brocas, he conseguido por fin una placa aceptable, aunque un poco tosca. Quizás necesite otro tipo de brocas mejores. Usaré baquelita con una sola cara de cobre (capa trasera).

Respecto al diseño de la placa en KiCad, conviene tener unas pistas no demasiado finas. Por lo menos con el material que contaba. En el ejemplo uso pistas de 1,4mm y pads de 1mm de diámetro. Esto último por conveniencia, pues no contaba con brocas de 0.8mm de diámetro. Notar también que no he diseñado ninguna zona. El programa así trabaja menos, dejando en cobre, las zonas negras.


Una vez definido el diseño, y exportados los ficheros Gerber, uso la aplicación https://copper.carbide3d.com/rapidpcb/ para los tres ficheros que se necesitan (al menos los dos primeros) para elaborar la placa. 

= = = = = = =

Primero, defino la zona : ancho, alto y grosor de la placa. También es importante establecer el origen del grabado / taladrado.

Segundo, introduzco el primer archivo Gerber, el de las pistas de cobre, el más importante. En este paso, lo primero que hay que hacer es establecer un offset que nos centre las pistas en la placa. Seguramente vienen del kiCAD con una desviación al centrarlas en la hoja de diseño. 

Una vez centrada, elijo los parámetros que dibujarán el contorno de las pistas, isolándolas del resto del cobre. usaré una broca de 3.175mm, de 60º y 0.1mm de punta, que compré en aliexpress (https://es.aliexpress.com/item/32968638466.html?spm=a2g0s.9042311.0.0.453f63c0P8Ho4H) ,que no puede elegirse de la lista. 

Después el resto de parámetros: 2 pasadas (counts), a profundidad 0.2mm (podría cambiar con el tipo de placa), a una distancia de 0.03mm cada pasada, step 0.1mm y velocidad 5 mm/s


Es importante hacer zoom y comprobar cómo quedaría el grabado de la placa en este paso. Observad las pasadas como líneas de color negro que rodean las pistas.

= = = = = = 

Tercero, el fichero de taladros. Avanzo a siguiente, normalmente tiene el mismo offset pero, si no, comprobar que los agujeros (círculos negros) se centran en los pads.

En este paso elijo broca de 1mm , a 2mm de profundidad (la placa tiene 1.58mm de grosor) y a una velocidad de penetración (plunge) baja 0.2 mm/s . En este caso las brocas que tengo son malas, y se me han partido, así que he optado por usar puntas de 20º tipo lanza (diámetro punta 0.1mm) que me han marcado los agujeros. Después con un taladro y brocas de 1mm normales los he repasado.

= = = = = = = 

Cuarto, el fichero de corte. Aunque en las características a elegir se escoge una broca tipo "End Mill" de 3.175 mm, a mí me ha servido la misma V-60º que usé en el grabado. 


= = = = =

En siguiente, me olvido del rayado "hatches". Los parámetros finales son: 

 

 = = = = = 

Una vez pulsado el botón de guardar el fichero .zip, pásalo a la tarjeta de tu CNC... Y ya podemos trabajar con la máquina. En este paso conviene fijarnos en cómo quedará la placa:

Consejos importantes: 

  1. Fijar muy bien la placa a una madera, usando cinta adhesiva de doble cara, cuidando que quede uniforme el pegado.
  2. Sujetar la madera a la mesa de la máquina, pero no presionar la placa con las mordazas, ya que puede combar la placa y estropear el resultado.
  3. Repasar todos los tornillos de la máquina. Comprobad que no hay ninguno suelto. Yo tenía uno sin darme cuenta y no había manera que saliera bien... Hasta que lo apreté.
  4. Colocar las brocas siempre con su funda. Y apretarlas bien. No quitar las fundas hasta que se empiece con el proceso de grabado / taladrado.
  5. Lo primero a hacer es el grabado de las pistas con la broca V-60º. Elige la posición donde empezará la máquina (tu origen), y desplaza la broca en alto hasta ese punto en X y en Y.
  6. No es mala idea, por lo menos la primera vez, que con la broca bastante alta eches a correr el programa. Comprueba que la broca recorre la zona que quieres grabar (que no haya equivocaciones: se salga de zona, tropiece con algo, etc.). 
  7. Una vez lo tengas todo claro, vuelve al punto de origen si no estás en él. Ahora con la punta de la broca debes tocar el cobre sin presionar, bajando la broca poco a poco. A ojo, es muy difícil. Si coges un polímetro en posición de medida de continuidad y un par de cables con cocodrilos, sujeta uno a la broca y otro a la placa. Cuando toquen el medidor te dará la señal, y ese es el punto correcto.
  8. Quita la sonda del polímetro y lanza el programa. Deberá marcar las pistas correctamente. Si todo va bien, la broca se parará en el mismo punto donde ha comenzado. Dos consejos: primero, ponte unas gafas protectoras; siempre una broca puede partirse o proyectar una viruta y segundo, yo he usado una brocha para ir limpiando la zona y ver el resultado, sin estorbar el grabado, claro.
  9. Para el siguiente paso, el taladrado de los agujeros, he usado la broca V-20º aunque lo suyo es una de 1mm (¡pero buena, que no se parta!). Al usar esta broca, después tendré que repasar los agujeros con una broca de 1mm normal y corriente con un taladro. Importante: no pierdas la X e Y del origen. Levanta la broca en Z, haz el cambio de brocas, vuelve a calibrar la altura usando el polímetro como antes, y lanza el programa de taladrado.
  10. Si todo va bien, la broca acabará en el lugar donde ha comenzado de nuevo. Ahora puedes cambiar la broca para hacer el corte del perímetro. Yo vuelvo a usar la broca V-60º que ahora penetrará 2mm cortando la placa. Repite el proceso de cambio de broca y de calibrado.
  11. Cuando acabes, despega la placa de la madera, retirando las cintas de doble cara. Intenta no romper la baquelita, a mí me costó despegarla. Repasa los bordes de la placa con una lima. 
  12. Comprueba la continuidad de las pistas y retira las posibles virutas. 
  13. ¡¡ Y a soldar... !!