Mostrando entradas con la etiqueta básico. Mostrar todas las entradas
Mostrando entradas con la etiqueta básico. Mostrar todas las entradas

domingo, 1 de septiembre de 2013

[PROYECTO] Wirelearn Robot Shield (WRS)

Tras un verano llevando a la práctica una serie de proyectos, desde Wirelearn te traemos una sucesión de entradas explicando paso a paso y desde cero, el proceso completo para crear tu propio robot seguidor de líneas (line follower) a partir de una placa Arduino UNO.

Sugerencia de presentación, como el atún en lata... XD

En las sucesivas entradas veremos cómo afrontar el planteamiento y diseño de la circuitería, la creación de la misma mediante insolado y revelado casero de PCB (printed circuit boards), algunos tips para soldar los componentes, la programación y flasheado del programa, y la construcción del chasis con materiales asequibles.

Nuestros objetivos principales serán los de la mayoría de los aficionados a la electrónica y la robótica. Los factores que más nos preocupan son entre otros el precio, la complejidad y el tiempo. Pero te adelantamos, que si bien ha sido un proyecto duro para nosotros, no lo será tanto para tí, ya que las dificultades propias de cualquier proyecto de este calibre ya han sido tratadas y resueltas.

Como requisitos previos, es recomendable haber trasteado un poco con Arduino y un poco de electrónica no vendría nada mal. Pero la idea es explicarlo todo al máximo y argumentar adecuadamente cada uno de los pasos, para evitar esa sensación que queda a veces de estar haciendo algo sin tener ni p*ta idea sin comprender al máximo todos los detalles subyacentes.

En breve comenzamos con el diseño del circuito, pero para ir adelantando conocimientos, échale un ojete a nuestra entrada sobre Motores paso a paso (steppers) porque incidiremos en ello más adelante.

Un saludo!

MRGZ.

jueves, 2 de febrero de 2012

Comenzando con C


Hoy vamos a meternos un poco con el lenguaje C. Ésta entrada tratará de explicar brevemente como funciona éste lenguaje, y nos dará las claves necesarias para empezar a hacer nuestros programillas.
Si te interesan los artículos de PICs colgados anteriormente en Wirelearn, pero el C no acaba de entrarte por los ojos, presta atención a ésta explicación pues te será de gran ayuda.

Comencemos.

A lo largo de mis ya 4 años de estudios de informática, y otros 5 más al menos por mi cuenta, he visto muchas y diferentes maneras de tratar de enseñar un lenguaje. A mi entender, todas son buenas respecto a la intención, pero la mayoría fallan en cuanto a resultados.

Lo primero que debemos preguntarnos es ¿qué necesitamos? Hay quien opina que los Entornos de Desarrollo Integrado (EDI o en inglés IDE) son para tontos y gente que no sabe utilizar un PC. Nada más lejos de la realidad. Podría enseñaros a compilar en consola mediante la orden gcc (linux) por ejemplo, pero perdería el tiempo. Señores, dinosaurios del cretácico y seres del caldo primigenio, estamos en el siglo XXI. La consola es extremadamente útil, pero no para programar, y mucho menos para comenzar a hacerlo.

Visto ésto os recomiendo utilizar el entorno DEV C++. Libre e intuitivo.
Descárgatelo desde aquí, o busca el que más te guste por la red.

Dejemos claros unos cuantos conceptos antes de ponernos a programar como si no hubiese mañana:

    • C es un lenguaje COMPILADO: El procesador no entiende el lenguaje C. Solo entiende
      bloques de unos/ceros. Por lo que para probar nuestro programa, deberemos compilarlo antes. Ésto es, traducirlo a lenguaje máquina (entre otras cosas), y de ésto se encargará el compilador, que instalaremos con el IDE que os comenté hace unas líneas.

    • Acerca de ser un lenguaje compilado, hay un matiz muy importante. Cuando compilamos un programa, lo traducimos al lenguaje de nuestro procesador. Desgraciadamente, no hay un estándar global en cuanto a lenguaje de procesadores, y muy probablemente, si quereis portar vuestro programa a otra máquina, tengais que compilar los fuentes en ella o buscar otras alternativas. Éste es el principal motivo que hizo tan famoso a Java (compilado e interpretado) y que dió lugar a los demás lenguajes interpretados. Pero ahí entraremos en otro momento.

    • Es un lenguaje CASE SENSITIVE: Distingue mayúsculas y minúsculas, por lo que no
      es lo mismo miVariable que mivariable ni NombreUsuario que nombreUsuario.

    • Éste punto es de mi cosecha. Las llaves que vais a ver más adelante“{}”, no se ponen por casualidad. C a mi entender es un lenguaje muy duro en cuanto a la sintaxis. Hay que acostumbrarse a normas como que todas las instrucciones terminan en punto y coma, hay que respetar correctamente las llaves, etc.

    • Es un lenguaje, en definitiva, de alto rendimiento, porque los programas ya están en lenguaje máquina a la hora de ser ejecutados, pero da lugar a programas de baja portabilidad como resultado de ser compilado.

Ahora voy a hacer un pequeño comentario acerca de los tipos de ficheros con los que vais a tratar a la hora de progamar en C. Principalmente cabe destacar dos:

    • Ficheros de código ó ficheros .c: Aquí estará el codigo principal de vuestros programas. Código que será exclusivo para ellos y que no pretendéis reutilizar.

    • Ficheros de cabecera o ficheros .h: Contienen funciones y procedimientos construidos y listos para ser utilizados, tales como leer pulsaciones de teclado, imprimir por pantalla, o comparar dos cadenas. Si en algún caso observáis que aparece con frecuencia una misma función en vuestros programas, podríais plantearos crear una librería y meter dentro vuestra función, de manera que no tendríais que volver a escribirla. Bastaría con introducir al principio de vuestros .c una directiva #include “Ruta/nombreLibrería.h” y estaría lista para ser utilizada.

Una vez expuesto lo más básico acerca del lenguaje C, os recomiendo encarecidamente que le echéis un vistazo a éste pdf, que no es obra mía como podréis observar en la cabeza de cada página. Explica conceptos necesarios como tipos de dato, declaración de variables, y habla un poco de las librerías estándar que más adelante utilizaréis en casi todos vuestros programas. También podéis echar un vistazo a la página c.conclase.net, donde explican a fondo todos los conceptos que veremos aquí, pero con una perspectiva bastante más técnica.

En posteriores entradas veremos cómo crear un programa con DEV C++ e intriduciremos conceptos como función, parámetro, valor, referencia, etc.

No te lo pierdas!

Un saludo, Marcos R.