Estoy escribiendo un manual de programación en python para mi sobrino de 12 años, y de momento solo estoy con los conceptos generales y un poco de historia de la programación , y quería ponerlo aquí para que me dierais vuestra opinión sobre como voy :
...................... Imagina que tienes una maquina para construir seres humanos, el problema es a esta maquina solo acepta diseños en átomos. ¿te imaginas lo que es tener que construir un ser humano átomo a átomo? y sin cometer errores, seria una tarea muy complicada.
En un ordenador pasa algo parecido, todo lo que funciona en un ordenador (programas, juegos etc,) no son otra cosa que millones de impulsos eléctricos ordenados por grupos. Una especie de código morse eléctrico.
Para poder gestionar estos millones de impulsos eléctricos, ordenarlos y juntandolos por grupos para que se conviertan en información (en el ejemplo del código morse, por si solo, son solo golpes, ordenados
son un códigos de sonido o lo que es lo mismo, Información) se necesita un microcontrolador, que es en electrónica la pieza que controla la electricidad que entra y la ordena convirtiéndola en códigos de información.
El microcontrolador funciona con lo que hoy en día se conoce como Lenguaje maquina, compuesto por 2 únicos niveles de tensión: abierto o cerrado, es decir, pasa la electricidad o no pasa, y se representa con los números 0 y 1, por eso el lenguaje de máquina sólo utiliza estos numeros.
A cada uno de estos números, (los ceros y unos) en informática se decidido hace tiempo llamarlos Bit o bits en plural que son las iniciales de Binary Digit, es decir Dígito binario en ingles, por que solo esta compuesto de dos dígitos, 0 y 1
Siguiendo con nuestro ejemplo del código morse, los ceros serian los silencios y los 1 los golpes,(entra el sonido o no entra) por lo que en el típico S.O.S del código morse (... --- ... ) donde las rayas se suelen hacer con un golpe y una pausa cuando se usan sonidos y no un telégrafo, en nuestro ejemplo de programación lo tendríamos que representar asi:
111 0 101010 0 111 (prueba a hacerlo en una mesa)
¡¡ Felicidades eso es programar !!
Bien entonces, tenemos claro que los microcontroladores hacen que en nuestro ordenador todo funcione, a base de ordenar impulsos eléctricos, y que representamos con los signos 0 y 1 a los que llamamos bits, mediante el Lenguaje Maquina, y así controlar si queremos dejar pasar o no estos impulsos.
Pero ahora viene el primer problema con el que los Ingenieros Informáticos se toparon en su dia.
Siguiendo con el ejemplo anterior, imagínate que queremos programar un S.O.S que suene durante todo un día. ¿Te imaginas cuantos bits tendríamos que poner en el papel? y asegurarnos ademas de que todo este en el orden correcto. y si después de 400 paginas de bits hay alguno que esta mal puesto, ¿Imaginas lo que significa tener que revisar todo eso hasta encontrar ese bit mal puesto?
Por este motivo se invento el primer lenguaje de programación, El Lenguaje Ensamblador. Este lenguaje trabaja con nemónicos, que son simplemente grupos de letras y números que representan las órdenes o tareas que queremos que el microcontrolador haga. Y para que nuestro ordenador (que recordemos solo habla en ceros y unos) entienda estos nemonicos, se usa un programa llamado Ensamblador que funciona como traductor.
Por ejemplo, en el ejemplo anterior del S.O.S, si lo escribiésemos con nuestro propio lenguaje ensamblador en lugar de en código maquina escribiríamos "S.O.S" y usando un programa ensamblador le diríamos al microcontrolador que cuando nosotros queremos hacer una S en el código morse significa que estamos diciendo que deje pasar 3 impulsos (111). De esta forma es mas sencillo poner "S.O.S" varias veces que tener que poner "111 0 101010 0 111" varias veces. ¿Lógico verdad?
Pero si el lenguaje maquina solo tiene 2 posibilidades, como podemos usar nemonicos en lenguaje ensamblador para decirle a la maquina que trabaje con mas de 2 opciones?
como hemos hablado antes, el microcontrolador no solo se encarga de gestionar los impulsos, para dejarlos entrar o no si no que ademas tiene la capacidad de mandarlos a distintos sitios por los circuitos, y así, ordenarlos en grupos, si usamos estos grupos, con un sistema binario podemos crear mas de 2 combinaciones diferentes.
¿que es un sistema binario?
En nuestro sistema de números, en cada espacio nosotros usamos hasta 10 posibilidades por eso se llama sistema Decimal, por que usamos 0,1,2,3,4,5,6,7,8 y 9 ¿y cuando necesitamos mas números por ejemplo para poner un 10? pues añadimos un nuevo espacio, con otras 10 posibilidades mas para números, este nuevo espacio si te fijas siempre se añade a la izquierda.
En el sistema binario es igual solo que en lugar de tener 10 posibilidades solo tenemos 2: el 0 y el 1
En el sistema decimal se multiplica cada casilla de la izquierda por 10 de forma que si tenemos un numero de 3 dígitos como por ejemplo 345 sabemos automáticamente, que el numero 3 al estar en la tercera casilla, contando desde la derecha hay que multiplicarlo por 100 y el que esta en medio por 10. Por lo que ese numero seria (3*100) + (4*10) + 5 en Binario como solo tenemos 2 posibilidades y no 10, cada casilla a la izquierda vale el doble de la que tiene a su derecha. y no 10 veces mas como con el sistema decimal. Ejemplo: 128-64-32-16-8-4-2-1 (recuerda que siempre se empieza a contar desde la derecha)
Imagina que tenemos 8 bombillas y cada una vale lo mismo que hemos dicho antes (128-64-32-16-8-4-2-1) ¿que bombillas tienes que encender para sumar 22? la sexta bombilla no por que esa vale 32 y nos pasaríamos, asi que tendríamos que empezar encendiendo la 5º bombilla que vale 16 ya que es el numero mas alto sin pasarse, la 4º bombilla tampoco podemos encenderla por que entonces serian 16+8 y eso es 24 y también seria pasarse, asi que tenemos que ir a la anterior aun la que vale 4 de esta forma ya tenemos 16+4 que son 20, asi que solo nos quedaría encender la que vale 2 para sumar 22 ¿no?
pues esto en binario seria 00010110 fíjate como los 1 corresponden a las bombillas que estan encendidas, por lo que contando desde la derecha serian 2+4+16 =32 ¿facil no? ¿y si encendiésemos las 8 bombillas?
pues entre todas sumarían 255.
Los Bytes:
Un Byte es un grupo de 8 bites. (igual que en el ejemplo de las bombillas) y sabemos que un grupo de 8 bits nos permite 255 posibilidades. Es por eso que cada byte que es la unidad mas pequeña que se usa en informática, tiene un valor entre 0 y 255.
|