La SPI si basa sull'uso di un pin come SS, ossia Slave Select, per selezionare con quale periferica stai scambiando i dati. Se non lo usi, entrambe ricevono la comunicazione ma non puoi parlare con 2 dispositivi contemporaneamente.
La gestione del pin CS la devi fare manualmente, con i classici digitalWrite.
Devi farti un cavetto in cui oltre ai primi 6 devi tirare fuori anche il pin 7 (SPI SS )..
Pin che andranno collegati a due diversi Pin di Arduino
nel codice, invece di usare pixy.h userai pixySPI_SS.h
esempio
#include <SPI.h>
#include <PixySPI_SS.h> // versione da usare
// This is the main Pixy object
PixySPI_SS pixy (14); // 14 e' un esempio di pin CS
PixySPI_SS pixy2(15); // 15 e' un esempio di pin CS
Non ho la Pixy, me ne dovrebbe arrivare una la prossima settimana, però se non mi ricordo male il segnale s.s. presente sulla sua I/O port non è gestito nell'attuale versione del software, questo significa che non è possibile usare due Pixy sulla stessa porta SPI.
quindi per una camera uso lo "zoccoletto" csp al centro della scheda, e per l'altra faccio un collegamento con cavetti usando i pin 50 51 52 53? + vcc e gnd
gianni88:
quindi per una camera uso lo "zoccoletto" csp al centro della scheda, e per l'altra faccio un collegamento con cavetti usando i pin 50 51 52 53? + vcc e gnd
Sono sempre gli stessi del connettore ISP, l'ATmega2560 ha una sola porta SPI, se vuoi collegare due Pixy devi farlo tramite I2C, devi assegnare address diversi ai due device.
edit:
Qui tutti i modi per collegare la Pixy ad Arduino.
gianni88:
quindi per una camera uso lo "zoccoletto" csp al centro della scheda, e per l'altra faccio un collegamento con cavetti usando i pin 50 51 52 53? + vcc e gnd
però se non mi ricordo male il segnale s.s. presente sulla sua I/O port non è gestito nell'attuale versione del software, questo significa che non è possibile usare due Pixy sulla stessa porta SPI.
come dicevo, hanno aggiunto una libreria pixySPI_SS.h
e vero, scusate la domanda stupida, il problema e che se collego solo sda e scl e gnd come dicono nel forum di pixy non mi si accende nemmeno la cam...
gianni88:
e vero, scusate la domanda stupida, il problema e che se collego solo sda e scl e gnd come dicono nel forum di pixy non mi si accende nemmeno la cam...
Devi collegare anche il +5V altrimenti la Pixy non è alimentata.
#include <Wire.h>
#include <PixyI2C.h>
PixyI2C pixy;
// PixyI2C pixy(0x55); // You can set the I2C address through PixyI2C object
void setup()
{
Serial.begin(9600);
Serial.print("Starting...\n");
pixy.init();
}
void loop()
{
static int i = 0;
int j;
uint16_t blocks;
char buf[32];
blocks = pixy.getBlocks();
if (blocks)
{
i++;
// do this (print) every 50 frames because printing every
// frame would bog down the Arduino
if (i%50==0)
{
sprintf(buf, "Detected %d:\n", blocks);
Serial.print(buf);
for (j=0; j<blocks; j++)
{
sprintf(buf, " block %d: ", j);
Serial.print(buf);
pixy.blocks[j].print();
}
}
}
}