Altre 2 Nuovissime Expansion Board per PIC32 Starter Kit…è la volta dei display!

June 13, 2010 13:44 by l.maiorfi

Abbiamo appena rilasciato altri due modelli di scheda di espansione per i PIC32 Starter Kit che, pur presentando caratteristiche comuni alle altre, prima fra tutte quella di poter essere “pilotate” da un modulo PIC32 Starter Kit (disponibile in tre modelli: standard, USB ed USB+Ethernet), si distinguono dalle altre prevalentemente per la presenza “on-board” di un display.

Nella Tipo 5, illustrata sotto, abbiamo un display LCD alfanumerico di dimensioni 2x16 (2 righe per 16 colonne), particolarmente indicato per la realizzazione di applicazioni embedded a basso costo in cui è necessario disporre di un’interfaccia utente più complessa di uno o più led “spia” ma in cui un display grafico sarebbe assolutamente sovrabbondante (e quindi troppo costoso). Gli esempi di applicazioni di questo tipo sono moltissimi: basta pensare ad esempio ai distributori di bevande calde, praticamente onnipresenti. Il feedback visuale relativo alla bevanda scelta (caffè, cappuccino, ecc.), alla quantità di zucchero desiderata e al credito residuo (più una manciata di messaggi quali “bevanda in preparazione” o “ritirare la bevanda”) è sicuramente più che sufficiente per lo scopo del dispositivo. Avete mai sentito qualcuno dire “…no, non prendiamo il caffè qui, che non c’è il display grafico…”?

ExpansionBoard_Type5

La connessione tra il display e il microcontrollore ospitato nel PIC32 Starter Kit è realizzata utilizzando la PMP (Parallel master Port) del PIC32, una periferica concepita per l’interfacciamento con dispositivi che richiedono un buon throughput ma la cui complessità è limitata da vincoli di costo. Il controller che pilota la “griglia” di punti di un display alfanumerico come quello che troviamo sulla scheda Tipo 5 (noto come controller di tipo HD44780, dal nome del prodotto che ha stabilito lo standard dei dispositivi di questo tipo) è appunto un esempio di componente che richiede velocità di trasferimento a basso costo. Quello che stupisce è che, grazie alle librerie per la gestione della PMP del PIC32, la scrittura di un carattere sul display si riduce ad uno snippet di questo tipo (che viene a sua volta tipicamente “wrappato” da funzioni di più alto livello in cui si inviano al display direttamente stringhe e caratteri di controllo:

   1: void writeLCD( int addr, char c)    
   2: {
   3:     while( busyLCD());  
   4:     PMPSetAddress( addr);
   5:     PMPMasterWrite( c);
   6: }

La Tipo 4, al contrario, trova la sua naturale applicazione laddove è richiesta un’interfaccia utente ricca e spiccate doti di remotizzazione wireless. Come è possibile vedere dalla foto sottostante, infatti, la scheda contiene un display grafico OLED intelligente ed autonomo (grazie ad un microcontrollore grafico dedicato built-in) ed un ricetrasmettitore XBee, in grado di stabilire connessioni radio utilizzando il noto protocollo ZigBee fino ad 1.6 km di distanza. La scheda è inoltre equipaggiata con un piccolo amplificatore audio ed un altoparlante compatto per la riproduzione di campioni sonori.

ExpansionBoard_Type4

Il display OLED in questione è programmabile indipendentemente dal PIC32 contenuto nello Starter Kit e comunica con questo attraverso una porta UART seriale dedicata. Il firmware del processore grafico viene sviluppato all’interno di un ambiente di sviluppo che utilizza un compilatore Pascal all’interno di un IDE semplice ma molto funzionale. Il produttore del display fornisce inoltre moltissime librerie di base, che vanno dalle primitive grafiche alla gestione delle bitmap, all’utilizzo del file system relativo alla micro-sd inseribile nell’apposito socket presente sul retro del display (funzionalità utilissima ad esempio per immagazzinare grosse quantità di bitmap relative all’interfaccia utente della nostra applicazione). La versione di display presente nella nostra scheda ha una risoluzione di 128x128 pixel, ma è possibile collegare anche altri modelli, compatibili al 100% con il display in questione, caratterizzati da maggior superficie e risoluzione grafica, fino ad arrivare ad un 3” 320x240 touch!

Per darvi un’idea della grande “programmabilità” di questo display, questo è lo snippet di codice relativo al plotting della “lancetta” di un orologio, uno dei demo forniti con l’IDE di cui sopra:

   1: // draw the line for a clock hand
   2: func DrawHand(var length, var angle, var colour)
   3:     gfx_Set(OBJECT_COLOUR, colour);
   4:     gfx_MoveTo(xc, yc);                     // reset the centerpoint  
   5:     gfx_Orbit(angle-90, length);            //
   6:     gfx_Line(xc, yc, targetX, targetY, colour);
   7: endfunc

 

Come sempre, trovate le nostre schede in vendita esclusivamente nella nostra area ebay.


Currently rated 5.0 by 1 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5