Ejemplo n.º 1
0
int initialize_camera()
{
	struct termios camera_term;

	// Initialize serial to camera
	int tty = open("/dev/camera", O_RDWR | O_NOCTTY | O_NDELAY);
   	tcgetattr(tty, &camera_term);
	cfmakeraw(&camera_term);
  	camera_term.c_cflag = B115200;
   	camera_term.c_cflag = CS8 | CREAD | CLOCAL;
   	camera_term.c_iflag = IGNPAR | IGNBRK;
	tcflush(tty, TCOFLUSH);
	tcsetattr(tty,TCSANOW,&camera_term);

	//Set tracking settings
	char tc[] = "om 0 0\r"; //Suppress output from tracking
   	char servo[] = "sm 5\r";//Set to pan servo active and pan servo report
	char color_track[] = "tc 144 194 37 87 0 41\r";
	write(tty,&tc,sizeof(tc));
	rx_ack(tty);
	write(tty,&servo,sizeof(servo));
	rx_ack(tty);
	write(tty, &color_track,sizeof(color_track));
	rx_ack(tty);

	return tty;
}
Ejemplo n.º 2
0
//Turn on servo
void start_tracking(int tty)
{
	char servo[] = "so 0 1\r";//Turn on Servo
	write(tty,&servo,sizeof(servo));
	rx_ack(tty);
}
Ejemplo n.º 3
0
//Turn off servos
void stop_tracking(int tty)
{
	char servo[] = "so 0 0\r";//Turn off Servo
	write(tty,&servo,sizeof(servo));
	rx_ack(tty);
}
Ejemplo n.º 4
0
/**
 * The main function.
 */
int main( void )
{

    /* Stop the watchdog timer. */
    WDTCTL = WDTPW + WDTHOLD;

    /* Setup MCLK 8MHz and SMCLK 1MHz */
    set_mcu_speed_xt2_mclk_8MHz_smclk_1MHz();

    /* Enable Interrupts */
    eint();

    LEDS_INIT();
    LEDS_ON();

    uart0_init(UART0_CONFIG_1MHZ_115200);
    printf("CC2420 TX test program with address recognition and acknowledge frames\r\n");

    cc2420_init();
    cc2420_io_sfd_register_cb(sfd_cb);
    cc2420_io_sfd_int_set_falling();
    cc2420_io_sfd_int_clear();
    cc2420_io_sfd_int_enable();
    cc2420_set_txpower(CC2420_2_45GHz_TX_0dBm);

    uint8_t fcf[2] = {0x21, 0x88};  /* -> 00100001 10001000 -> reverse of bits for each byte -> 10000100 00010001 -> ack bit = 1 (6th bit), Frame type = 001 (don't forget to read from right to left) */
    uint8_t seq_numb = 0x01;
    uint8_t dest_pan_id[2] = {0x22, 0x00};
    uint8_t dest_addr[2] = {0x11, 0x11};

    uint8_t src_pan_id[2] = {0x22, 0x01};
    uint8_t src_addr[2] = {0x11, 0x12};

    while ( (cc2420_get_status() & 0x40) == 0 ); // waiting for xosc being stable

    cc2420_set_panid(src_pan_id); // save pan id in ram
    cc2420_set_shortadr(src_addr); // save short address in ram

    printf("CC2420 initialized\r\n");

    LEDS_OFF();

    while (1)
    {
        cc2420_cmd_idle();
        cc2420_cmd_flushtx();

        txlength = sprintf((char *)txframe, "Hello World #%i", seq_numb);

        printf("Sent : %s of length %d\r\n", txframe,txlength);

        txlength += 13;

        cc2420_fifo_put(&txlength, 1);
        cc2420_fifo_put(fcf, 2);
        cc2420_fifo_put(&seq_numb, 1);
        cc2420_fifo_put(dest_pan_id, 2);
        cc2420_fifo_put(dest_addr, 2);
        cc2420_fifo_put(src_pan_id, 2);
        cc2420_fifo_put(src_addr, 2);
        cc2420_fifo_put(txframe, txlength-13);

	LED_BLUE_TOGGLE();

        cc2420_cmd_tx();

        micro_delay(0xFFFF);
	while (cc2420_io_sfd_read());

	printf("Waiting for acknowledge frame...\n");

	if (rx_ack())
	{
            seq_numb ++;
	}
	else
	{
	    printf("No Acknowledge frame received for frame number #%i - Retrying...\r\n\n", seq_numb);
	    LED_RED_TOGGLE();
	}
        micro_delay(0xFFFF);
        micro_delay(0xFFFF);
        micro_delay(0xFFFF);
        micro_delay(0xFFFF);
        micro_delay(0xFFFF);
        micro_delay(0xFFFF);
        micro_delay(0xFFFF);
        micro_delay(0xFFFF);
        micro_delay(0xFFFF);
        micro_delay(0xFFFF);
    }


    return 0;
}