Articoli con tag how-to
Assembler – Input e output carattere
0Piccolo tutorial per Assembly (Masm32) su come fare l’input e l’output di un carattere da tastiera, usando i parametri 1h e 2h dell’interrupt 21h. Lo ricordiamo l’Assembler è un linguaggio di programmazione a basso livello.
; legge un carattere da tastiera e lo stampa a video .model small ; si parte sempre così... .stack 100h ;è opzionale, e alloca 100 blocchetti di memoria. esadecimali. perchè l'h che segue il numero indica il decimale. .code ; indica l'inizio del codice.. in generale.. start: ;etichetta start... mov ah, 1h ;AH è il sottoregistro di AX. parte alta = high. 1h è la funzione dell'interrupt 21h che permette l'input di un carattere con eco. int 21h ; funzione interrupt che richiama servizi generali del DOS. (21h) mov dl, al ; copia al in dl perchè l'interrupt 21h salva il carattere ricevuto in al ; in ah si tengono le funzioni (i parametri per gli interrupt), in al i dati. mov ah, 2h ;mettiamo in ah un altro comando, ovvero 2h che fa l'output a video di un carattere int 21h ;richiamiamo dunque ancora l'interrupt 21h che segue il comando in ah. mov ax, 4c00h ;comando per stoppare l'interrupt. int 21h ;eseguiamo. end start
Fai da te – Tastierino d’accesso elettronico
0
Ricordate il PIC 16F1937? spulciando in rete abbiamo trovato un progettino simpatico che vogliamo presentarsi..
Si tratta di un sistema d’accesso basato su tastierino elettronico, comandato e gestito dal PIC sopra mensionato. Sotto trovate qualche foto ed un video esplicativo. Tutti gli schemi elettronici e i codici di programmazione possono essere scaricati gratuitamente da qui in piena filosofia open source.
Rivediamo insieme i passi per realizzare il progetto.
E’ necessario innanzitutto avere a disposizione una serratura a “linguetta”, ed una porta di legno abbastanza spessa da poter essere scavata all’interno.
La modifica vera e propria sta nel riuscire ad agganciare tramite un filo, la linguetta della serratura ad un servo. Il PIC si occupa poi di pilotare il servo, permettendo l’apertura della porta. Il servo utilizzato è un normale servo per macchine RC.. La tastiera ha un secondo PIC 16F1937 che agisce come un sensore capacitivo per i 10-tasti touch del tastierino elettronico. Il PIC di controllo rimane in stand-by tutto il tempo per risparmiare energia. In questa “sleep mode”, il dispositivo trae 16 micro ampere di energia… pochissimo!
Quando l’utente tira piano la porta, un interruttore meccanico sveglia il PIC controller (con un impulso a RB0/INT) che a sua volta alimenta il touchpad.
Per modificare il codice d’accesso si usa una specificia procedura, si tira la maniglia, si inserisce il codice, si tira la maniglia nuovamente, ma la si tiene in quella posizione per circa 3 secondi fino a quando si sente il bip di conferma. Infine si inserisce il nuovo codice per due volte.
Se proprio vogliamo esagerare infine, è possibile inserire una fotocellula vicino al tastierino numerico, in grado di percepire la luce ed in caso quest’ultima sia assente, permetta di attivare la retroilluminazione del touch-pad.
E’ un piccolo fai da te, economico, elegante e dai mille utilizzi.
Qui in calce è possibile vederlo in azione in video:
Prima lezione di Python ed il suo interprete.
0Python è un linguaggio di programmazione interpretato, conosciuto in tutto il mondo ormai, il suo successo è dovuto alla velocità di esecuzione e la semplicità nella sintassi. Queste caratteristiche lo rendono uno strumento flessibile e potente, ed altrettanto semplice nell’apprendimento. Python è stato realizzato in C. E da esso eredita alcune caratteristiche fondamentali.

Con questo post, inauguriamo una serie di nuovi video tutorial in inglese, dedicati a Python. Sperando che siano di vostro gradimento. Viene mostrato come funziona l’interprete di python, e le prime operazioni matematiche base che è possibile realizzare con esso:
Come proteggere le birre nel vostro frigorifero con la tecnologia RFID
1Questo video mostra come usare la tecnologia RFID (Radio Frequency identification) per restringere l’accesso al vostro frigorifero e tenere al sicuro le vostre birre ![]()
Tramite un apposito TAG RFID con uno specifico codice sarete in grado di accedere soltanto voi al frigo. Guardate il video, dura 30 minuti. E spiega tutto nel dettaglio… poco comprensibile per chi non mastica l’inglese.
Un lettore RFID è reperibile al prezzo di circa 12 euro sullo shop di Watterott, e con altri 2 euro potete ritirare anche 5 tag (3 formato portachiave e 2 sottoforma di scheda). Molto facile da interfacciare con arduino ed inizializzare una comunicazione seriale.
Per intenderci questa tecnologia è la medesima che trovate nei negozi dei centri commerciali. Ogni prodotto ha attaccato un apposito tag che non appena si avvicina ai lettori posti all’entrata fa scattare un allarme. Questo evita che malintenzionati possano rubare prodotti nascondendoli in borse etc..
Guida: effettuiamo un Hackintosh!
2Guida: effettuiamo un hackintosh
Installazione di Mac OS X Leopard:
Installazione di Mac OS X Snow Leopard (metodo Hazard):
Controllare una porta seriale con PHP
12Quando si pensa di quello che un web server è in grado di fare solitamente si pensa alle applicazioni più comuni e principali: pubblicazione di pagine web, database, hosting, autenticazione degli utenti, ecc.. Queste sono tutte grandiose applicazioni pratiche che si possono fare con un web server, ma sono certamente solo la punta dell’iceberg. Bastano pochi minuti per guardarsi intorno al numero di dispositivi che utilizzano i server web per altri scopi: router e modem a banda larga.. pannelli di controllo; sistemi di gestione telefonica, sistemi di posta vocale, domotica.. tutte funzioni dotate di interfacce web; Anche il TiVOs e DVR (Digital Video Recorder) programmato da internet iniziano a prendere piede ed aumentare il divertimento!
Tutto questo solleva una questione importante per i più “avventurosi, fuori dagli schemi”: c’è qualcosa di più che possiamo fare con le nostre competenze web oltre la semplice creazione di siti?
In questo articolo andremo a trattare di fatto la creazione di un semplice script web-based PHP per controllare qualcosa nel mondo reale!
Allora tenetevi forte, perché mentre questo saggio web sarà una passeggiata nel parco, concettualmente stiamo andando a viaggiare in un intero nuovo regno delle possibilità!
La Sfida Fisica!
Anche se ho un pò di background hardware (ho costruito il mio computer, vari concetti di elettronica di base) non ho mai avuto a che fare con tutto ciò che effettivamente coinvolge l’utilizzo del software su un computer per controllare o fare qualcosa in “hardware” di fisico (ad esempio, premere un pulsante sullo schermo del computer e in qualche modo il sistema di irrigazione si accende?). Fortunatamente un po ‘di ricerche su internet aprono davvero gli occhi!
Vediamo il lato fisico delle cose per un attimo (ci arriveremo al software abbastanza presto, non preoccupatevi). Nella mia situazione avevo a che fare con il modo di trasformare un sistema di irrigazione acceso o spento. Si scopre che questa operazione è semplice come la semplice pressione di un interruttore: accendere l’interruttore, un circuito elettrico viene chiuso, e il sistema di irrigazione inizia ad annaffiare; girare l’interruttore nuovamente, il circuito si apre, e il sistema di irrigazione si ferma. Abbastanza semplice, ora tutto quello che serviva era un “interruttore” che può essere attivato o disattivato da un computer. Questo è dove la scheda relè (Relay Board) entra in gioco. Un relè è semplicemente un interruttore che può essere attivato o disattivato elettronicamente! Naturalmente, per attivare o disattivare i relè è necessario disporre di un modo di collegarli al computer. Fortunatamente, è possibile ottenere una scheda relè con una porta seriale su di esso che è stato progettato solo per questo scopo, acquistandola (il costo non è proprio economico). Inoltre se poi vorremmo riadattarla per altri utilizzi la questione diverebbe un pò più complessa. Quindi fondamentalmente andiamo sul sicuro con l’Arduino Uno.

Problema Hardware … risolto!
Passiamo alla parte Software.
Beh, devo dire, che la parte hardware per chi si è sempre interessato di web risulta la parte più difficile da comprendere.
Ora tutto ciò che rimane è capire come avviene la comunicazione fra il computer e la nostra Board (Arduino), per iniziare a farla lavorare come si deve..
Dopo aver fatto qualche ulteriore ricerca nel web ho scoperto che il lato software è ancora più facile del previsto.. per chi ovviamente mastica un minimo di PHP.. Come si è visto, le porte seriali (USB: Universal Serial Bus) sono tra le cose più facili e comode su un computer per comunicare verso l’esterno.
Andiamo adesso alla parte di Information Gathering
Fondamentalmente il problema software si divide in due parti: la prima, è necessario capire come effettivamente inviare e ricevere informazioni dalla porta seriale.
La seconda: controllare la documentazione per la scheda relè oppure in questo caso annotarsi il codice con cui è stato programmato l’Arduino per determinare quali informazioni necessita la board per aprire o chiudere il relè. Quindi quali comandi dobbiamo mandare se vogliamo aprire o chiudere il circuito.

Comunicare con la porta seriale.
Poiché il mio obiettivo finale era quello di avere un’applicazione web-based (e, francamente, perché volevo essere in grado di scrivere il mio codice in un linguaggio che già conosco), ho deciso che avrei realizzato tutti i software di controllo in PHP. Ha senso, dopo tutto, PHP è un linguaggio fantastico, ed ero abbastanza sicuro che con la natura open source di esso ci sarebbe stato probabilmente qualche altra persona folle davanti a me che aveva cercato di fare qualcosa molto simile con esso (che è uno di quei benefici aggiunti dell’open source).
Beh, a quanto pare, qualcuno aveva scritto in realtà solo una classe PHP per comunicare con la porta seriale. Adesso tutto quello che bisogna fare è controllare la documentazione per vedere quali impostazioni si devono usare (a quanto pare le porte seriali possono funzionare a velocità diverse e varie impostazioni) a seconda che si usi una scheda relè o la piattaforma Arduino.
Ancora una volta le cose funzionato a nostro favore, leggendo la documentazione si capische che vengono usati caratteri ASCII (lettere e numeri regolari, alcuni dispositivi usano valori HEX esadecimali, rendendo le cose molto più difficili). Questo dunque è lo script messo a punto per tale operazione…Ovviamente può essere riadattato per ogni vostra necessità, questo si riferisce ad una scheda relè:
<?php /* Semplice serial relay script per accendere e spegnere dal web l'impianto di irrigazione o altri apparecchi elettrici. Utilizza la PHP Serial class by Rémy Sanchez per comunicare con la QK108/CK1610 serial relay board! */ //Controlla la variabile GET action per vedere se c'è qualche comando da processare if (isset($_GET['action'])) { //Action required //Carica la classe per la porta seriale require("php_serial.class.php"); //Inizializza la classe $serial = new phpSerial(); //Specifica la porta seriale da usare in questo caso: COM1 $serial->deviceSet("COM1"); //Setta i parametri della porta seriale. riportando la documentazione: 9600 8-N-1 $serial->confBaudRate(9600); //Baud rate: 9600 $serial->confParity("none"); //Parity (è la "N" in "8-N-1") $serial->confCharacterLength(8); //lunghezza carattere (this is the "8" in "8-N-1") $serial->confStopBits(1); //Stop bits (è il num "1" in "8-N-1") $serial->confFlowControl("none"); //Se l'apparecchio non lo supporta, settate su none //Apriamo la porta seriale in modo da scriverci sopra $serial->deviceOpen(); //Stando alla documentazione if ($_GET['action'] == "on") { //Usiamo il comando N1 per aprire il relè 1 $serial->sendMessage("N1\r"); } else if ($_GET['action'] == "off") { //Usiamo il comandi F1 per chiudere il relè 1 $serial->sendMessage("F1\r"); } //dopo aver fatto chiudiamo la comunicazione seriale. $serial->deviceClose(); } //sotto la parte relativa alla grafica della pagina in html ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Sistema di controllo tramite web server</title> </head> <body> <h1>Sistema controllo irrigazione</h1> <p><a href="<?=$_SERVER['PHP_SELF'] . "?action=on" ?>"> Clikka per aprire.</a></p> <p><a href="<?=$_SERVER['PHP_SELF'] . "?action=off" ?>"> Clickka per spegnere.</a></p> </body> </html>
E’ molto importante seguire la documentazione per la scheda relè, con Nx, dove x è il numero di un relè (1-8) si accende il relè, con Fx, dove x è il numero di un relè (1-8) lo spegnete. La parte migliore è che funziona egregiamente
Conclusioni
Con un po ‘di pensiero creativo e di ricerca vi accorgerete che ci sono molti usi per le capacità nell’ambito dello sviluppo web based.
La cosa più interessante è la flessibilità di cui dispone: la classe PHP seriale stessa può operare sia su sistemi Windows e Linux, quindi se non si dispone di un server Linux in esecuzione non si sentono tagliati fuori gli utenti windows!
Usando il linguaggio di scripting php ed una board Arduino si possono realizzare praticamente infiniti tipi di progetti.. per le più svariate applicazioni nei campi della Domotica e automazione a distanza. L’unico limite imposto è quello della vostra fantasia!

Commenti