T Shirt d'ambiance connecté : Différence entre versions
De Wiki d'activités IMA
m (→Partie Edison) |
m (Abandon de l'Intel Edison, utilisation d'une solution Arduino) |
||
| Ligne 54 : | Ligne 54 : | ||
} | } | ||
</pre> | </pre> | ||
| + | |||
| + | ... and NOPE | ||
== Partie Artix 7 == | == Partie Artix 7 == | ||
| + | NOPE | ||
| + | |||
| + | == Partie Arduino == | ||
| + | Ultimate tuto, a preview of the simplicity : [http://www.pobot.org/Traitement-du-son-par-FFT-fast.html?lang=fr Free efficient project here] | ||
Version du 19 janvier 2016 à 16:35
Partie Edison
#include "mraa/aio.h"
#define GPIO_NUMBER 12
#define GPIO_BASE_OFFSET 2
int init_gpio(mraa_gpio_context* gpios){
int i;
for(i=0; i<GPIO_NUMBER; i++) gpios[i] = NULL;
for(i=0; i<GPIO_NUMBER; i++){
gpios[i] = mraa_gpio_init(GPIO_BASE_OFFSET+i);
if(gpios[i] == NULL){
printf("Unable to get context for pin %d\n", i);
return 1;
}
mraa_gpio_dir(gpios[i], MRAA_GPIO_OUT);
}
return 0;
}
int main(){
uint8_t ret;
uint16_t adc_value = 0;
mraa_aio_context adc_a0 = NULL;
mraa_gpio_context gpio[GPIO_NUMBER];
mraa_init();
adc_a0 = mraa_aio_init(0);
mraa_aio_set_bit(adc_a0, 12); // 12 bits resolution
ret = init_gpio(gpio);
if (adc_a0 == NULL){
printf("Unable to initialize ADC\n");
return 1;
}
if(ret != 0){
printf("Unable to initialize GPIOs\n");
return 2;
}
for (;;){
adc_value = mraa_aio_read(adc_a0);
fprintf(stdout, "ADC A0 read %X - %d\n", adc_value, adc_value);
mraa_gpio_write(gpio[0x0], ((adc_value & 0x001) == 0x001));
mraa_gpio_write(gpio[0x1], ((adc_value & 0x002) == 0x002));
mraa_gpio_write(gpio[0x2], ((adc_value & 0x004) == 0x004));
mraa_gpio_write(gpio[0x3], ((adc_value & 0x008) == 0x008));
mraa_gpio_write(gpio[0x4], ((adc_value & 0x010) == 0x010));
mraa_gpio_write(gpio[0x5], ((adc_value & 0x020) == 0x020));
mraa_gpio_write(gpio[0x6], ((adc_value & 0x040) == 0x040));
mraa_gpio_write(gpio[0x7], ((adc_value & 0x080) == 0x080));
mraa_gpio_write(gpio[0x8], ((adc_value & 0x100) == 0x100));
mraa_gpio_write(gpio[0x9], ((adc_value & 0x200) == 0x200));
mraa_gpio_write(gpio[0xA], ((adc_value & 0x400) == 0x400));
mraa_gpio_write(gpio[0xB], ((adc_value & 0x800) == 0x800));
}
mraa_aio_close(adc_a0);
return MRAA_SUCCESS;
}
... and NOPE
Partie Artix 7
NOPE
Partie Arduino
Ultimate tuto, a preview of the simplicity : Free efficient project here