Non ci sono prodotti a carrello.
Clicca per ingrandire
€29,00 IVA inclusa
Disponibilitร immediata.
Shield di espansione, compatibile con le varie schede Arduino e con la nostra Fishino UNO che, senza praticamente impegnare risorse hardware, permette di avere a disposizione ben 16 uscite in PWM e 16 ingressi/uscite digitali aggiuntivi
SKU:
7305-OCTOPUS
Categorie: Arduino, Compatibili Arduino
|
Shield di espansione, compatibile con le varie schede Arduino e con la nostra Fishino UNO che, senza praticamente impegnare risorse hardware, permette di avere a disposizione ben 16 uscite in PWM e 16 ingressi/uscite digitali aggiuntivi. Non solo, le schede sono sovrapponibili fino ad un massimo di 8, consentendo di gestire con Arduino fino a 128 I/O digitali e 128 uscite PWM aggiuntive; il tutto reso completamente trasparente allโutilizzatore tramite una libreria realizzata ad-hoc.
Il prodotto viene fornito completamente montato per quanto concerne tutta la parte SMD, mentre rimarrร da saldare la sola parte dei connettori verso Arduino e verso i dispositivi esterni. N.B. Arduino/Fishino e i servo RC non sono compresi (vedere prodotti correlati). |
Perchรจ รจ stata realizzata
|
Per quanto pratiche e capaci di realizzare innumerevoli applicazioni, le schede Arduino e compatibili hanno due limiti: la memoria di programma relativamente ridotta e la ridotta quantitร di uscite disponibili, specie di I/O cui si puรฒ assegnare un segnale PWM. Per esempio, una Arduino/Fishino UNO dispone di sole sei uscite PWM e, a meno di non generare i relativi segnali via software (con notevole impegno del processore), permette il pilotaggio di un solo driver e quindi un solo LED RGBW di potenza, o in alternativa di sei led monocromatici.
Lo stesso limite emerge quando si vogliono pilotare piรน di 6 servomotori con le stesse schede; la realizzazione di un robot tipo โhexapodโ, che richiede ben 12 servi, risulta problematica, se non impossibile. Anche gli ingressi e le uscite digitali sono limitati; sempre parlando delle schede Arduino, abbiamo un totale di 13 I/O digitali e 6 ingressi analogici, utilizzabili anchโessi in digitale; sembrerebbero anche abbondanti, se non fosse che molti di questi vengono utilizzati per le periferiche a bordo o dagli shield di espansione. In pratica, realizzando un progetto con uno shield Ethernet/WiFi, una memoria SD e che necessita dellโuscita seriale e di qualche ingresso analogico, restano a disposizione solo sei I/O digitali che sono spesso insufficienti per progetti di media complessitร . |
La Libreria
|
Come giร accennato, per questa scheda abbiamo realizzato unโapposita libreria software, denominata Octopus, dotata di alcune particolaritร che ne rendono semplicissimo lโutilizzo. La prima particolaritร interessante della libreria si puรฒ notare dalle linee dellโinclude file (Octopus.h):
#define Octopus __octopus() e dalle linee del file sorgente (Octopus.cpp): OctopusClass &__octopus() Wire.begin(); prima dellโutilizzo della libreria, risulta impossibile creare la variabile statica Octopus al momento del caricamento del programma, visto che lโinterfaccia Wire in quel momento non รจ ancora stata inizializzata. // return number of boards founduint8_t getNumBoards(void) const; Come detto in precedenza, la frequenza del PWM รจ unica per ogni scheda, quindi per ogni gruppo di 16 uscite PWM; รจ impostabile tramite le due funzioni seguenti, la prima scheda per scheda e la seconda per tutte le schede connesse in un solo comando: // set pwm frequency for a single connected board Nella prima occorre indicare il numero di scheda (che va da 0 a Octopus.getNumBoards()) e la frequenza di PWM, da 24 Hz a 1.526 Hz; nella seconda รจ sufficiente indicare la frequenza e tutte le schede verranno impostate su quella. Allโaccensione, la frequenza preimpostata รจ di 200 Hz, adatta ai servocontrolli ma anche ai LED. Il valore delle uscite PWM รจ impostabile, analogamente alle librerie di Arduino, tramite la funzione seguente: // pwm output Ad esempio, per impostare lโuscita 30 ( la terzultima della seconda scheda connessa) al 50% del valore massimo, occorre scrivere Octopus.analogWrite(30, 2048);Il terzo parametro opzionale, invert, รจ utile nel caso si connettano dei led in uscita sfruttando le uscite in modalitร open collector e collegandone gli anodi al positivo; in questo caso si ha bisogno di unโuscita inversa (piรน tempo resta alta, meno corrente scorre nel led) ed รจ quindi necessario impostare il parametro |
Uno Sketch di prova
|
Per concludere, presentiamo un semplice sketch che permette di visualizzare una โcodaโ luminosa utilizzando 16 LED connessi alle uscite PWM (Listato 1). Il codice inizializza lโinterfaccia seriale, stampa un messaggio, inizializza lโIยฒC, stampa il numero di schede rilevate e, utilizzando la prima di esse (uscite PWM da 0 a 15) crea una sorta di โserpenteโ luminoso sfruttando 16 led. I valori di luminositร del โserpenteโ sono preventivamente calcolati nella setup ed inseriti in una tabella contenente 16 valori; a seconda del punto di partenza della tabella (variabile โiโ nel loop) la โtesta del serpenteโ si trova in un punto differente, creando quindi lโeffetto visivo voluto. Come si nota, a parte il dover inserire โOctopus.โ davanti ai comandi analogWrite() lโutilizzo รจ praticamente identico alla libreria nativa di Arduino. Lโunica cosa degna di nota รจ il calcolo dei valori di luminositร , effettuato qui con un polinomio del secondo ordine in modo da creare un effetto di onda; sono possibili altri metodi con funzioni trigonometriche o semplicemente con una variazione lineare su cui potrete sperimentare; ad esempio:for(int k = 0; k < 16; k++) sinTable[k] = 4096 * sin(M_PI / 16 * k);per un andamento sinusoidale, oppure for(int k = 0; k < 16; k++) per un andamento bilineare. Concludiamo qui la descrizione della nostra scheda Octopus; potete ora sperimentare i diversi effetti luminosi utilizzando ad esempio il driver Colibrรฌ presentato nel numero scorso di Elettronica In. |
Documentazione e link utili
|
Documentazione Tecnica | |
PDF italiano |
-
€11,00 IVA inclusa
Momentaneamente esaurito: arriva il 03/05/2024
-
€7,50 IVA inclusa
Momentaneamente esaurito: arriva il 03/05/2024
-
€43,90 IVA inclusa
Momentaneamente esaurito, data di arrivo da confermare.
-
€9,00 IVA inclusa
Disponibilitร immediata.
-
€9,90 IVA inclusa
Disponibilitร immediata.
-
€8,00 IVA inclusa
Disponibilitร immediata.
-
€129,00 IVA inclusa
Disponibilitร immediata.
-
-
€89,00 IVA inclusa
Momentaneamente esaurito: arriva il 30/04/2024