void brain_run(void) { /* initialize components */ puts("[brain] initializing front distance sensor..."); if (srf02_init(&dist_front, CONF_DIST_FRONT_I2C, CONF_DIST_FRONT_ADDR) < 0) { puts("[failed]"); return; } puts("[brain] initializing back distance sensor..."); if (srf02_init(&dist_back, CONF_DIST_BACK_I2C, CONF_DIST_BACK_ADDR) < 0) { puts("[failed]"); return; } puts("[brain] initializing steering servo..."); if (servo_init(&steering, CONF_STEERING_PWM, CONF_STEERING_PWM_CHAN, CONF_STEERING_MIN, CONF_STEERING_MAX) < 0) { puts("[failed]"); return; } servo_set(&steering, CONF_STEERING_CENTER); puts("[brain] initializing motor driver..."); if (motor_init(&mot, &mot_params)) { puts("[failed]"); return; } /* go and have fun */ puts("[brain] components ready, all up an running!"); thread_create(stack, sizeof(stack), CONF_PRIO_COL_DETECT, THREAD_CREATE_STACKTEST, colllision_detection, NULL, "col detect"); }
int main(void) { int res; puts("SRF02 ultrasonic ranger test application\n"); printf("Initializing SRF02 sensor at I2C_%i... ", TEST_SRF02_I2C); res = srf02_init(&srf02_0, TEST_SRF02_I2C, SRF02_DEFAULT_ADDR, TEST_SRF02_SPEED); if (res < 0) { printf("[Failed]"); return 1; } else { puts("[Ok]\n"); while(1) { uint16_t distance = srf02_get_distance(&srf02_0, TEST_MODE); printf("distance = %i cm\n", distance); vtimer_usleep(SLEEP); } } }
static int cmd_init(int argc, char **argv) { int res; if (argc < 2) { printf("usage: %s <addr (decimal)>\n", argv[0]); return 1; } uint8_t addr = atoi(argv[1]); printf("Initializing SRF02 sensor at I2C_DEV(%i), address is %i\n... ", TEST_SRF02_I2C, (int)addr); res = srf02_init(&dev, TEST_SRF02_I2C, addr); if (res < 0) { puts("[Failed]"); return 1; } else { puts("[Ok]\n"); } return 0; }