¿Cuándo dejó de tener sentido dar esta clase?

Durante toda mi vida trabajé en informática educativa, desde diversos roles. Hoy me encuentro elaborando un material con mi equipo de trabajo, y surgió un tema que realmente nos sorprendió.

Lo confirmamos leyendo en Wikipedia:

Un kilobyte es una unidad de almacenamiento de información cuyo símbolo es el kB (con la ‘k’ en minúsculas) y equivale a 103 (mil) bytes. Aunque el prefijo griego kilo- (χίλιοι) significa «mil», el término «kilobyte» y el símbolo «kB» se han utilizado históricamente para hacer referencia tanto a 1024 (210) bytes como a 1000 (103) bytes, dependiendo del contexto, en los campos de la informática y de la tecnología de la información.123

Para solucionar esta confusión, la Comisión Electrotécnica Internacional publicó en 1998 un apéndice al estándar IEC 60027-2 donde se instauraban los prefijos binarios, naciendo la unidad kibibyte para designar 210 bytes y considerándose el uso de la palabra kilobyte no válido a dichos efectos.

Es decir que, siguiendo con la misma fuente, ahora son estas las Unidades de medida de Información:

Sistema Internacional (decimal) ISO/IEC 80000-13 (binario)
Múltiplo (símbolo) SI Múltiplo (símbolo) ISO/IEC
kilobyte (kB)103 kibibyte (KiB)210
megabyte (MB)106 mebibyte (MiB)220
gigabyte (GB)109 gibibyte (GiB)230
terabyte (TB)1012 tebibyte (TiB)240
petabyte (PB)1015 pebibyte (PiB)250
exabyte (EB)1018 exbibyte (EiB)260
zettabyte (ZB)1021 zebibyte (ZiB)270
yottabyte (YB)1024 yobibyte (YiB)280

En conclusión, lo que hace 20 años era toda una extensa explicación sobre el funcionamiento interno de las computadoras y el sistema binario, dejó de tener sentido… como tantas otras cosas que hemos enseñado.

Lo que Paula me enseñó

Paula me enseñó a dejar de usar la palabra “normal”.
¿Qué es lo “normal”? ¿Lo que dicta la norma? ¿Lo que aparece en la mayoría? ¿Cuál mayoría, la percibida? Si dejamos de ocultar a las personas que se apartan de esa normalidad impuesta, veremos que casi no hay personas que sean “normales”. Lo “normal” es la diversidad.

Aprendí lo que es el capacitismo, es decir, la discriminación según la capacidad de las personas. No sólo se trata de “ser amables” con alguien que tiene una discapacidad. Se trata de generar un entorno en el que las personas, todas las personas, puedan transitar, navegar por la web, acceder a servicios y que no se queden afuera del chiste ni de la foto.

Me enseñó que el respeto por el cuerpo del otro es mucho más que un concepto de la ESI. También es entender que si una persona se traslada en una silla de ruedas y no hay rampa, esa persona no quiere que la “alcen”, quizás por sufrir dolores en todo el cuerpo, o quizás porque simplemente no quiere que manipulen su cuerpo.

Paula me enseñó que tener una discapacidad no es un concepto binario. Alguien que se traslada en silla de ruedas quizás puede pararse, dar dos pasitos, pero no puede caminar tres metros. Alquien que usa un bastón de invidente, tal vez tiene una mínima visión para poder distinguir siluetas o algo en una pantalla de celular.

Paula me hizo generar interrogantes de los que no tengo aún respuesta… ¿Qué pasa cuando deseamos tener un hijo y la expresión es “que sea sanito”? ¿Qué pasa cuando proponemos “poner el cuerpo en la lucha”, en qué lugar quedan les militantes que no pueden salir de su casa?

Estoy segura de que Paula me enseñó muchas más cosas, pero en este pequeño homenaje están aquellas que fueron más fuertes y que resuenan en mi vida cotidiana al interactuar con otras personas.

HueBot o GüeBot

Continuando en mi camino de hacer distintas partes de un robot humanoide, esta vez le tocó a los ojos.

Siempre me preguntaba cómo hacer para crear ojos que giren hacia arriba/abajo y hacia los costados.

Así nació esta primera versión de HueBot o GüeBot, el robot de ojos de huevos.

Pensando en cómo darle estética al robotito, recordé mis tuppers comprados para esto mismo (para hacer robotitos). Así que lo armé de tal manera que el giro vertical fue reemplazado por una especie de apertura de párpados.

La estructura de conexiones es igual a la de la mano robótica, pero esta vez, al utilizar tres servomotores, no fue necesario agregar las pilas.

El próximo desafío es el de agregar sensores o manejarlo a través del BlueTooth.

El código hasta ahora:

#include <Servo.h>

 Servo myservo1; 
 Servo myservo2;
 Servo myservo3;

 void setup() {
 myservo1.attach(9);
 myservo2.attach(10);
 myservo3.attach(6);
 }
 void loop() {
 //arriba
 myservo1.write(15); 
 delay(2000);
 delay(1000);
 //abajo
 myservo1.write(40); 
 delay(2000);
 //izquierda
 myservo2.write(40);
 myservo3.write(40);
 delay(500);
 //derecha
 myservo2.write(80);
 myservo3.write(80);
 delay(1000);
 //izquierda
 myservo2.write(50);
 myservo3.write(50);
 delay(2000);
 }

Mover un servo motor utilizando el celular

En la entrada anterior expliqué cómo conectar el Módulo Bluetooth HC-06 al arduino y enviar mensajes desde el celular a través de una app llamada Bluetooth SPP.

Modo Control

Hasta ahora lo utilizamos en modo “terminal”. Ya podemos pasar al modo “Control” de la aplicación (en el menú de hamburguesa – las tres rayitas)

Comenzamos investigando qué recibe el Arduino cuando tocamos cada tecla. Para ello, abrimos el monitor serie y pulsamos los botones. Recibe una A, una B, una C, una D y cuando soltamos, una Z.

Por lo tanto, modificamos el programa para que nos avise qué recibe cada vez que tocamos una flecha. Vamos a pedirle que cuando se oprime el botón hacia arriba nos devuelva “Arriba”, y eso mismo con todos los botones:

void setup()  
 {
   Serial.begin(9600);
 }
 void loop() 
 {
   if (Serial.available())
   {
     char dato=Serial.read();
     Serial.print("Dato recibido: ");
     Serial.println(dato);
     if (dato=='B') {
       Serial.println("Abajo");
     }
        if (dato=='A') {
       Serial.println("Arriba");
     }
        if (dato=='C') {
       Serial.println("Izquierda");   
     }
        if (dato=='D') {
       Serial.println("Derecha");
     }
   }
 }

Y el resultado, al tocar las flechas:

Conectando el Servo Motor Tower Pro Micro Servo 9g

Si nunca utilizaste el servo motor, comenzá por aprender a utilizarlo, por ejemplo, con esta entrada: Servo motor 9g Tower Pro

Ahora vamos a hacer esas mismas conexiones, repasando:

  • cable anaranjado: va a un pin de tipo PWD (los de la tilde de la eñe)
  • cable color marrón: GND (tierra)
  • cable color rojo: +5v

El problema es que tenemos el pin de +5v ocupado por el módulo HC-06, así que vamos a tener que conectar el módulo de Bluetooth y el Servo a una breadboard / placa de pruebas, y de allí sacar un cable para el pin de Arduino llamado +5v

Ahora le agregamos unas líneas a nuestro programa, para que se mueva el servo motor al presionar los botones:

#include <Servo.h>
 
Servo myservo;   

void setup()  
 {
   Serial.begin(9600);
   myservo.attach(9);
 }

void loop() 
 {
   if (Serial.available())
   {
     char dato=Serial.read();
     Serial.print("Dato recibido: ");
     Serial.println(dato);
     if (dato=='B') {
       Serial.println("Abajo");
       myservo.write(90);
         delay(15); 
     }
        if (dato=='A') {
       Serial.println("Arriba");
       myservo.write(0);
         delay(15); 
     }
        if (dato=='C') {
       Serial.println("Izquierda"); 
       myservo.write(180);  
     }
        if (dato=='D') {
       Serial.println("Derecha");
       myservo.write(45);
     }
   }
 }

Como el servo no gira 360 grados, los botones no lo mandan exactamente arriba, abajo, derecha, izquierda. Ya mejoraremos eso en otra entrada.

Primeros pasos con Arduino: Mi presentación para el Flisol

Comparto aquí la presentación que utilicé el día del Flisol 2019, en UNPAZ.

En el taller (de una hora de duración) mostré muy rápidamente cual es la estructura de la placa Arduino Uno, y utilizamos leds, un motor y un sensor de distancia.

También expliqué y practicamos el uso de la placa de pruebas o breadboard.


Estoy muy conforme con la manera en que voy aprendiendo a llevar adelante este tipo de talleres, ya que cada vez que una dificultad se repite, encuentro la manera de encarar ese contenido para saltear ese obstáculo.

Y esta vez me gustó mucho la manera en que expliqué el uso de la protoboard, con estos tres videos:

Cómo agregar un usuario a la lista de sudoers

Ya es la segunda vez que me pasa este mes, jaja! Es porque estuve instalando linux en varias computadoras: Voy a instalar algo y la terminal me responde que no tengo permisos para eso, es decir, mi usuario no está en la lista de sudoers.

Así que esta vez lo voy a anotar en este blog para futuras referencias.

Si tu usuario es root, el primer paso es ir a la terminal y poner:

su

Es decir, acceder al nivel de administrador.

Después, escribir:

visudo

Con este comando editamos el archivo /etc/sudoers

Allí buscamos el renglón que dice:

root ALL=(ALL) ALL

Lo copiamos debajo y ponemos el nombre del usuario al que queremos darle todos los permisos. Tiene que quedar así:

root ALL=(ALL) ALL
tunombre ALL=(ALL) ALL

Otros casos serían:

Linux, linux y linux

Hoy estuve todo el día divirtiéndome con… ¡Linux!

Como dejó de funcionar el disco de mi computadora de escritorio, empecé a poner en orden viejitas netbooks (y también una no tan viejita All in one) que me “tiraron por la cabeza” personas que ya no las querían.

Netbook con Huayra Linux, All in one con Ubuntu y netbook con Debia

Tres computadoras, tres distros de Linux

En la primer computadora, una All in One con un procesador i3, instalé un Ubuntu. Me sorprendió lo fácil que fue todo, incluso.. ¡detectó solo la impresora inalámbrica y ahora puedo imprimir por wifi! (antes no podía). La impresora es una Samsung m2020, es maravillosa <3

En la segunda, un compañero de trabajo me había instalado un Debian, pero yo no podía acceder con el usuario administrador, así que tuve que hacer una pequeña investigación para:

En la tercera compu, la menos potente, más antigua, quise probar Huayra. La verdad, funciona bien. La compu es lenta de por sí, pero para llevar y traer archivos, o acceder a un sitio web, está perfecta así.

Ya me bajé lubuntu para probarlo en esa compu, pero será otro día…

¡Felices fiestas! Con cuatro matrices MAX7219CNG

¿Qué se necesita para hacer este cartel?

  • Cuatro matrices led MAX7219CNG 
  • Una placa Arduino Uno
  • Una protoboard
  • Muchos cables

Matrices led

Estas matrices tienen la posibilidad de conectarse “en cadena”. En la parte de arriba tiene cuatro conectores, y debajo otros cuatro.

Los conectores de la parte superior y los de la parte inferior son equivalentes, exceptuando el que se utiliza para conectar unos con otros:

  • DIN / entrada de datos
  • DOUT / salida de datos

Ahora, las conexiones para utilizar este código van de la siguiente manera:

  • Todos los VCC se conectan al pin 5v del Arduino UNO
  • Todos los GND se conectan a tierra, a uno de los pines GND del Arduino UNO
  • Todos los CS van al pin 10 del Arduino
  • Todos los CLK van al pin 11 del Arduino
  • Los pines DIN y DOUT se conectan en cadena de la siguiente manera:

Conexiones pin de datos

El código lo tomé de este enlace, es el último, funciona perfecto: http://kio4.com/arduino/15bmatriz8x8.htm

Piano de frutas sólo con Arduino

Siempre se ve el clásico ejemplo del piano de bananas. Cuando decidí probar hacer mi propio piano de frutas, encontré que todos los caminos me conducían a Makey Makey.

Sin embargo, buscando un poco más encontré en este posteo del blog untitled.es, la manera de hacer un piano de frutas sin utilizar Makey Makey.

Pagando con un twitt se pueden descargar el plano y el código para realizar un piano de frutas.

El código descargado comienza con esta hermosa leyenda:

/*
Realizado por http://Untitled.es 
Descubre nuevos tutoriales todas las semanas.

Puedes utilizar este ejemplo para lo que te apetezca: 
- Modificarlo 
- Venderlo 
- Leerlo en forma de cuento antes de dormir

Incluso, si decides añadirlo a tu proyecto, puedes compartir la fuente.
*/

Y después de varios intentos, cambiar esto y aquello, desconectar todo y empezar por una sola fruta, descubrí que mi primer piano de frutas no sonaba porque le había puesto una resistencia demasiado grande.

Finalmente, mi código de dos notas (y un led “testigo” en el pin 13) quedó así:

int nota1 = 261;

int nota2 = 1046; 

int zumbador = 8;

void setup() {

  Serial.begin(9600);

  pinMode(zumbador, OUTPUT);  

}

void loop() {

  Serial.print("Analog 1: ");

  Serial.println(analogRead(0));

  if (analogRead(0)<=1020) {

    digitalWrite(13, HIGH); 

    tone(zumbador, nota1);

    delay(100);

    noTone(zumbador);

    digitalWrite(13, LOW);

    }

  if (analogRead(1)<=1020) {

   tone(zumbador, nota2);

    delay(100);

    noTone(zumbador);

    }

    }