Redimensionando la tarjeta SD

Enlace

Touchscreen

Tengo un pantalla táctil de 3.2 inch con el chip xp12046. Para manejarla he seguido esta documentación:

Documentación

Para instalar retropie con esa pantalla he visto este enlace y ha funcionado. Lo que no ha funcionado ha sido el lanzamiento de kodi desde retropie, * No: (tengo que intentar el siguiente enlace2)* . Igual funciona modificar el fichero guisettings.xml. Al final lo que me ha funcionado ha sido modificar el /boot/config.txt y poner:

#hdmi_force_hotplug=1
hdmi_ignore_hotplug=1

Para que el estado en el que se me queda un juego se grabe

El Kodi queda un poco pequeño, para cambiar el tamaño de la fuente: enlace

Para spectrum: enlace

Sistemas operativos

Sugar

He probado Sugar que parece que por fin funciona.

Para cargar la imagen en la sd he lanzado el siguiente comando:

xzcat Fedora-SoaS-armhfp-27-1.6-sda.raw.xz | sudo dd status=progress bs=4M of=/dev/sda 

Para activar la wifi por temas de derechos:

sudo curl https://raw.githubusercontent.com/RPi-Distro/firmware-nonfree/master/brcm80211/brcm/brcmfmac43430-sdio.txt -o /lib/firmware/brcm/brcmfmac43430-sdio.txt

Luces neopixel con controlador ws2801 para arduino antes de usarlas en la raspberry

Libreria desarrollada por adafruit

Podemos descargarla en la carpeta de Arduino/libraries para poder compilar y subir a la placa desde el IDE de Arduino-

Los colores y pines los podemos ver en este enlace -Gracias-


Primer problema: La wifi

La tarjeta wifi es una Broadcom Limited BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (rev 02)

Fuente donde está la solución

En realidad, lo único que hice fue (OJO, probar primero sin instalar bcmwl*, para evitar lo que tuve que hacer al final)

sudo apt-get purge b43-fwcutter firmware-b43-installer firmware-b43-lpphy-installer firmware-b43legacy-installer bcmwl*
sudo apt-get install b43-fwcutter firmware-b43-installer bcmwl*

Finalmente, después de reiniciar, activar el módulo:

sudo modsprobe -r b43 bcma
sudo modprobe b43

Bueno, tuve un pequeño problema y era que el módulo no lo cargaba al reiniciar, lo tenía que hacer a mano:

https://askubuntu.com/questions/135297/how-do-i-make-modprobe-permanent

echo "b43" | sudo tee -a /etc/modules

Además, tenía el modulo b43 en una blacklist, por lo que no lo cargaba: Tuve que comentar la línea que lo metía en el archivo (ver autorespuesta de https://askubuntu.com/questions/703843/etc-modules-not-working-as-expected):

sudo nano /etc/modprobe.d/blacklist-bcm43.conf

Segundo problema: La resolución de la pantalla

La tarjeta grafica es Silicon Integrated Systems [SiS] 661/741/760 PCI/AGP or 662/761Gx PCIE VGA Display Adapter

Fuente donde está la solución

No tengo capturador de pantalla

Esto lo he solucionado con el comando scrot -s desde ejecutar

Autologin lightdm

https://askubuntu.com/questions/967837/how-to-enable-autologin-on-lubuntu-16-04-lts-lightdm/967838

PCManFM no tiene opción para compartir carpetas

sudo apt-get install system-config-samba

El comando anterior me da una GUI para configurar las carpetas compartidas. Desde el menú no me ha funcionado, he tenido que lanzarlo desde la línea de comandos:

sudo system-config-samba

En caso que falle:

sudo touch /etc/libuser.conf

Y volver a ejecutar el comando lanzador


Me he encontrado este estupendo trabajo de Julian Gilbey:

Generador de puzzles matemáticos libre - clon de Tarsia’s Formulator

Habrá que probarlo.


Macro_para_sigad

  • 2017-10-18

Manipular los informes del sigad

Podemos manipular las orlillas del sigad con esta macro de Excel:

Sub Macro1()


Dim i, j, k, l, fila_inicial, columna_inicial, nalumnos, nasignaturas As Integer
Dim asignatura As String


    fila_inicial = 2
    columna_inicial = 2
    Sheets("Hoja1").Select
    Range("A" & fila_inicial).Select
    i = ActiveCell.Row
    
    Selection.End(xlDown).Select
    j = ActiveCell.Row
    
    nalumnos = j - i + 1
    
    Cells(1, columna_inicial).Select
    
    i = ActiveCell.Column
    
    Selection.End(xlToRight).Select
    j = ActiveCell.Column
    
    nasignaturas = j - i + 1
    
    ' MsgBox alumnos
    
    Sheets("Resultados").Select
    Cells(1, 1).Value = "Nombre"
    Cells(1, 2).Value = "Asignatura"
    Cells(1, 3).Value = "Matricula"
    
    i = fila_inicial
    
    
    For k = 1 To nasignaturas
    
    Sheets("Hoja1").Select
    asignatura = Cells(1, columna_inicial - 1 + k).Value
    
    
    Range(Cells(fila_inicial, 1), Cells(fila_inicial + nalumnos - 1, 1)).Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Resultados").Select
    Cells(i, 1).Select
    ActiveSheet.Paste
          
    Range(Cells(i, 2), Cells(i + nalumnos - 1, 2)).Value = asignatura
    
    Sheets("Hoja1").Select
    Range(Cells(fila_inicial, columna_inicial - 1 + k), Cells(fila_inicial + nalumnos - 1, columna_inicial - 1 + k)).Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Resultados").Select
    Cells(i, 3).Select
    ActiveSheet.Paste
    
          
    i = i + nalumnos
       
    Next
        
    
End Sub

Esperemos que los desarrolladores de la aplicación vayan mejorando el generador de informes. Hasta entonces me tocará usar esta macro de visual basic.

Normalmente sigo estos pasos antes de ejecutar la macro:

* Quito las columnas que no tienen datos y que se doblan por la exportación de los encabezados y dejo la tabla colocada en la celda A1 (la fila de resultados totales final también la quito). La primera columna y la última también
* Creo una nueva hoja llamada Resultados y a la hoja donde están los datos la renombro a Hoja1
* Ejecuto la macro

Bienvenida y Hojas de inicio de curso

Atención: Toda la documentación de Matemáticas 4ºESO la estamos mudando aquí

Recursos

Académicas

Aplicadas

Ejercicios de Potencias y Radicales


Cómo obtener archivos libres

A la hora de añadir contenido a una web conviene utilizar recursos con licencias libres, ya que en caso contrario seguramente estemos vulnerando los derechos del autor. Desgraciadamente mucha gente no es consciente de eso y crea contenido descuidando este aspecto.

En esta entrada recopilo fuentes libres que en algún momento he utilizado:

  1. freepik es una base de datos de imágenes
  2. Free Music Archive: Música libre

Para poder ejecutar Jekyll en Local he seguido este tutorial.

Básicamente es irnos al directorio donde tengamos nuestras fuentes y ejecutar:

cd /path/to/myweb
$ bundle exec jekyll serve
# Then point your browser to:
# http://localhost:4000/

(NOTA): Como lo anterior me falló por un gem, he tenido que seguir, además el siguiente tutotial


Atribuciones

Web donde encontré información


Tutorial de BlocksCAD:

Introducción

BlocksCAD no es más que una interfaz web de OpenSCAD basada en bloques tipo Scratch. Evidentemente, solo tiene implementados bloques muy básicos, por lo que la funcionalidad es limitada. Sin embargo, el uso de bloques hace que sea una estupenda herramienta para introducir a los niños en el pensamiento computacional, la capacidad espacial y el modelado en 3D.

Podemos acceder via web a BlocksCAD, o bien descargarlo de github y ejecutarlo localmente o en un servidor dedicado, esto último está bien si no tienes conexión a Internet (más información en el README del proyecto):

cd /path/to/mydir-with-index.html-in-it
python -m SimpleHTTPServer 9000
# Then point your browser to:
# http://localhost:9000/

En el momento de la elaboracion de este tutorial, se estaba desarrollando un proyecto similar: ScratchyCAD. Posteriormente se ha conocido la existencia de BeetleBlocks

El entorno

El entorno lo podemos dividir en tres partes:

  1. Área de Programa: Conjunto de bloques que reprensentan las instrucciones a ejecutar para “renderizar” el modelo 3D. Se arrastran desde la barra de bloques y se van encajando unos con otros para determinar la lógica de ejecución-construccion.
  2. Barra de bloques: Paleta que contiene los bloques que se pueden utilzar en el área de programa. Los bloques se arrastran de una zona a otra
    • Área de dibujo o renderizado: Al darle al botón render, el programa ejecuta y renderiza el modelo 3D a partir de los bloque que aparezcan en el área de programa.

Además, tenemos la típica Barra de Herramientas para manejar los archivos, determinar las preferencias del entorno o acceder a la ayuda del programa.

Tutoriales

NOTA: Por defecto, vamos a ver las opciones básicas del programa. Por tanto, se recomienda, sobre todo al principio, selecciónar en la Barra de Herramientas que solo aparezcans las funciones básicas: Options-Simple Toolbox

  1. Cubo “Hola Mundo”

    Cuando se aprende un lenguaje de programación como pueda ser este, normalmente, la primera actividad que se propone es una programa muy sencillo que permita al usuario familiarizarse con la herramienta. Antiguamente para los lenguajes de programación tradicionales, un programa típico era hacer que por pantalla apareciera el texto Hola mundo. En nuestro caso, lo más sencillo es construir un cubo, por lo que éste va a ser nuestro Hola mundo particular.

    Procedimiento: En primer lugar, vamos a seleccionar la opción Simple ToolBox que aparece dentro del menú options de la *barra de menús. De esta forma reducimos las opciones de la Barra de bloques. Una vez vayamos conociendo el programa ya nos intereserá la parte avanzada.

    Dentro del bloque 3D Shapes, arrastramos el bloque y lo llevamos a la zona del programa.

    Ya tenemos nuestro primer programa con BlocksCAD. Le estamos diciendo que dibuje un cubo, pero no lo vemos aún. Nos falta ejecutar las instrucciones, en los programas de modelado a la ejecución de un programa que contiene un diseño se le llama renderizado. Para renderizar, hemos de ir al área de dibujo o renderizado y pulsar el botón Render que se encuentra en la esquina inferior izquierda.

    Vamos a explicar el bloque. Vemos que tiene los siguientes campos:

    • Longitud del cubo en el eje X, es decir el ancho. NOTA: Por defecto el valor indica milímetros, es decir, un valor 10 en este campo nos dará un cubo de 1 cm de ancho.
    • Longitud del cubo en el eje Y, es decir el largo.
    • Longitud del cubo en el eje Z, es decir el alto.
    • Un desplegable not centered o centered. Indica si queremos que un vértice del cubo se apoye en el origen de coordenadas o que el origen de coordenadas se encuentre en el centro del cubo.

    Ejemplos:

    Bloque Renderizado

    Ejercicios:

    Se proponen los siguientes ejercicios:

    Problema Imagen Solución
    Modela un cubo de 2cm x 5cm x 3cm centrado Solución
    Modela un cubo de 6cm x 2cm x 3cm sin centrar Solución
  2. Otros objetos primitivos: Cilindros y esferas

    Hemos visto la primitiva cube, que nos permite modelar cubos en particular y prismas en general.

    Esferas: Para crear una esfera tendremos que seguir el siguiente procedimiento: Dentro del bloque 3D Shapes, arrastramos el bloque y lo llevamos a la zona del programa.

    Al renderizar obtendremos una esfera de 10mm:

    El único parámetro que podemos meter indica el radio de la esfera. NOTA. Siempre vamos tener por defecto la esfera centrada en el origen de coordenadas.

    Cilindros: Para crear un cilindro tendremos que seguir el siguiente procedimiento: Dentro del bloque 3D Shapes, arrastramos el bloque. y lo llevamos a la zona del programa.

    Vamos a ver qué parámetros se pueden modificar:

    • radius1, es el radio de la base inferior de la figura a modelar
    • candado, por defecto aparece cerrado, y esto hace que el parámetro radius2 herede el valor de radius1
    • radius2, radio de la base superior de la figura. Cuando coincida con radius1* tendremos un cilindro, y cuando no, tendremos un tronco de cono o un cono si lo ponemos que el radio es cero.
    • height, altura del cilindro.
    • centered/not centered, centrado en el origen de coordenadas o no

    Al renderizar obtendremos un cilindro de 10mm de radio y 10mm de altura:

    NOTA: A diferencia de OpenSCAD, donde un cilindro no es más que un prisma de bsae un ploígono regular de un número de lados dado por un parámetro, en BlocksCAD no podemos fijar el número de lados, éste viene fijado por el programa. Esto implica que no podemos hacer prismas de base poligonal utilizando la primitiva cylinder, al contrario de como pasa en OpenSCAD. Este hecho limita mucho las posibilidades de esta herramienta, por lo que se espera que en próximas versiones habiliten el parámetro número de lados. Evidentemente, tampoco podemos hacer pirámides ni troncos de pirámides.

    (( Ejemplos:

    Bloque Renderizado

    Ejercicios:

    Problema Imagen Solución
    Modela una esfera de 2cm Solución
    Modela un cilindro de 6cm de radio x 3cm de altura, sin centrar Solución
    Modela un cono de 3cm de base x 5cm de altura sin centrar Solución
  3. Transformaciones

    Vamos a ver el segundo grupo de herramientas que aparece en la Barra de Bloques - Transforms: El de transformaciones. Nos permite desplazar, rotar o escalar los objetos.

    Traslaciones: Cuando renderizamos una de las primitivas anteriores, éstas aparecen colocadas en el centro de coordenadas. Mediante las traslaciones podemos desplazarlas a cualquirr lugar del espacio usando vectores de posición. Para trasladarun objeto tendremos que seguir el siguiente procedimiento: Dentro del bloque 3D Shapes, arrastramos el bloque y lo llevamos a la zona del programa. Una vez ahí, colocamos dentro, arrastrando, los bloques correspondientes al objeto a trasladar.

    En este caso, los parámetros X, Y y Z, son las coordenadas del vector de traslación.

    Rotaciones: Para rotar un objeto, arrastramos el bloque
    y lo llevamos a la zona del programa. Una vez ahí, colocamos dentro, arrastrando, los bloques correspondientes al objeto a rotar.

    En este caso, los parámetros X, Y y Z, son los grados a rotar en los diferentes ejes. NOTA: Las rotaciones se hacen sobre los ejes de coordenadas, y por tanto sobre el origen de coordenadas, no sobre el centro del objeto. Por lo que si el objeto está trasladado, antes de la rotación, el vector de posición también sufrirá la rotación. Normalmente, interesará más hacer primero la rotación del objeto, centrado en el origen, y después la traslación.

    Ejemplos:

    Ejemplo Bloque Renderizado
    Prisma de 10x20x30 centrado y trasladado 30 en la dirección X, 30 en la Y y 40 en la Z
    Ejercicio anterior rotado 45º en el eje X

    Ejercicios:

    Problema Imagen Solución
    Modela un prisma de 10x0x10 trasladado 10 en el eje X Solución
    Modela un prisma de 10x0x10 rotado 45º sobre el eje z y trasladado 10 sobre el eje Y Solución
  4. Operaciones lógicas: Unión y Diferencia. Uniendo objetos y haciendo agujeros

    Vamos a ver el tercer grupo de herramientas que aparece en la Barra de Bloques - Set Ops: Operaciones Lógicas de Unión, Diferencia (también aparece la intersección). Nos permite unir objetos, hacer agujeros.

    Uniones: Para unir dos o más objetos tenemos que seleccionar el bloque . En el bloque vemos que hay espacio para colocar dos sub-bloques, correspondientes a los objetos que queramos unir. Si queremos unir más de un objeto, pinchado en el símbolo +, podremos añadir espacio para nuevos sub-bloques.

    Diferencias: Si con la unión lo que hacemos es “pegar” objetos, con la diferencia lo que hacemos es hacer “agujeros”. La forma de trabajar con el bloque es similar a la unión pero, obviamente, con resultados diferentes.

    Ejemplos:

    Ejemplo Bloque Renderizado
    Une un cubo de 10x10x10 con una esfera de radio 5 y trasladada 5 sobre el eje z
    Ejercicio anterior pero haciendo la diferencia entre el cubo y la esfera

    Ejercicio:

    Problema Imagen Solución
    Modela un spinner de dos ramas con tres agujeros para cilindros de radio 11mm y 7 mm de altura  

Autor

Carlos Rodríguez Jaso

Licencia


Creative Commons Attribution-ShareAlike 4.0 International License


Índice

Añadiendo TOC a fichero Markdown

El TOC se ha generado con esta aplicación: github markdown toc

La documentación está en este enlace: github markdown toc

Atribuciones

github markdown toc

Agradecimientos

Gracias Eugene