V tem primeru bomo s pomočjo mikrokrmilnika Arduino prebrali digitalni vhod na 2. nožici. Ob pritisku tipke na nožico 2 pripeljemo +5V. Digitalna nožica 2 je preko 10k upora povezana z ozemljitvijo (GND). To nam zagotavlja, da je digitalni vhod stabilen. Brez ozemljitvenega 10k upora bi vhod sicer ves čas preklapljal med 0 in 1 [pullUp & pullDown].
Električna shema vezja je prikazana na naslednji sliki.
Pri realizaciji vezja bomo najprej ustrezno namestili tipko na ploščico za prototipiranje. Postavimo jo nekoliko bolj na levi del ploščice. Pogled od zgoraj je prikazan na naslednji sliki:
Nato zagotovimo ustrezno orientacijo tipke in kontakt. Tipko najprej postavimo na ploščico za prototipiranje tako, da je vodilo na sredini tipke tudi na sredini ploščice kot prikazuje slika:
Nato tipko potisnemo navzdol, da zagotovimo kontakt. Naslednja slika prikazuje tipko, ki je pravilno vstavljena v ploščico za prototipiranje:
Izgled vezave je prikazan na naslednji sliki. Uporabljeni sta 2. nožica kot digitalni vhod iz tipke in 13. nožica kot digitalni izhod za vklop in izklop svetleče diode.
Izgled realiziranega vezja je prikazan na naslednji sliki:
Najprej dodamo 2. nožico kot digitalni vhod:
var board = new firmata.Board("/dev/ttyACM0", function(){
console.log("Povezava na Arduino");
console.log("Aktiviramo Pin 13");
board.pinMode(13, board.MODES.OUTPUT); // pin13 kot izhod
console.log("Omogočimo Pin 2 kot vhod");
board.pinMode(2, board.MODES.INPUT);
});
V globalnem prostoru deklariramo funkcijo za posredovanje sporočil preko vtičnika:
var pošljiVrednostPrekoVtičnika = function(){}; // spr. za pošiljanje sporočil
Dodamo preverjanje, ali je plošča že pripravljena in šele nato izvedemo preostali del kode:
board.on("ready", function(){ ...}
Del kode za "io.sockets.on("connection") , pri tem je uporabljena funkcija pošljiVrednostPrekoVtičnika ->
Branje 2. nožice in posredovanje sporočila klientu (pošljiVrednostPrekoVtičnika):
Na strani klienta dodamo <div> za izpis sporočil iz strežnika:
<div id="divZaIzpis"></div>
Uporabimo "strict" modus, ki nam bo v nadaljevanju omogočil razvoj in uporabo razredov:
<script type="text/javascript">
"use strict"; // za uporabo razredov ("class")
Definiramo spremenljivko za izpis sporočil:
var divZaIzpis = document.getElementById("divZaIzpis");
Funkcija za generiranje besedila med <div> značkami:
function log(sporočilo) {
return "<div>" + sporočilo + "</div>";
}
Ob prejemu sporočila s strani strežnika vsebino sporočila izpišemo na spletni strani klienta v <div>:
socket.on("sporočiloKlientu", function (sporočilo){
divZaIzpis.innerHTML += log(sporočilo); // dodamo sporočilo
});
Izgled uporabniškega vmesnika: