Indice dei Contenuti
Introduzione.
Terzo articolo introduttivo sull’ Internet of Things, scritto con la collaborazione di Piero Sbressa. Terminata la procedura di installazione di Windows 10 IoT Core che trovate a questo link, proveremo ora a creare un applicazione in modo far lampeggiare un Led, precisando però che normalmente far accendere o lampeggiare un led non e considerato IoT, ma in questo caso, serve per dare un introduzione e un idea su come sviluppare future applicazioni o prototipi con Raspberry Pi2 con Visual Studio 2015.
Circuito elettronico.
Il materiale che ci serve lo trovate nella seguente immagine:
- 1 LED del colore che volete (Rosso, verde o giallo)
- 1 Resistenza a 220 Ohm.
- 2 cavi connettori
- 1 Breadboard
Il collegamento finale lo vedete nelle seguenti foto:
Qui di seguito trovate lo schema elettronico del circuito. Premetto che per creare un circuito o disegnarlo, sono necessari per mia esperienza personale, oltre un software dedicato, delle basi sulle parti hardware e basi di elettronica, diversamente il mio consiglio e dedicarsi allo sviluppo del codice e lasciare a terzi i compiti precedenti.
Dall’immagine precedente, notiamo che abbiamo due cavi, uno di colore nero e uno rosso. Il cavo di colore nero che rappresenta lo zero volt lo colleghiamo sul pin GPIO5 corrispondente al pin 29 che troviamo sulla GPIO della scheda Raspberry Pi2. Il cavo rosso sul pin 3.3V PWR corrispondente al pin 1. Di seguito la piedinatura del connettore GPIO così da agevolarci per il collegamento.
Cosa importante, il Diodo Led per funzionare, deve essere collegato in maniera corretta, ossia il katodo (lo si riconosce perché e il piedino più corto) va collegato sullo zero volt, l’anodo ossia l’altro piedino sul positivo, che in questo caso sarà dato dal pin 3.3V PWR. Un errato cablaggio non permetterà al Diodo led di funzionare , è potrebbe danneggiare il componente, la resistenza è importante perché generalmente un Diodo Led funziona ad una tensione di circa 3,3v dc, in questo caso la resistenza fa si che vi sia una caduta di tensione necessaria e fornire così la tensione corretta.
Impostazione del pc in modalità sviluppatore.
Una cosa che va eseguita prima di mettersi a sviluppare codice e impostare la modalità “sviluppatore” del nostro pc. La procedura e di per se semplice. Puntiamo il mouse sull’icona delle notifiche come mostrato in figura.
Alla successiva finestra di dialogo, selezionare “Tutte le impostazioni”.
Alla schermata seguente andiamo a selezionare il comando “Per sviluppatori”, e andiamo a selezionare la voca “Modalità sviluppatore.
Apparirà una finestra di dialogo dove dobbiamo confermare mediante tasto “Si” l’attivazione di tale modalità.
Ora siamo pronti per creare il nostro primo progetto IoT.
Creazione del progetto.
Prima di iniziare con lo sviluppo, dobbiamo ancora scaricare ed installare la libreria Windows IoT Core Project Templates che trovate a questo link. In questa libreria troverete tutto il necessario per lo sviluppo su Raspberry Pi2, che vedremo in seguito nel corso dell’articolo. Apriamo ora Visual Studio, e creiamo un nuovo progetto Universal Windows App, in c#.
Dobbiamo a questo punto aggiungere una Reference all’ sdk Windows IoT Exstension for the UWP, come nella figura seguente.
Aggiungiamo ora nella Grid dello Xaml il seguente codice:
<StackPanel HorizontalAlignment=”Center” VerticalAlignment=”Center”>
<Ellipse x:Name=”LED” Fill=”LightGray” Stroke=”White” Width=”100″ Height=”100″ Margin=”10″/>
<TextBlock x:Name=”GpioStatus” Text=”Waiting to initialize GPIO…” Margin=”10,50,10,10″ TextAlignment=”Center” FontSize=”26.667″ />
<Button Name=”AccendeSpegneLEDButton” Content=”Accendi LED” HorizontalAlignment=”Center” Click=”AccendeSpegneLEDButton_Click”/>
</StackPanel>
Mentre nel code-behind mettiamo il seguente codice:
// Copyright (c) Microsoft. All rights reserved.
using System;
using Windows.Devices.Gpio;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Media;
namespace Blinky
{
public sealed partial class MainPage : Page
{
private const int LED_PIN = 5;
private GpioPin pin;
private GpioPinValue pinValue;
private SolidColorBrush yellowBrush = new SolidColorBrush(Windows.UI.Colors.Yellow);
private SolidColorBrush grayBrush = new SolidColorBrush(Windows.UI.Colors.LightGray);
public MainPage()
{
InitializeComponent();
InitGPIO();
}
private void InitGPIO()
{
var gpio = GpioController.GetDefault();
// Show an error if there is no GPIO controller
if (gpio == null)
{
pin = null;
GpioStatus.Text = “Non c’è il GPIO controller su questo device.”;
return;
}
pin = gpio.OpenPin(LED_PIN);
pinValue = GpioPinValue.High;
pin.Write(pinValue);
pin.SetDriveMode(GpioPinDriveMode.Output);
GpioStatus.Text = “GPIO pin correttamente inizializzati.”;
}
private void AccendeSpegneLEDButton_Click(object sender, RoutedEventArgs e)
{
if (pinValue == GpioPinValue.High)
{
pinValue = GpioPinValue.Low;
pin.Write(pinValue);
LED.Fill = yellowBrush;
AccendeSpegneLEDButton.Content = “Spegni LED”;
}
else
{
pinValue = GpioPinValue.High;
pin.Write(pinValue);
LED.Fill = grayBrush;
AccendeSpegneLEDButton.Content = “Accendi LED”;
}
}
}
}
Terminata la parte di codice, prima di eseguire il test dell’applicazione, ci sono un paio di cose da vedere. La prima essendo che stiamo sviluppando su Raspberry Pi2, e quella di impostare la compilazione in modalità ARM, lo si può eseguire dal menù a tendina come presente in figura.
In riferimento all’immagine precedente, noterete che è attivata l’esecuzione come “Computer remoto”. Questo perché vogliamo eseguire l’applicazione sulla scheda Raspberry Pi2. Selezionate questa modalità, e alla schermata seguente andiamo a selezionate il device e l’indirizzo ip della Raspberry Pi2. deselezionando l’autenticazione, in alternativa è possibile modificare queste impostazioni, selezionando il progetto, tasto destro del mouse, selezioniamo il comando “Proprietà” e subito dopo “Debug”, saremo condotti nella seguente schermata.
Esecuzione dell’applicazione.
Possiamo ora procedere con l’esecuzione della nostra prima applicazione. Tasto F5 e se abbiamo fatto tutto correttamente il nostro LED si accenderà dopo aver cliccato sul pulsante, come possiamo vedere dalle seguenti immagini.
Conclusione.
In questo articolo, abbiamo creato la nostra prima applicazione con Raspberry Pi2 e Visual Studio 2015, partendo dalla progettazione, realizzazione del circuito elettronico, per terminare con la programmazione e scrittura del codice per la gestione del led. Nei successivi articoli, cercheremo di creare altri progetti di prova, lo scopo di questi mini articoli è quello di dare un introduzione su come progettare e realizzare un proprio progetto e perché no, riuscire poi a farci business. Articolo scritto da Piero Sbressa (www.crystalweb.it) e Carmelo La Monica, Microsoft Contributor (http://community.visual-basic.it/carmelolamonica/default.aspx)