Archivo de la categoría: github

Documentar Proyectos Educativos

A la hora de realizar un proyecto de cualquier tipo y especialmente en educación, es importante documentar adecuadamente los proyectos. Disponemos de muchas herramientas on-line para poder hacerlo.

Además en el uso de hardware libre cobra especial importancia documentar el proyecto no solo para nosotros mismos o los alumnos sino para compartir con la comunidad y que nuestros proyectos sean replicado e incluso mejorados por otras personas, pueda reutilizarse el material y extendamos el conocimiento libre con nuestro trabajo.

Un magnífico ejemplo de todos esto es el proyecto El Cable Amarillo http://www.elcableamarillo.cc/. Proyecto educativo para fomentar el uso de la Programación y Robótica en los centros educativos de Murcia.

Fritzing

Fritzing es el programa por excelencia para la realización de esquemas eléctricos en proyectos con Arduino y es open source. Dispone bibliotecas con la mayoría de componentes (http://fritzing.org/parts/), incluido los propios Arduinos, placas de conexiones, led, motores, displays, etc. Además permite hacer esquemas eléctricos, diseñar nuestro PCB final y un sinfín de opciones que convierten a este programa en una herramienta muy útil.

También nos permitirá obtener el esquema eléctrico, listado de componente usados y el diagrama para poder fabricar la PCB. Luego podemos solicitar que nos hagan la pcb con el servicio Fritzing Fab: https://go.aisler.net/fritzing. Nos permitiría diseñar un shield propio y que nos los construyan.

Podemos explorar otros proyectos y usarlos: http://fritzing.org/projects/

Para aprender más sobre Fritzing: http://fritzing.org/learning/

Librería de partes: http://fritzing.org/parts/

Fritzing no es un simulador, pero las nuevas versiones de Fritzing permite guardar el código de un diseño e incluso cargarlo en Arduino.

Enlaces:

Arduino Project Hub

Arduino project hub: https://create.arduino.cc/projecthub

Arduino Project Hub es un lugar donde poder ver proyectos realizados con Arduino y también poder compartir los proyectos propios.

Cuando queremos publicar un proyecto en Arduino Project Hub es muy sencillo porque separa por apartados todo lo que tenemos que documentar el proyecto:

  • Nombre del Proyecto
  • Imagen de portada
  • Nivel de dificultad
  • Historia de Proyecto
  • Lista de Materiales (BOM)
  • Aplicaciones y Servicios On-line Usados
  • Descripción de proyecto
  • Herramientas
  • Esquemáticos y diagramas de circuito
  • CAD
  • Código

Cómo enviar un proyecto: https://create.arduino.cc/projecthub/Arduino_Genuino/how-to-submit-content-on-arduino-project-hub-cf2177

Guideline: https://create.arduino.cc/projecthub/guidelines

Arduino Project Hub está basado en Hackster: https://www.hackster.io/

Arduino Web Editor

Arduino.cc ha sacado un IDE on-line llamado Arduino Web Editor que puede usarse en lugar del IDE que acabamos de ver. Este IDE on-line está dentro del proyecto Arduino Create accesible desde https://create.arduino.cc/ y incluye varios apartados.

Para usar este IDE es necesario instalar un plugin y mediante este wizard online es posible instalarlo: https://create.arduino.cc/getting-started/plugin

También es importante señalar que es necesario crearse una cuenta de arduino.cc para poder usar este IDE on-line.

Getting started con Arduino Web Editor: https://create.arduino.cc/projecthub/Arduino_Genuino/getting-started-with-the-arduino-web-editor-4b3e4a

Arduino Web editor no solo permite publicar el código hecho sino también genera un fichero de documentación y pueden subirse imágenes y esquemas de montaje.

Sigfox Bike Tracking: https://www.hackster.io/aprendiendoarduino/bike-tracking-system-with-dead-man-alert-22da0b

Instructables

Instructables es la web más usada para publicar cualquier tutorial, paso a paso o proyecto que hagamos y no solo de Arduino, sino de cualquier otra cosa, desde una tarta o un disfraz hasta el montaje de una red inalámbrica para IoT.

Web: https://www.instructables.com/

Instructables Arduino: https://www.instructables.com/howto/Arduino/

Instructables Electrónica: https://www.instructables.com/classes/tagged/electronics/

Instructables mBlock: https://www.instructables.com/id/mBlock/

Tutorial de uso de Instructables: https://www.instructables.com/about/create.jsp

Halloween candy Counter: https://www.instructables.com/id/Halloween-Candy-Counter/

Tinkercad

Tinkercad es un software gratuito online creado por la empresa Autodesk, una de las empresas punteras en el software de diseño 3D.

Tinkercad: https://www.tinkercad.com/

Tinkercad ofrece:

  • Aplicación de diseño e impresión 3D
  • Simulador de circuitos, incluido Arduino
  • Diseños 3D interactivos con electrónica:
  • Publicar nuestro proyectos
  • Ver otros proyectos y clonarlos: https://www.tinkercad.com/things/v2#/things

Tinkercad ciircuitos https://www.tinkercad.com/circuits

Y más…

Github

GitHub es una forja (plataforma de desarrollo colaborativo) para alojar proyectos utilizando el sistema de control de versiones Git. Se utiliza principalmente para la creación de código fuente de programas de computadora.

Web: https://github.com/

Características

  • Wiki para cada proyecto.
  • Página web para cada proyecto​
  • Gráfico para ver cómo los desarrolladores trabajan en sus repositorios y bifurcaciones del proyecto.
  • Funcionalidades como si se tratase de una red social, por ejemplo, seguidores.
  • Herramienta para trabajo colaborativo entre programadores.
  • Gestor de proyectos de estilo Kanban.

Github puede ser una excelente herramienta de documentación, pero es más compleja de usar y solo es adecuada para usuarios avanzados.

Los documentos con formato se escriben en Markdown https://es.wikipedia.org/wiki/Markdown

Anuncios

Control de Versiones

Se llama control de versiones a la gestión de los diversos cambios que se realizan sobre los elementos de algún producto o una configuración del mismo. Una versión, revisión o edición de un producto, es el estado en el que se encuentra el mismo en un momento dado de su desarrollo o modificación.

Aunque un sistema de control de versiones puede realizarse de forma manual, es muy aconsejable disponer de herramientas que faciliten esta gestión dando lugar a los llamados sistemas de control de versiones o VCS (del inglés Version Control System). Estos sistemas facilitan la administración de las distintas versiones de cada producto desarrollado, así como las posibles especializaciones realizadas (por ejemplo, para algún cliente específico).

Ejemplos de este tipo de herramientas son entre otros: CVS, Subversion, SourceSafe, ClearCase, Darcs, Bazaar, Plastic SCM, Git, SCCS, Mercurial, Perforce, Fossil SCM, Team Foundation Server.

El control de versiones es un sistema que registra los cambios realizados sobre un archivo o conjunto de archivos a lo largo del tiempo, de modo que puedas recuperar versiones específicas más adelante.

Los sistemas de control de versiones distribuidos (Distributed Version Control Systems o DVCSs en inglés). En un DVCS (como Git, Mercurial, Bazaar o Darcs), los clientes no sólo descargan la última instantánea de los archivos: replican completamente el repositorio. Así, si un servidor muere, y estos sistemas estaban colaborando a través de él, cualquiera de los repositorios de los clientes puede copiarse en el servidor para restaurarlo. Cada vez que se descarga una instantánea, en realidad se hace una copia de seguridad completa de todos los datos

Más información: https://es.wikipedia.org/wiki/Control_de_versiones

Qué es es control de versiones y porqué debería ser importante: https://git-scm.com/book/es/v1/Empezando-Acerca-del-control-de-versiones

Programas de control de versiones: https://es.wikipedia.org/wiki/Programas_para_control_de_versiones

Porqué git es el sistema de control de versiones más popular: https://hipertextual.com/archivo/2014/05/git-sistema-control-versiones/

Que es git y github

Git (pronunciado “guit”) es un software de control de versiones diseñado por Linus Torvalds, pensando en la eficiencia y la confiabilidad del mantenimiento de versiones de aplicaciones cuando éstas tienen un gran número de archivos de código fuente.

Git es uno de los sistemas de control de versiones más populares entre los desarrolladores. Y parte culpa de su popularidad la tiene GitHub, un excelente servicio de alojamiento de repositorios de software con este sistema, que lejos de quedarse en esta funcionalidad, ofrece hoy en día un conjunto de características muy útiles para el trabajo en equipo.

Más información: https://es.wikipedia.org/wiki/Git

Cuando buscas en internet cualquier cosa sobre programación, software libre o Arduino es muy probable que acabemos en la página de https://github.com/ donde podemos acceder al código fuente.

Al trabajar Arduino es importante que conozcamos que es github y conocer un poco qué es y cómo hacer ciertas operaciones sencillas con esta web. Para conseguir software y ver el código, no es necesario crearse una cuenta, sólo es necesario cuando vamos a subir nuestro propio código.

GitHub es una plataforma de desarrollo colaborativo para alojar proyectos utilizando el sistema de control de versiones Git. El código se almacena de forma pública, aunque también se puede hacer de forma privada, creando una cuenta de pago.

Github es el servicio elegido por proyectos de software libre como jQuery, reddit, Sparkle, curl, Ruby on Rails, node.js, ClickToFlash, Erlang/OTP, CakePHP, Redis, y otros muchos. Además, algunas de las grandes empresas de Internet, como Facebook, alojan ahí sus desarrollos públicos, tales como el SDK, librerías, ejemplos, etc. También Arduino https://github.com/arduino

GitHub aloja tu repositorio de código y te brinda herramientas muy útiles para el trabajo en equipo, dentro de un proyecto. Además de eso, puedes contribuir a mejorar el software de los demás. Para poder alcanzar esta meta, GitHub provee de funcionalidades para hacer un fork y solicitar pulls.

Realizar un fork es simplemente clonar un repositorio ajeno (genera una copia en tu cuenta), para eliminar algún bug, modificar cosas de él o hacer tu propia versión partiendo de un software libre. Una vez realizadas las modificaciones puedes enviar un pull request al dueño del proyecto. Éste podrá analizar los cambios que has realizado fácilmente, y si considera interesante tu contribución, adjuntarlo con el repositorio original.

Guía de 10 minutos para empezar con github: https://guides.github.com/activities/hello-world/

En github podemos encontrar el código fuente de software libre que usamos a diario como el servidor web apache: https://github.com/apache/httpd y por supuesto el del IDE de Arduino https://github.com/arduino/Arduino

Y también grandes compañías como Google o Microsoft publican parte de su código en github: https://github.com/google y https://github.com/Microsoft

Otro ejemplo para el que usaremos github con Arduino es para conseguir las librerías de Arduino que nos sirven para manejar algunos dispositivos o nos facilitan la programación. Los distribuidores de hardware como https://www.sparkfun.com/ tienen su repositorio https://github.com/sparkfun donde podemos descargar las librerías para manejar el hardware que les compramos.

Más información de github:

Instalación de SourceTree

Git se usa mediante comandos, pero para facilitar su uso usaremos una herramienta llamada SourceTree y que podremos encontrar en https://www.sourcetreeapp.com/

Para ello debemos descargar la aplicación y en el proceso de instalación cuando se solicite no olvidar instalar la versión propia de git. No instalar svn (subversion). Opcionalmente conectar ninguna cuenta de github, pero no es necesario..

Para instalar SourceTree es necesario tener una cuenta en Atlassian o crearla.

Tutorial de instalación de SourceTree: https://confluence.atlassian.com/get-started-with-sourcetree/install-sourcetree-847359094.html

Para poder seguir con las prácticas crearse una cuenta en github y mandar un correo a aprendiendoarduino@gmail.com con el nombre de la cuenta para añadirlo a la organización: https://github.com/curso-programacion-arduino

Get started con sourcetree https://confluence.atlassian.com/get-started-with-sourcetree/get-started-with-sourcetree-847359026.html

Entender el interfaz de Sourcetree: https://confluence.atlassian.com/get-started-with-sourcetree/understand-the-interface-847359069.html

Hello World github

Para empezar con github hagamos el hello world: https://guides.github.com/activities/hello-world/

Hagamos los siguientes pasos cada uno con su cuenta de github:

  • Paso 1: Crear un repositorio
  • Paso 2: Crear una branch/rama
  • Paso 3: Hacer cambios y hacer commit
  • Paso 4: Hacer un Pull Request
  • Paso 5: Hacer un Merge del Pull Request

Todo esto que hemos hecho en la web de github, son operaciones que se pueden hacer con git por comando desde el ordenador o con una herramienta gráfica con SourceTree

Clonar un Repositorio

Clonar un repositorio, significa hacer una copia exacta en nuestro ordenador de un repositorio que hay en un servidor. Un repositorio, depósito o archivo es un sitio centralizado donde se almacena y mantiene información digital, habitualmente bases de datos o archivos informáticos.

Para clonar el repositorio con SourceTree debemos seguir estos pasos:

  • Click en el botón “Clone/New”
  • Click en “Clone repository”
  • En source URL poner la url de nuestro repositorio que lo encontramos en:

  • En Destination Path poner la ruta donde clonarlo. Podemos usar la ruta configurada en las propiedades de Arduino que por defecto es C:\Users\nombre_usuario\Documentos\Arduino\Curso_Programacion
  • En Name poner el nombre del Repositorio.
  • Y procedemos a clonar el repositorio.

Tutoriales de como clonar un repositorio:

Crear un repositorio local: https://confluence.atlassian.com/get-started-with-sourcetree/create-a-local-repository-847359103.html

Ejercicio: hacer con SourceTree lo mismo que se ha hecho con el Hello World en gitgub

  • Paso 1: Clonar el repositorio hello world que hemos hecho en nuestra cuenta de github. Ver como tenemos todos los pasos hechos en la web en local.
  • Paso 2: Crear una branch/rama nueva llamada “dev” en SourceTree
  • Paso 3: Hacer un cambio en el fichero readme.md poniendo nuestro nombre, hacer commit en SourceTree y hacer push de esos cambios al servidor.
  • Paso 5: Hacer un Merge de la nueva rama.

Trabajar Usando git

Trabajar usando git: https://confluence.atlassian.com/get-started-with-sourcetree/work-using-git-847359053.html

Operaciones básicas git:

Un pull request es una petición que el propietario de un fork de un repositorio hace al propietario del repositorio original para que este último incorpore los commits que están en el fork. Pull request es el corazón de la colaboración donde podemos hacer una modificación y proponerla al dueño

NOTA: la opción fetch es similar a pull, pero no copia los datos en local, sino que solo consulta en qué estado se encuentra nuestra copia local respecto al servidor. Es recomendable hacerlo antes del pull para ver en qué punto nos encontramos.

Más información:

Ejercicio: clonar el repositorio de la librería timer en nuestro ordenador en la carpeta librerías.

Organizaciones en github

Además de las cuentas de usuario, GitHub tiene Organizaciones. Al igual que las cuentas de usuario, las cuentas de organización tienen un espacio donde se guardarán los proyectos, pero en otras cosas son diferentes. Estas cuentas representan un grupo de gente que comparte la propiedad de los proyectos, y además se pueden gestionar estos miembros en subgrupos. Normalmente, estas cuentas se usan en equipos de desarrollo de código abierto.

Para el curso vamos a usar la organización https://github.com/curso-programacion-arduino donde todos los alumnos deben ser miembros de ella.

Las organizaciones se asocian con individuos mediante los equipos, que son simplemente agrupaciones de cuentas de usuario y repositorios dentro de la organización, y qué accesos tienen esas personas sobre cada repositorio.

Más información: https://git-scm.com/book/es/v2/GitHub-Gesti%C3%B3n-de-una-organizaci%C3%B3n

Uso de GIT en el curso

Durante el curso vamos a usar el sistema de control de versiones git y la plataforma de github para publicar el código que realicemos en el curso, ver las soluciones a los ejercicios y colaborar entre todos para resolver las prácticas propuestas.

Requisitos para realizar las prácticas:

Todos los ejercicios se subirán a la organización de github: https://github.com/curso-programacion-arduino y cada ejercicio tendrá su repositorio correspondiente con el formato EjercicioXX. La url a clonar es: “https://github.com/curso-programacion-arduino/EjercicioXX.git

Para hacer cualquiera de los ejercicios, el primer paso es clonar el repositorio del ejercicio y guardarlo en la ruta C:\Users\ThinkTIC\Documentos\Arduino\EjercicioXX, así podrán localizarse rápidamente en el IDE de Arduino. Dentro de este directorio el alumno creará el sketch con su solución al problema con el nombre Ejercicio_XX_NombreAlumno

Una vez hecho el ejercicio hacer un commit (no olvidar pasar a stage los fichero) y se publicará en github en la organización https://github.com/curso-programacion-arduino

Pasos:

  • Clonar el repositorio en el ordenador
  • Hacer el ejercicio con el nombre  EjercicioXX-Nombre. Recordar que se debe subir el fichero EjercicioXX-Nombre.ino dentro de una carpeta llamada EjercicioXX-Nombre
  • Hacer commit indicando en el commit el nombre del alumno.

Luego todos los alumnos podrán ver las soluciones propuestas por cada uno y comprobaremos que para un mismo problema hay infinitas soluciones. También el profesor pondrá su solución (no tiene porque ser la mejor) y hacer correcciones a los códigos propuestos por los alumnos.

NOTA: los ejercicios del repositorio https://github.com/jecrespo/aprendiendoarduino-Curso_Programacion_Arduino son las soluciones a los ejercicios, pero lo que subamos a la organización de github: https://github.com/curso-programacion-arduino son las prácticas que hará cada alumno y su solución.

Práctica con git

Ejercicio: Usando SourceTree hacer las siguientes tareas

  • Dentro del directorio clonado crear un sketch de Arduino que parpadee los cuatro leds a la vez del montaje de prácticas y llamarlo EjercicioXX-Nombre (poniendo vuestro nombre). Recordar que se debe subir el fichero EjercicioXX-Nombre.ino dentro de una carpeta llamada EjercicioXX-Nombre. ¡Importante! aseguraros de que nadie pone el mismo nombre sino puede haber conflictos.
  • Hacer un commit y un push
  • Hacer un pull para sincronizar el repositorio con las soluciones de los compañeros. ¡Atención!, es posible que tengamos que hacer un pull para sincronizar el directorio antes de hacer el push (el commit siempre lo hace) porque se han subido nuevas actualizaciones al servidor antes de la nuestra. Para resolverlo hacer fetch, ver lo que hay en el servidor, luego pull para sincronizar y finalmente push para subir mis cambios.
  • Comprobar que tengo en mi ordenador el código del resto de compañeros.
  • Comprobar que puedo moverme entre los diferentes commits hechos.

Instalación Prácticas de Programación

Una vez instalado el el IDE, configurado y conocido como es el entorno, podemos instalar las prácticas que haremos en el curso y verlas en nuestro entorno de trabajo para acceder a ellas más rápidamente.

Para evitar problemas, con instalaciones anteriores en los ordenadores del curso, vamos a limpiar el entorno de Arduino y dejarlo vacío, para ello simplemente borrar todo el contenido de la carpeta C:\Users\ThinkTIC\Documentos\Arduino. De esta forma estamos borrando las librerías y sketches anteriores dejando el entorno de programación vacío y solo se mantienen las preferencias del IDE.

Todas las prácticas del curso se encuentran en: https://github.com/jecrespo/aprendiendoarduino-Curso_Programacion_Arduino

¿Que es github? https://es.wikipedia.org/wiki/GitHub

Con el fin de usar las prácticas durante el curso y tenerlas disponibles en cualquier momento para cargar en Arduino o simplemente consultar el código, descargar las prácticas desde el enlace https://github.com/jecrespo/aprendiendoarduino-Curso_Programacion_Arduino/archive/master.zip

También es posible hacerlo entrando en la página https://github.com/jecrespo/aprendiendoarduino-Curso_Programacion_Arduino:

Pulsar en “Clone or download” y descargar pinchando en “Download ZIP”:

Otra opción, que es la que vamos a usar durante este curso es usar git para clonar el repositorio en nuestro ordenador y actualizar las prácticas, así como colaborar con el repositorio.

Git se usa mediante comandos, pero para facilitar su uso usaremos una herramienta llamada SourceTree y que podremos encontrar en https://www.sourcetreeapp.com/

Para ello debemos descargar la aplicación y en el proceso de instalación cuando se solicite instalar la versión propia de git. No instalar svn (subversion) ni conectar ninguna cuenta de github o bitbucket.

Para instalar SourceTree es necesario tener una cuenta en Atlassian o crearla.

Tutorial de instalación: https://confluence.atlassian.com/get-started-with-sourcetree/install-sourcetree-847359094.html

Una vez instalado SourceTree procedemos a clonar el repositorio del curso https://github.com/jecrespo/aprendiendoarduino-Curso_Programacion_Arduino y la ruta donde lo vamos a hacer, es en la ruta donde hemos configurado la “Localización de proyecto” en las preferencias del IDE.

Para clonar el repositorio con SourceTree debemos seguir estos pasos:

  • En Destination Path poner la ruta configurada en las propiedades de Arduino que por defecto es C:\Users\nombre_usuario\Documentos\Arduino\Curso_Programacion
  • En Name poner el nombre del Repositorio, por ejemplo “Curso Programación Arduino”
  • Y procedemos a clonar el repositorio.

Una vez clonado el contenido en la carpeta de proyectos que por defecto es C:\Users\nombre_usuario\Documentos\Arduino, vamos a poder ver todas las prácticas y acceder a ellas desde el IDE de Arduino en el menú Archivo → Proyecto → Curso_Programacion.

NOTA: En caso de hacer esta operación con el IDE de Arduino abierto, deberemos reiniciar el IDE para poder ver las prácticas dentro de los proyectos.

Cuando aparezcan nuevas prácticas, ya no será necesario volver a descargar el zip sino que haciendo “pull” sincronizamos nuestro repositorio con el que está en github.

Más información sobre cómo clonar y actualizar un repositorio con sourcetree

Descarga e Instalación de Prácticas

Una vez instalado el el IDE y comprendido como está organizado y su configuración podemos instalar las prácticas que veremos en el curso y verlas en nuestro entorno de trabajo para acceder a ellas más rápidamente.

Todas las prácticas del curso y muchas más se encuentran en https://github.com/jecrespo/Aprendiendo-Arduino

Para usar las prácticas durante el curso y tenerlas disponibles en cualquier momento para cargar en Arduino o simplemente consultar el código, descargar las prácticas desde el enlace https://github.com/jecrespo/Aprendiendo-Arduino/archive/master.zip y descomprimir el archivo en el escritorio o cualquier otra carpeta.

También es posible hacerlo entrando en la página https://github.com/jecrespo/Aprendiendo-Arduino donde se encuentra todo el código relacionado con el curso:

github

Pulsar en “Clone or download”  y descargar pinchando en “Download ZIP”:

github2

Una vez descargado el fichero .zip debemos descomprimir el contenido en la carpeta donde hemos configurado la “Localización de proyecto” en las preferencias del IDE.

Una vez descomprimido el contenido en la carpeta de proyectos que por defecto es C:\Users\nombre_usuario\Documentos\Arduino, vamos a poder ver todas las prácticas y acceder a ellas desde el IDE de Arduino en el menú Archivo → Proyecto → Aprendiendo-Arduino.

acceso prácticas

NOTA: En caso de hacer esta operación con el IDE de Arduino abierto, deberemos reiniciar el IDE para poder ver las prácticas dentro de los proyectos.

Que es git y github

Cuando buscas en internet cualquier cosa sobre programación, software libre o Arduino es muy probable que acabemos en la página de https://github.com/ donde podemos acceder al código fuente.

Cuando trabajamos con Arduino es importante que conozcamos que es github y conocer un poco qué es y cómo hacer ciertas operaciones sencillas con esta web. Para conseguir software y ver el código, no es necesario crearse una cuenta, sólo es necesario cuando vamos a subir nuestro propio código.

GitHub es una plataforma de desarrollo colaborativo para alojar proyectos utilizando el sistema de control de versiones Git. El código se almacena de forma pública, aunque también se puede hacer de forma privada, creando una cuenta de pago.

Git es un software de control de versiones diseñado por Linus Torvalds, pensando en la eficiencia y la confiabilidad del mantenimiento de versiones de aplicaciones cuando éstas tienen un gran número de archivos de código fuente.

Git es uno de los sistemas de control de versiones más populares entre los desarrolladores. Y parte culpa de su popularidad la tiene GitHub, un excelente servicio de alojamiento de repositorios de software con este sistema, que lejos de quedarse en esta funcionalidad, ofrece hoy en día un conjunto de características muy útiles para el trabajo en equipo.

Github es el servicio elegido por proyectos de software libre como jQuery, reddit, Sparkle, curl, Ruby on Rails, node.js, ClickToFlash, Erlang/OTP, CakePHP, Redis, y otros muchos. Además, algunas de las grandes empresas de Internet, como Facebook, alojan ahí sus desarrollos públicos, tales como el SDK, librerías, ejemplos, etc.

GitHub aloja tu repositorio de código y te brinda herramientas muy útiles para el trabajo en equipo, dentro de un proyecto. Además de eso, puedes contribuir a mejorar el software de los demás. Para poder alcanzar esta meta, GitHub provee de funcionalidades para hacer un fork y solicitar pulls.

Realizar un fork es simplemente clonar un repositorio ajeno (genera una copia en tu cuenta), para eliminar algún bug, modificar cosas de él o hacer tu propia versión partiendo un software libre. Una vez realizadas tus modificaciones puedes enviar un pull al dueño del proyecto. Éste podrá analizar los cambios que has realizado fácilmente, y si considera interesante tu contribución, adjuntarlo con el repositorio original.

En github podemos encontrar el código fuente original del ordenador de guía del módulo lunar del apollo 11: https://github.com/chrislgarry/Apollo-11

También podemos encontrar el código fuente de software libre que usamos a diario como el servidor web apache: https://github.com/apache/httpd y por supuesto el del IDE de Arduino https://github.com/arduino/Arduino

Y también grandes compañías como Google o Microsoft publican parte de su código en github: https://github.com/google y https://github.com/Microsoft

Otro ejemplo para el que usaremos github con Arduino es para conseguir las librerías de Arduino que nos sirven para manejar algunos dispositivos o nos facilitan la programación. Los distribuidores de hardware como https://www.sparkfun.com/ tienen su repositorio https://github.com/sparkfun donde podemos descargar las librerías para manejar el hardware que les compramos.

Más información de github en:

Más información de git: