VITVIC – IOT Core LABS – #AYNIT

HacksterIO_Banner1

::Hack the Lab:: 08/04/16 & 22/04/16

Objectiu Fabricar un prototip de producte funcional, com a resultant de la aportació del coneixement i expertesa de tots els participants en el desenvolupament del mateix.

Dies i horaris : Cada Divendres entre 18h i 20h fins aconseguir l’objectiu.

Lloc :

VIC INTEGRACIO TECNOLOGICA (VITVIC) Carrer de la Llotja s/n. Recinte firal El Sucre, VIC, 08500. Barcelona

Aprendre o Ensenyar ? Dissenyar o Fabricar ? Fem Projecte o Producte ?

La resposta es : tothom participa aportant les seves habilitats, compartint la seva experiència, o simplement participant en la construcció de qualsevol andròmina. Per tant no cal disposar de grans coneixements tècnics, però per el contrari es imprescindible ser un apassionat per la tecnologia.

Engegarem el Divendres 8 D’abril, fent una introducció entorn a les activitats que es programaran dins el nostre Espai Hackster, tot donant una visió general y proposant formules possibles que ens permetin organitzar els grups i espais de treball.

Dedicarem el primer divendres dia 8 a consensuar, posar en comú i aclarir qualsevol aspecte relacionat amb les propostes inicials per crear el primer grup Hackster, tan mateix aprofitarem per definir els format de les propostes de projectes que seran exposades en la següent sessió del 22 de abril.

La Seleccio?

La selecció de les propostes serà escollida per votació directa dels presents.

Aprofitarem la sessió del dia 22, per fer una introducció del material disponible per fer els LAB’s i realitzar el nostre primer HackLab.

Qui en serà el propietari?

De la comunitat ‘Hackster’, entenen que documentarem i lliurarem tot el material per construir el nostre projecte en repositoris de codi obert, així com en nodrirem dels mateixos per construir ràpidament els nostres hacks. Dit això qualsevol idea sorgida de la interacció del grup sobre les possibilitats del que siguem capaços de construir esta oberta a la consideració i criteri del mateix.

Totes les propostes que aconseguim completar les compartirem amb la comunitat de ‘maker’ en directe per ‘streaming’.

Dinàmica.

Un cop seleccionats les temàtiques dels Labs i tinguem escollit un dels projectes presentats el dia 22, conformarem els grups i fixarem el calendari per començar a treballar. Per tant dedicarem una part de sessió a explicar de quines eines organitzatives disposem i com ens repartirem les diverses feines

Horaris.

Si vols participar nomes demanem que siguis estricte, per fer-ho divertit requereix que no perdem el poc temps del que disposarem. Si les condicions son favorables i la cosa s’engresca, proposarem disposar d’un Hack-Night per obrir l’espai de tot un dissabte i poder avançar ràpidament amb el projecte seleccionat.

La gent que hi haurà?

Hacksters apassionats per la tecnologia i la fabricació de bens per consum propi, desenvolupadors, dissenyadors, entusiastes… tothom i te cabuda.

El concepte principal es col·laborar entre tots per aconseguir construir el que hem escollit, no caldrà participar presencialment si no tens massa de disponibilitat, pots aportar i fer-ho remotament sempre i quan estiguis ben coordinat amb el grup.

Què necessitaré?

Un portàtil amb el programari necessari per desenvolupar aplicacions universals (Ja et concretarem que en la primera sessió) a demes de tornavisos i qualsevol tipo d’eines per dissenyar/fabricar i muntar coses.

Però no et preocupis totes les preguntes tindran resposta el proper dia 8.

Que tinc de saber per fer una proposta?

Doncs bàsicament cal que et preparis una exposició de la idea (només de 5 minuts) i tinguis en compte que el projecte ha de complir les següents característiques:

  • Que sigui realitzable.
  • Que Sigui factible per treballar en equip.
  • Que es pugui realitzar en màxim 8 setmanes.
  • Que sigui divisible per distribuir entre tots.
  • Que tinguem disponibilitat de material.
  • Que no sigui un invent ja inventat J

Tenim Alguna Referencia?

Hackster.io <-> i nosaltres J : http://www.meetup.com/es-ES/hackster-bcn/

#All You Need Is Ten : jump start #07 – We don’t need DHCP

Uno de los aspectos engorrosos cuando empezamos ha trabajar con pequeños dispositivos que tienen conectividad por cable, es la necesidad de conectarnos a través de un ‘router’ que de forma directa o indirecta nos permita alcanzar a un DHCP que nos asigne la correspondiente IP y/o nos resuelva la misma por nombre.

No es que sea un impedimento grave, no por la distancia… pues siempre podemos optar por la opción sin hilos ‘dongle wifi’, si no porque cuando estamos en ciertos hacks nos gusta tener nuestra Rasp lo mas cerca posible de nuestra estación para poder operar sin obstáculos.

… una cosa tan simple de conseguir y que a menudo se termina con una guerra para hacerse con los routers :-), y todo por la simple pereza de fijar una ip estática a nuestro dispositivo.
IP que nos permitirá unir con un solo cable los dos extremos «sin mas routers, alimentadores, etc.»

Tal y como explicamos en el jump start #6 :
después de iniciar ‘powershell’>Click remote Access ico>
– Introducir las credenciales según la siguiente figura.

Nota : La ejecución tarda unos segundos… no impacientes y espera a que finalice 🙂
AYNIT_P06_F04

Una vez logeados, desde el prompt o bien creando un nuevo script introducir el siguiente comando :

  • netsh interface ip set address «Ethernet» static 192.168.1.192 255.255.255.0 192.168.1.1

si quieres fijar la ip para el adaptador wifi deberás hacerlo según sigue :

  • netsh interface ip set address «Wi-Fi» static 192.168.192 255.255.255.0 192.168.1.1
una vez introducido :
AYNIT_P07_F01

A partir de ahora cada vez que reiniciemos «piñón fijo!» 192.168.1.192

Con esto conseguiremos no depender del DNS y el DHCP, pudiendo conectar nuestro Win10 directamente a nuestro portátil! lo único que necesitaremos es un cable.

toBe Continued.

 

#All You Need Is Ten : jump start #06 – Remote Access from Powershell

Uno de los fuertes de IoT core es el control remoto a través de powershell, con la ventaja de que podemos automatizarnos script’s para las tareas repetitivas con el lujo de disponer de la version ISE.
A titulo de ejemplo empezaremos aplicando el script que nos permitirá conectarnos remotamente a la Rasp que acabamos de configurar.

– Iniciaremos nuestra tarea el la barra de texto de cortana
>Escribiremos>powershell ise>
>Click botón derecho ratón>Ejecutar como administrador>

AYNIT_P06_F01
– copiar las siguientes líneas de script

  • net start WinRM
  • Set-Item WSMan:\localhost\Client\TrustedHosts -Value PepLluis_Box
  • Enter-PsSession -ComputerName peplluis_box -Credential peplluis_box\Administrator

>Click icono Run o pulsar F5>Introducir credenciales>AYNIT_P06_F02

– y… Ya estamos dentro :
AYNIT_P06_F03
después de la primera conexión, podremos acceder directamente desde el icono de acceso remoto según la siguiente figura :
AYNIT_P06_F04

Ya tenemos otro punto de entrada mas 🙂 para gobernar sin limites nuestra Rasp!

#AYNIT LAB01 – Universal Serial Port

Uno de los interfaces nativos de todos los tiempos más utilizados para la comunicación entre dispositivos y microcontroladores ha sido sin duda el puerto serie.

Con este laboratorio podremos ver como el paso de los años no deja en desuso nuestro viejo Serial Port, así que vamos a comprobar que continúa siendo un potente instrumento incluso si hablamos de aplicaciones universales donde el mismo código nos va a funcionar tanto en una raspberry como en nuestro portátil.

sorprendente?

El mismo código, en diferentes plataformas y diferentes electrónicas.

Pues empecemos:

AYNIT_LAB01_F00AYNIT_LAB01_F01 AYNIT_LAB01_F03 AYNIT_LAB01_F02

Tan pronto tengamos todos los Lab’s y Hack’s listos y probados los compartiremos con vosotros en github.

#AYNIT HACK01 – Pwm Car Motion

Continuamos trabajando para el ultimo de Hack de nuestro LAB, la idea es irlo compartiendo con vosotros a medida que vayamos avanzando.

Al terminar sabremos de:
–        Control dispositivo por pulsos con modulación
–        Motores paso a paso
–        Controladores de motores
–        Integración de sensores por ultrasonidos
–        Utilizar servicios de Azure para controlar nuestros vehículos.

Este es nuestro vehículo:

Este nuestro módulo de potencia para controlar el desplazamiento.

Estamos utilizando una sencilla plataforma donde mecanizamos dos motores, el objetivo de la experiencia es afianzar nuestros conocimientos en el control de motores, efectuaremos dos puestas en escena, la primera con servos y la segunda con motores convencionales.

En la segunda etapa, dotaremos a nuestro vehículo de un sensor de ultrasonidos para detectar obstáculos.

Finalmente armaremos un pequeño protocolo de comunicaciones para poderlo gobernar de forma remota nuestro particular cacharro viendo que posibilidades tenemos para monitorizarlo desde Azure.

Controlando motores con : Pulsos Con Modulación (pwm)

El espacio ‘Windows.Devices.Pwm’ contiene todos los objetos necesarios para administrar una señal modulada por pulsos, sin embargo necesitaremos disponer de un ‘provider’ para unir nuestra lógica con el manejo y mapeo del controlador, nos será necesario utilizar la referencia al proyecto : pwmSoftware, que encontraremos guithub.

Nuestro ejercicio inicial será bastante simple y lo encapsularemos en una aplicación universal probándola contra unos pequeños servo motores

Como he dicho vamos a compartir el código que estamos trabajando en grupo, pero que presumiblemente no tendremos disponible hasta después de nuestro segundo lab del 18/03.

Disponemos de cuatro apartados:

1)     Variables
2)     Funciones Inicialización
3)     Inicialización área de entrada / salidas
4)     Funciones de control de los motores

AYNIT_HAK01_F01

Variables
AYNIT_HAK01_F06

Funciones Inicialización

AYNIT_HAK01_F03

AYNIT_HAK01_F04

Inicialización área de entrada / salidas

AYNIT_HAK01_F05

Funciones de control de los motores

AYNIT_HAK01_F02

#All You Need Is Ten : jump start #04 – First task’s, set our own name & password

Cambiar el nombre de equipo y ajustar la nueva clave de acceso

Esta tarea es fácil y obvia 🙂

Por defecto después de configurar nuestro sistema, a diferencia de sus hermanos mayores, IoT Core fija el nombre de equipo a ‘minwinpc’ y el usuario ‘Administrator’ y la Password ‘p@ssw0rd’ como credenciales por defecto al acceder al sistema. En la mayoría de casos no importara y podremos dejar nuestra raspberry abierta para poder trastear todos con ella, sobre todo cuando realizamos laboratorios con varias raspberry’s, pues nos ahorrara un montón de tiempo intentando averiguar que password tiene cada una de ellas.

Sin embargo, cambiar la clave de acceso por defecto es un requerimiento de seguridad cuando queramos proteger nuestra raspberry contra quien quiera hacerse con ella, aunque sea en broma.

Un detalle importante es cambiar el nombre por defecto de la raspberry “minwinpc’ pues será la única vía para conectar con desde los exploradores y nos evitará tener que recordar IP’s.

Disponemos de diversos modos para realizar esta tarea, dos de ellos muy fáciles a través de una UI muy amigable, y un tercero desde línea de comandos con ‘powershell’

1) Windows 10 IoT Core Dashboard
2) Windows Device Porta
3) PowerShell

1 – IoT Core Dashboard

Desde el menú de inicio arranca el IoT Core Dashboard

>Mis Dispositivos>Configurar>

AYNIT_P04_F01

>Cambiar nombre del dispositivo>AYNIT_P04_F02

>Cambiar contraseña del dispositivo>

AYNIT_P04_F03

2 – Windows Device Portal

Abrir el explorador>url=http://minwinpc:8080>
AYNIT_P04_F04>Modificar/Aplicar cambio de nombre y Contraseña>

AYNIT_P04_F05

Después de los cambios el dispositivo necesitara ser reiniciado.

3 – PowerShell

Para cambio de nombre de equipo y password, así como para realizar el resto de operaciones de sistema que nos tenemos disponibles a través del ‘Device Portal’ lo realizaremos desde el ‘prompt’ de powershell. En posteriores entradas os enseñare como conectaros remotamente a vuestra raspberry con poweshell.

De momento lo interesante es conocer los mandatos utilizados para realizar esta tarea:

  • Cambiar la password:
    >net user [NombreUsuario] [NuevaPassword]
  • Obtener o Cambiar el nombre del Equipo :
    >SetComputerName [NuevoNombre].

… Ya puedes pasar a la siguiente tarea… la #5!!

 

#All You Need Is Ten : jump start #03 – Connect & Control your Device

IoT core no dispone de terminal remoto ni del explorador de Windows, la herramienta para controlar, configurar, diagnosticar, desplegar y/o realizar todas las tareas básicas necesarias en cualquier sistema las encontraremos en el Windows Device Portal. Efectivamente se trata de un portal al que nos conectaremos desde nuestro explorador.

Después de la configuración inicial dejamos nuestro Rasp, conectado al router por lo que la resolución de nombres nos debería llevar hasta el.

– Abrir un explorador
>Introducir>http://minwinpc:8080AYNIT_P03_F01
IoT Core nos pedirá nuestra autentificación, en nuestra primera conexión introduciremos las credenciales por defecto
Usuario : Administrator, p@ssw0rd
AYNIT_P03_F02
>Enter>
AYNIT_P03_F03
– Sin hacer caso omiso (recordaremos que debemos cambiarla)
>Aceptar>

Windows Device Portal

AYNIT_P03_F04
En el menú de la izquierda dispones de todos los apartados del sistema.
La barra superior contiene un acceso rápido para:
– Detener el sistema
– Reiniciar
– Obtener ayuda
En realidad la interfaz es lo suficientemente amigable para que en poco tiempo te hagas con el control de tu Core :-), os aconsejo os toméis tranquilamente unos minutos extras para curiosear y poder familiarizaros.

#All You Need Is Ten : jump start #02 – Install IoT Core on device

Configurar un nuevo Dispositivo

Deberemos completar los siguientes pasos:

1) Iniciar Windows 10 IoT Core Dashboard
2) Flash la microSD Card
3) Preparar el primer Boot de la Raspberry
4) Configurar Idioma / WiFi

1 – Iniciar Windows IoT Core Dashboard

AYNIT_P02_F01

– Insertar la microSd Car
>Seleccionar>

AYNIT_P02_F02>Descargar e Instalar>

AYNIT_P02_F03

2 – Flash la microSD Card

– Finalizada la descarga, confirmar que vamos a grabar

AYNIT_P02_F04>Continuar>Solicitud permiso administrador>Si>

AYNIT_P02_F05

AYNIT_P02_F06

3 – Primer boot de la Raspberry

– Insertar la microSD en nuestra Raspberry
– Conectar el cable HDMI (Pantalla/Rasp)
– Conectar cable Ethernet al Router o Enchufar Dongle Wifi
– Conectar un teclado/ratón USB
– Conectar la alimentación al conector MicroUSB

4 – Configurar idioma / WiFi

Al recibir alimentación en el monitor aparecerán los típicos mensajes conforme el sistema se está inicializando por primera vez.

Si hemos conectado la rasp por ethernet el DHCP del router deberá habernos asignado una IP que visualizaremos debajo de la imagen de la tarjeta.

– Al finalizar nos mostrara una pantalla de selección de idioma

AYNIT_P02_F07

– Si dispones de un ‘dongle’ wifi haz Click en Configuracion >Seleccionar wifi de la Lista>Entrar codigo>

En la parte inferior podremos visualizar los dispositivos conectados a nuestros USB’s así como las IP asignadas a cada adaptador.

… Ya puedes pasar a la siguiente tarea!!

 

(*) Algunas tarjetas pueden no ser compatibles con IoT Core, revisa la Lista de compatibles.

#All You Need Is Ten : why jump start

Antecedentes : Vamos a contar sobre Windows 10 IoT Core!!

A día de hoy ya no es necesario intentar convencer a nadie sobre que sistema operativo es mejor ni de que significa lo que son sistemas cooperativos, sin embargo leyendo entre las conversaciones de ingenieros continuo sorprendiéndome cuando de entre las sombras y de forma recurrente aparecen las mismas de siempre … «que si mi noobs tiene…» «que si mi IoT Core también…» «que si yo puedo hacer esto» y … «tu no tienes lo otro», es la eterna rencilla que me recuerda las peleas que teníamos cuando hacíamos diferentes colecciones de cromos en el cole y la pelea era ver cual era mas chula! Jajajaja!

Raspberry con sus mas de diez variedades de sistemas operativos a escoger es uno de sus ejemplos, en mi opinión no se trata de que estoy usando si no de que soy capaz de hacer con ello. He visto autenticas obras de ingeniera, realizadas con materiales de «maker’s» al alcance de cualquiera. Dentro de cada una de las comunidades que comparten conocimiento existen grupos capaces de convertirse en avanzadillas que permiten a cualquier persona sin conocimientos profundos iniciarse rápidamente y aprender a usar una determinada tecnología en pocos días, sin duda esa es una de las paradojas de la tecnología que mas deberia apasionarnos.

Hablamos de nuestro futuro con la irrupción de los Robots y la Robótica, de los modernos sistemas de producción con la  Industria 4 y sin embargo continuamos pasando de puntillas cuando hablamos de los potentes movimientos de «Maker’s» y la nuevas comunidades de «científicos amateurs» que han hecho posible la liberalización del conocimiento y la democratización del saber como, para que grupos afines o personas comunes que por necesidad, afición o «curiosidad científica» consiguen la autosuficiencia de fabricar y/o construir por si mismos bienes para consumo propio.

Aunque esto ultimo para algunos tecnólogos o sectores industriales continuara considerándose «simple bricolaje», tengo la convicción de que en un futuro próximo la convergencia y aplicación de filosofías abiertas en todos los ámbitos del conocimiento significara una vez mas sumar otra pequeña revolución social a la ya larga lista que nos aporta la red. 

Lamentablemente el papel que representamos los que pertenecemos a mi década es muy limitado… y a pesar de que los seniors «de mi generación» os podamos iniciar y ayudaros en la construcción del trampolín, no tengáis ninguna duda que los saltos con pirueta os tocara hacerlos a vosotros 🙂

De la enorme cresta de surgida en los dos últimos años hablando de «IoT»  así como de la inmensa penetración que tiene ya hoy en día en nuestra sociedad, surge la motivación de aportar nuestro humilde punto de entrada a este fantástico mundo por descubrir, concentrándonos en una pequeña porción de todo el pastel que tratara entorno al IoT Core.

Aunque existen literalmente cientos de miles de paginas dedicadas a todos y cada uno de los temas hablados anteriormente (en Ingles), mi propósito es iniciar desde cero una serie de artículos y laboratorios dirigidos a la comunidad hispano parlante, para introducirnos a este apasionante mundo donde los cacharros, la electrónica, la programación y las comunicaciones dan rienda suelta a nuestra imaginación y capacidad de hacer cosas.

#All You Need Is Ten : jump start #01 – get your system ready

Windows 10 IoT Core Lab’s.

Visual Studio es la única plataforma de desarrollo que permitirá a tus aplicaciones rodar en casi cualquier sistema y dispositivo.

A pesar de nuestra amistad con las retrospectivas cuando iniciamos una tanda de Lab’s siempre nos ocurre lo mismo 🙂 los iniciamos a tiempo y en escasas ocasiones terminamos completándolos por falta de ese tiempo 🙁 ya que nos pasamos la mayor parte del dichoso tiempo preparando el entorno. Esta primera entrada es la guía de preparación para tenerlo todo listo antes de empezar y poner a trabajar nuestros hack’s desde el minuto cero!

Necesitaremos:

  1. Windows 10 v10586
  2. Activar el modo programador de Windows 10
  3. Disponer de Visual Studio 2015 Update 1
  4. Instalar el IoT Core DashBoard
  5. Instalar las Plantillas de IoT Core
  6. Verificar que todo está apunto

1 – Tener instalado Windows 10 (Windows 10 compilación 10586 and up)

Verifícalo invocando:

>prompt
>winver
AYNIT_P01_F01

2 – Activar el modo programador en Windows 10 Comprobar que tu sistema está en modo desarrollador. Haz clic en el icono de notificaciones (barra tareas, inferior Derecho «lateral fecha/hora»)

>Todas las configuraciones
>Actualización y Seguridad
>Para Programadores
AYNIT_P01_F02

>Seleccionar Modo Programador

3 – Instalar Visual Studio 2015 Update 1. Con las universal tools y Windows SDK para 10586. Verifica si lo tienes disponible:
>Ayuda
>Acerca de Microsoft Visual Studio.
AYNIT_P01_F03

>Panel de Control
>Programas y Características
AYNIT_P01_F04

En otro caso si no dispones de alguno de ellos puedes instalarlo descargándote el SDK desde:  SDK Windows 10 o bien seleccionándolo desde el instalador:
AYNIT_P01_F05

4 – Instalar el IoT Core DashBoard. Nos permitirá obtener las imágenes correspondientes a las diferentes electrónicas y preparar la SD de sistema para la Raspberry/Minnowboard/DragonBoard, etc.)

Para iniciar la instalación haz clic en: IoT Core Dashboard

5 – Instalar el IoT Core Project Templates. Nos permitirá disponer de las plantillas que utilizaremos en las aplicaciones ‘background’ para la Raspberry, Minnowboard..etc.

Para iniciar la instalación haz clic en: IoT Core Templates

6 – Verificar que todo está apunto.

Finalmente comprobaremos que todo es correcto y que dispones de todo lo necesario deberás iniciar Visual Studio 2015, y crear tu primer proyecto universal :
>Archivo
>Nuevo
>Proyecto
>Plantillas
>Visual C# o VB
>Universal
> Aplicación Vacía (Windows Universal)

Una vez – Creado -> desde el explorador de soluciones

>Propiedades
>Aplicación

AYNIT_P01_F06

Ya estas a punto para empezar? Ahora ya no tienes excusas!