Salve a tutti , sto sviluppando un'applicazione con questo sensore di gesti su Attiny85, con le sue capacità compatte lo voglio usare sul pc per gestire le presentazioni collegato alla porta usb con la modalità keyboard, ho fatto dei test di funzionalità codice con il classico arduino uno in seriale, qui non si sono riscontrate problematiche e riesco a gestirlo tranquillamente , dalle prove effettuate sull'arduino ho preferito utilizzare un'ingresso pullup per codificare il gesto ricevuto, questa soluzione è piu' affidabile e con l'interrupt richiesto dal codice di esempio ogni tanto la board si bloccava ed l'interpretazione del gesto era poco reattiva , sull'attiny non riesco a farlo funzionare , ho provato anche con l'attiny167 ma presuppongo la problematica sia uguale, penso che ci sia qualche problema sulla libreria che và in conflitto con l'architettura del microcontrollore, la libreria da me utilizzata è la SparkFun_APDS-9960,
c'è qualcuno che è riuscito a far funzionare questo sensore sull'attiny?
questo è il mio codice di test e quando inserisco il digispark sulla usb con notepad aperto mi restituisce solo caratteri F , anche scollegando il sensore
#include <Wire.h>
#include <SparkFun_APDS9960.h>
#include "DigiKeyboard.h"
// Pins
#define APDS9960_INT 1 // Needs to be an interrupt pin
// Constants
// Global Variables
SparkFun_APDS9960 apds = SparkFun_APDS9960();
int isr_flag;
byte a;
void setup() {
pinMode (APDS9960_INT,INPUT_PULLUP);
isr_flag = 0;
}
void loop() {
a=digitalRead (APDS9960_INT);
if (a==LOW){
isr_flag=1;
}
if( isr_flag == 1 ) {
handleGesture();
isr_flag = 0;
}
}
void handleGesture() {
if ( apds.isGestureAvailable() ) {
switch ( apds.readGesture() ) {
case DIR_UP:
DigiKeyboard.print("U");
break;
case DIR_DOWN:
DigiKeyboard.print("D");
break;
case DIR_LEFT:
DigiKeyboard.print("L");
break;
case DIR_RIGHT:
DigiKeyboard.print("R");
break;
case DIR_NEAR:
DigiKeyboard.print("V");
break;
case DIR_FAR:
DigiKeyboard.print("Lo");
break;
default:
DigiKeyboard.print("N");
}
}
}