День 32 1.02.2015. 16:00-18:00.

Задачи

Ход работы

Модернизация полным ходом

Мы решили уменьшить нашего робота в размерах, поменяв расположение двигателей и схемы крепления балок. Также мы пересмотрели соединение двигателя и шестерни на салазках напрямую, а потому мы заменили эту систему на цепной ход.

Романов Александр

День 33 4.02.2015. 16:00-18:00.

Задачи

Ход работы

Хороший “автоном”

В автономном периоде робот может набрать достаточно много, главное, чтобы программа работала. Сегодня мы приступили к созданию таковой. мы решили сделать его для версии с гироскопом, а также попытаться настроить его на езду по маяку. Также мы запрограммировали робота на съезд с рампы, захват лузы и перенос ее в парковочную зону.



Гришин Кирилл


День 34 10.02.2015. 14:00-18:00.

Задачи

Ход работы

Подготовка к соревнованиям

Сегодня мы собрали и упаковали нашего робота, а также сложили все деталив коробку. Завтра мы вылетаем на следующий этап соревнований FTC – “РобоФест”



Тюпалов Вадим

Приложения

Приложение 1

void turn(float angle) {

       float val1=0,val2=0,val3=0;

       float deltaT = 0;

       ClearTimer(T1);

       while(abs(val3)-abs(angle) < -2.5){

               wait1Msec(1);

               if(angle < 0) {

                       move(85, -85);

НЕ нашли? Не то? Что вы ищете?

        }

        else if(angle > 0){

                       move(-85, 85);

        }

        val1 = HTGYROreadRot(GyroSensor);

               deltaT = time1[T1];

               ClearTimer(T1);

               val3 += val1*deltaT/1000;

               sonBuf = val3;

               deltaT = 0;

       }

       stopMove();

}

void onewheelturn(float angle, bool front) {

       float val1=0,val2=0,val3=0;

       float deltaT = 0;

       ClearTimer(T1);

       while(abs(val3)-abs(angle)< 0){

               wait1Msec(1);

               if (angle < 0) {

                       if(front) {

                       move(-85, 0);

                       }

                       else {

                               move(0, 85);

                       }

        }

               else {

                       if(front) {

                 move(0, -85);

         }

         else {

                 move(85, 0);

         }

  }

               val1 = HTGYROreadRot(GyroSensor);

               deltaT = time1[T1];

               ClearTimer(T1);

               val3+=val1*deltaT/1000;

               sonBuf =val3;

               deltaT = 0;

       }

       stopMove();

}

Приложение 2


#pragma config(Hubs, S1, HTMotor, HTMotor, HTServo, none)
#pragma config(Sensor, S1, , sensorI2CMuxController)
#pragma config(Motor, mtr_S1_C1_1, Metla, tmotorTetrix, openLoop)
#pragma config(Motor, mtr_S1_C1_2, RightMove, tmotorTetrix, openLoop, reversed)
#pragma config(Motor, mtr_S1_C2_1, UpDown, tmotorTetrix, openLoop, reversed)
#pragma config(Motor, mtr_S1_C2_2, LeftMove, tmotorTetrix, openLoop)
#pragma config(Servo, srvo_S1_C3_1, servo1, tServoStandard)
#pragma config(Servo, srvo_S1_C3_2, servo2, tServoStandard)
#pragma config(Servo, srvo_S1_C3_3, servo3, tServoStandard)
#pragma config(Servo, srvo_S1_C3_4, servo4, tServoNone)
#pragma config(Servo, srvo_S1_C3_5, servo5, tServoNone)
#pragma config(Servo, srvo_S1_C3_6, servo6, tServoNone)

#include "joystickdriver. c"
#include "drivers/hitechnic-angle. h"

short dl;
task main()
{
short SVal=64;
short CatchVal = 64;
//HTANGresetAccumulatedAngle(HTang);

PlaySound(soundBeepBeep);
while (true){
getJoystickSettings(joystick);
dl=joystick. joy1_y1;
/*--------MOVE------*/
if(joystick. joy1_Buttons == 32)
{
motor[LeftMove] = abs(joystick. joy1_y1)<10 ? 0 : joystick. joy1_y1 * 50 / 128;
motor[RightMove] = abs(joystick. joy1_y2)<10 ? 0 : joystick. joy1_y2 * 50 / 128;

}
else {
motor[LeftMove] = abs(joystick. joy1_y1)<10 ? 0 : joystick. joy1_y1 * 100 / 128;
motor[RightMove] = abs(joystick. joy1_y2)<10 ? 0 : joystick. joy1_y2 * 100 / 128;
}
/*---------UpDw--------*/
motor[UpDown] = - joystick. joy2_y2/1.28;
//motor[UpDw] = abs(joystick. joy2_y1)<10 ? 0 : joystick. joy2_y1 / 128 * 100;
/*-------metla--------*/
if (joy1Btn(1) == 1) motor[Metla] = 100;
else if (joy1Btn(2) == 1) motor[Metla] = 0;
else if (joy1Btn(3) == 1) motor[Metla] = -100;
/*----cathc----*//*
switch( joystick. joy1_TopHat){
case 0: servo[servo1] = 50; break;
case 1: servo[servo2] = 0; break;
case 2: servo[servo3] = 125; break;
}*/
switch(joystick. joy2_TopHat){
case 0:
CatchVal = 256;
break;
case 2:
SVal = 50;
break;
case 4:
CatchVal = 0;
break;
case 6:
SVal = 200;
break;
}
if (joystick. joy2_Buttons == 32) PlayImmediateTone(25,25);
servo[servo1] = CatchVal;
servo[servo2] = SVal;
servo[servo3] = 256-Sval;
}
}

Приложение 3

Для утяжеления робота были использованы стандартные 200 граммовые грузы, но данный груз был модифицирован на фрезеровочном станке путем просверливания в нем отверстия для закрепления на роботе


Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4