martedì 27 febbraio 2018

Elettronica, passione, emozione

La mia passione per l'elettronica risale a quando ero un bambino (sto parlando dei primi anni sessanta), affascinato da quel qualcosa di magico che riconoscevo in tutti gli oggetti in cui scorreva l'elettricità...
Mi emozionava in particolare la magia di quegli oggetti che servivano per comunicare: altoparlanti, radio, televisione. Ma anche strumenti di misura elettromeccanici, bobine, campanelli, motorini elettrici.
Nell'aula della scuola elementare rimasi colpito dalla cassa con altoparlante che campeggiava in alto a fianco della cattedra dell'insegnante, che serviva per le comunicazioni importanti della preside a tutte le classi. Appena mi fu possibile cercai di replicarla artigianalmente utilizzando un altoparlante dismesso dal papà di un mio compagno di classe, che si dilettava in elettronica



Il fascino dei dispositivi di diffusione acustica raggiungeva l'apice con i mitici diffusori a tromba esponenziale





Radio e televisione erano a quei tempi per me gli oggetti più complessi e misteriosi, animati dalle misteriose e affascinanti valvole termoioniche.  



Leggevo con trasporto libri come "Trionfi della ricerca" in cui si narrava delle esperienze del giovane Guglielmo Marconi e delle sue esperienze sulla trasmissione di segnali telegrafici senza fili, del sogno e della intuizione di Paul Nipkov sulla visione a distanza. Ancora su "Saper Costruire" progetti di microfoni, strumenti di misura elettromeccanici, schemi radio. E poi le fantastiche riviste "Sisteme Pratico" che sfogliavo nel solaio a casa del mio amico con il papà appasssionato di elettronica.




Grande fascino hanno sempre esercitato i dispositivi di radiotrasmissione, e fra i ricordi emergono la coppia di ricetrasmittenti "walkie-talkie" che mi feci comperare da venditori ambulanti sulla spiaggia di Cinquale (MS) e la mitica e favolosa "trasmittente dello zio Tino".


Sulle pagine del settimanale a fumetti Topolino (c - Walt Disney) non erano infrequenti le storie in cui apparivano apparati elettronici e radio trasmittenti e riceventi che sempre colpivano la mia immaginazione


(da "Zio Paperone e l'aurum nigrum") (c) Disney




martedì 28 novembre 2017

Android RS232

E' interessante la possibilità di utilizzare uno smartphone Android per connettersi ad un dispositivo elettronico mediante la tradizionale connessione seriale RS232. Esistono degli adattatori USB/seriale RS232 che si possono utilizzare con smartphone dotati di supporto USB OTG. In particolare l'adattatore basato su PL2303HXD della Prolific mette a disposizione una app di emulazione terminale e delle API per realizzare programmi di comunicazione e acquisizione dati.
Nella foto che segue uno smartphone connesso ad un misuratore di campo PMM8053:


Sviluppare una applicazione Android che scambi dati via linea seriale/USB non è tuttavia una cosa semplicissima. Occorre innanzitutto installare l'ambiente di sviluppo Android Studio che a sua volta richiede l'installazione dell'ambiente di sviluppo Java JDK.E' poi richiesta una sufficiente conoscenza del linguaggio Java e della sintassi XML.

giovedì 22 giugno 2017

Processing, DAQ e grafici

L'interfaccia seriale è ancora largamente utilizzata da molta strumentazione elettronica per scambiare dati con un personal computer. Quest'ultimo è spesso utilizzato per raccogliere dati (DAQ: Data Acquisition) e presentarli all'utilizzatore in una interfaccia grafica più o meno accattivante. Il linguaggio Processing (https://processing.org) si presta bene a questi scopi.

Un esempio
Sulla rivista Elektor (Mar.-Apr. 2015) è apparso un articolo "Security Labels are the key" in cui una scheda Arduino viene utilizzata per rilevare la frequenza di risonanza di una lamina antitaccheggio utilizzata in molti prodotti di consumo. La scheda invia su linea seriale il livello di segnale ai capi di una bobina che viene sollecitata con una serie di frequenze da 52 a 64 kHz.

Un programma Processing che gira su PC riceve dalla scheda Arduino via linea seriale i dati delle frequenze e genera un grafico (istogramma) in cui risulta con evidenza una frequenza di risonanza.




 L'ambiente di sviluppo (IDE) di Processing e quello di Arduino sono molto simili, il secondo infatti è derivato dal primo, come Wiring (http://wiring.org.co) il precursore di Arduino.


venerdì 25 novembre 2016

Risoluzione IP Dinamico con Arduino




La maggior parte delle connessioni domestiche a Internet avviene con un IP dinamico fornito dal provider all'atto di ciascuna connessione. Per consentire l'accesso remoto a dispositivi IoT e applicazioni di domotica si ricorre a servizi DDNS semprechè il modem ADSL li supporti. Inoltre la maggioranza dei servizi è ora a pagamento. Il metodo alternativo qui presentato utilizza una scheda Arduino con shield Ethernet per mantenere aggiornato su un server l'indirizzo IP corrente in un file testo. Una semplice pagina .php consente sia di ridirigere una connessione client HTTP alla rete domestica (all'IP corrente) che di aggiornare il file testo contenente l'indirizzo.
Arduino periodicamente aquisisce l'IP corrente e aggiorna il file testo sul server chiamando la pagina .php passando il parametro "newip"; digitando da un qualunque browser in rete l'indirizzo della pagina .php (con password) si viene ridiretti all'IP dinamico e quindi alla nostra rete domestica.


----------------------------------------------------------------
<?php

$file = "ip.txt";

if(isset($_GET['newip']) == true && isset($_GET['pass']) == true)
{
   $ip = $_GET['newip'];
   $pass = $_GET['pass'];

   if($pass == "abc123")
   {
      file_put_contents($file, $ip);
   }
}
else if(isset($_GET['pass']) == true)
{
   $pass = $_GET['pass'];
   if($pass == "abc123")
   {
      // get IP address
      $port = $_GET['port'];
      $ip = file_get_contents($file);
      echo '<html>';
      echo '<head>';
      echo '<meta http-equiv="refresh" content="0; url=http://'.$ip.':'.$port.'" />';
      echo '</head>';
      echo '<body>';
      echo '</html>';
   }
}
?>

----------------------------------------------------------------

Il codice completo dello sketch per Arduino è scaricabile qui. E' previsto l'utilizzo di uno shield economico basato sul chip ENC28J60.

Il loop principale è riportato qui di seguito:

void loop() {
 ether.packetLoop(ether.packetReceive());
 switch(actual_status) {
  case STATUS_IDLE: getIP(); break;
  case STATUS_WAIT_IP: waitIP(); break;
  case STATUS_SEND_IP: sendIP(); break;
  case STATUS_WAIT_RESP: waitRESP(); break;
  }
}

L'invio delle richieste client avviene con la funzione ether.browseUrl della libreria EtherCard.h

ether.browseUrl(PSTR("/"), pageurl , setipwebsite, setip_callback);

Credits:
L'idea originale è derivata da un post sul web di Gianluca Ghettini, in cui l'aggiornamento del file testo avviene con uno script bash (che però necessita di un sistema Linux). La pagina .php è stata modificata con l'aggiunta del parametro "port" per accedere a uno specifico server web all'interno della rete domestica (es. IPcam, termostato, ecc.).

martedì 6 gennaio 2015

La trasmittente dello zio Tino

Costruita dall'amico Alfonso,direi verso la fine degli anni '60, utilizzando il telaio di una radio a valvole. Impiega due valvole: una 6V6 ed una 5Y3 (raddrizzatrice). Irradiava un segnale modulato in ampiezza nella gamma delle onde Medie.




Ricordo che da ragazzino mi affascinava vederla mettere in funzione, il rito dell'accensione (prima l'alimentazione dei filamenti poi l'inserimento della tensione anodica) e l'emozionante bagliore della piccola lampadina ad incandescenza sulla bobina del circuito di antenna che indicava la presenza del segnale RF.
Una volta regolata la sintonia e l'accordo per la massima luminosità, la lampadina veniva svitata per non sottrarre energia in antenna. Una seconda lampadina sul filo verso l'antenna indicava il massimo trasferimento di potenza in emissione.



mercoledì 23 ottobre 2013

Web geiger



Un geiger collegato ad una scheda Arduino Uno con Ethernet shield (che rileva gli impulsi  tramite interrupt e che implementa anche un web server)  e una pagina php ospitata su un server commerciale consentono di monitorare da remoto via internet i livelli di radioattività, con una gradevole interfaccia grafica.

La pagina .php si occupa della  visualizzazione grafica utilizzando le risorse rgraph.net (javascript).  

<script src="RGraph.common.core.js"></script>
<script src="RGraph.meter.js"></script>

<script>
        window.onload = function ()

        {

var rh = new RGraph.Meter('rh', 0, 40, <?php echo $_POST["h"]; ?> );                     

            rh.Set('chart.labels.position', 'inside');

            rh.Set('chart.title', 'Radiation');

            rh.Set('chart.title.vpos', 0.5);

            rh.Set('chart.title.color', 'black');

            rh.Set('chart.red.start', 32);

            rh.Set('chart.red.end', 40);

            rh.Set('chart.yellow.start', 20);

            rh.Set('chart.yellow.end', 32);

            rh.Set('chart.green.start', 0);

            rh.Set('chart.green.end', 20);

            rh.Set('chart.border', false);

            rh.Set('chart.needle.linewidth', 5);

            rh.Set('chart.needle.tail', true);

            rh.Set('chart.tickmarks.big.num', 0);

            rh.Set('chart.tickmarks.small.num', 0);

            rh.Set('chart.segment.radius.start', 100);

            rh.Set('chart.needle.radius', 80);

            rh.Set('chart.needle.linewidth', 2);

            rh.Set('chart.linewidth.segments', 15);

            rh.Set('chart.strokestyle', 'white');

            rh.Draw();

}

</script>

La visualizzazione nel <body> con l'istruzione

<div><canvas id="rh" width="400" height="250">[No canvas support]</canvas><br /><?php echo $_POST["h"]; ?> uR/h</div>

Nella sezione <head> una istruzione refresh consente in pratica l'aggiornamento ogni 30 secondi della visualizzazione:

echo '<meta http-equiv="refresh" content="30; url=http://...................">';

Lo sketch Arduino operante come web server ritorna come risposta una pagina html con una form che contiene il valore misurato inviato con metodo POST.

Scarica lo sketch

venerdì 22 febbraio 2013

Geiger con Arduino


La versatilità della scheda tuttofare "made in Itay" Arduino consente di realizzare un Geiger Counter con un semplice programma.Lo sketch conta gli impulsi nell'unità di tempo utilizzando un interrupt sul pin digitale 2.
Come sensore può essere utilizzato (con connessione diretta) il "manipolo" di Nuova Elettronica "LX 1710-A".