Example #1
0
void		change_speed(t_lidar *lidar)
{
  lidar->wheels = 0;
  wheels(lidar->wheels, lidar);
  if (lidar->speed < 0.6 && lidar->middle > 1800)
    lidar->speed += 0.1;
  else if (lidar->speed > 0.3 && lidar->middle < 1800)
    lidar->speed -= 0.1;
  forward(lidar->speed, lidar);
}
Example #2
0
void		turn(t_lidar *lidar)
{
  if (lidar->left - lidar->right > 0 && lidar->middle_right <= 700)
    {
      if (lidar->wheels + 0.1 <= 0.4)
	lidar->wheels += 0.1;
      wheels(lidar->wheels, lidar);
      if (lidar->speed - 0.1 >= 0.2)
	lidar->speed -= 0.1;
      forward(lidar->speed, lidar);
    }
  else if (lidar->left - lidar->right < 0 && lidar->middle_left <= 700)
    {
      if (lidar->wheels - 0.1 >= -0.4)
	lidar->wheels -= 0.1;
      wheels(lidar->wheels, lidar);
      if (lidar->speed - 0.1 >= 0.2)
	lidar->speed -= 0.1;
      forward(lidar->speed, lidar);
    }
  else
    change_speed(lidar);
}
Example #3
0
task usercontrol()
{
	lawnswap = 0;
	lawnchair[0] = 0;
	lawnchair[1] = 0;
	motor[port2] = 0;
	motor[port3] = 0;
	motor[port4] = 0;
	motor[port5] = 0;
	motor[port6] = 0;
	motor[port7] = 0;
	motor[port8] = 0;
	motor[port9] = 0;

	//////////////////////////make this less stupid///////
	int egg;
	int lel;
	int past1;
	int past2;
	int enc;
	int enc2;
	int enc3;//encoder
	string sneakydeaky;
	float cisstupid;
	bLCDBacklight = true;
	clk = 0;
	enc = nMotorEncoder[port8];
	int batdivk[2]; //batterydividedby
	string line1; //line1 of lcd
	string line2; //line2 of lcd
	lawnswap = 0;
	while(true)
	{
		batdivk[0] = nImmediateBatteryLevel;
		batdivk[1] = SensorValue[in1];
		if(lawnswap == 1)
		{
			line1 = "MANUAL MODE"; //or Battery or batdivk[0];
			lel = 1;
			line2 = enc;
		}
		else
		{
			if(lel == 1)
			{
				if(lawnswap2 == 0)
				{
					line1 = "PID";
					lel = 0;
				}
				else if(lawnswap2 == 2)
				{
					line1 = "Driver Assisted";
					lel = 0;
				}
			}
			if(vexRT[Btn8U] == 1)
			{
				line1 = "HIGH";
			}
			if(vexRT[Btn8L] == 1)
			{
				line1 = "MEDIUM";
			}
			if(vexRT[Btn8D] == 1)
			{
				line1 = "LOW";
			}
			if(vexRT[Btn8R] == 1)
			{
				line1 = "OFF";
			}

		}
		line2 = enc;  //enc
		if(nPgmTime - clk >= 70)
		{
			clk = nPgmTime;
			past2 = past1;
			past1 = nMotorEncoder[port8];
			enc = nMotorEncoder[port8] - past2;
			if(enc < ideal)
			{
				lawnchair[0] ++;
			}
			if(enc > ideal)
			{
				lawnchair[0]--;
			}
		}
		if(lawnswap2 == 2)
		{
			if(enc <= enc3 && enc >= enc2)
			{
				motor[port6] = 90;
				motor[port7] = 90;
			}
			else
			{
				motor[port6] = 0;
				motor[port7] = 0;
			}
		}
		//why
		egg = nLCDButtons;
		if (egg == 7) {
			line1 = "Nick is dumb.";
		}
		else if (egg == 4) {
			cisstupid = batdivk[0]/1000.;
			line1 = cisstupid;
		}
		else if(egg == 2) {
			if(bVEXNETActive == true){
				line1 = "Vexnet is on.";
			}
			else {
				line1 =  "Vexnet is off.";
			}
		}
		else if(egg == 1) {
			line1 = lawnchair[0];
		}
		else {
		}
		displayLCDCenteredString(0, line1);
		displayLCDCenteredString(1, line2);
		//////////////////////////////////////////////////////
		intake();
		wheels();
		launcher();
		feedback();
		rollers();
	}
}
Example #4
0
int main(int argc, char *argv[])
{
    QGuiApplication app(argc, argv);

    qmlRegisterType<Graph>("Graph", 1, 0, "Graph");

    QQmlApplicationEngine engine;
    engine.load(QUrl(QStringLiteral("qrc:/main.qml")));

    app.setWindowIcon(QIcon(":/content/icon.png"));

    QMLHandlerCppSide alertLamp(engine.rootObjects()[0], "alertLamp");
    QMLHandlerCppSide lineSens(engine.rootObjects()[0], "lineSens");
    QMLHandlerCppSide textAccelX(engine.rootObjects()[0], "textAccelX");
    QMLHandlerCppSide textAccelY(engine.rootObjects()[0], "textAccelY");
    QMLHandlerCppSide textAccelZ(engine.rootObjects()[0], "textAccelZ");
    QMLHandlerCppSide textGyroX(engine.rootObjects()[0], "textGyroX");
    QMLHandlerCppSide textGyroY(engine.rootObjects()[0], "textGyroY");
    QMLHandlerCppSide textGyroZ(engine.rootObjects()[0], "textGyroZ");
    QMLHandlerCppSide textCurStatus(engine.rootObjects()[0], "textCurStatus");
    QMLHandlerCppSide comboSetStatus(engine.rootObjects()[0], "comboSetStatus");
    QMLHandlerCppSide textCurSpeed(engine.rootObjects()[0], "textCurSpeed");
    QMLHandlerCppSide editSetSpeed(engine.rootObjects()[0], "editSetSpeed");
    QMLHandlerCppSide wheels(engine.rootObjects()[0], "wheels");
    QMLHandlerCppSide carAccelY(engine.rootObjects()[0], "carAccelY");
    QMLHandlerCppSide carGyroX(engine.rootObjects()[0], "carGyroX");
    QMLHandlerCppSide carGyroY(engine.rootObjects()[0], "carGyroY");
    QMLHandlerCppSide carGyroZ(engine.rootObjects()[0], "carGyroZ");
    QMLHandlerCppSide statusHistory(engine.rootObjects()[0], "statusHistory");
    QMLHandlerCppSide speedGraph(engine.rootObjects()[0], "speedGraph");
    QMLHandlerCppSide buttonConDiscon(engine.rootObjects()[0], "buttonConDiscon");
    QMLHandlerCppSide buttonSendStatus(engine.rootObjects()[0], "buttonSendStatus");
    QMLHandlerCppSide buttonSendSpeed(engine.rootObjects()[0], "buttonSendSpeed");
    QMLHandlerCppSide buttonCarSelfTest(engine.rootObjects()[0], "buttonCarSelfTest");

    GuiHandler guihandle(&alertLamp, &lineSens, &textAccelX, &textAccelY, &textAccelZ, &textGyroX, &textGyroY, &textGyroZ, &textCurStatus, &comboSetStatus, &textCurSpeed, &editSetSpeed, &wheels, &carAccelY, &carGyroX, &carGyroY, &carGyroZ, &statusHistory, &speedGraph, &buttonConDiscon, &buttonSendStatus, &buttonSendSpeed, &buttonCarSelfTest);
    Robot mikrobi;

    QObject::connect(&guihandle, SIGNAL(buttonConClicked()), &mikrobi, SLOT(connect()));
    QObject::connect(&guihandle, SIGNAL(buttonDisClicked()), &mikrobi, SLOT(disconnect()));
    QObject::connect(&guihandle, SIGNAL(buttonCarSelfTestClicked()), &mikrobi, SLOT(selfTest()));
    QObject::connect(&guihandle, SIGNAL(buttonSendStatusClicked(QString)), &mikrobi, SLOT(status(QString)));
    QObject::connect(&guihandle, SIGNAL(buttonSendSpeedClicked(float)), &mikrobi, SLOT(speed(float)));

    QObject::connect(&mikrobi, SIGNAL(connected()), &guihandle, SLOT(robotConnected()));
    QObject::connect(&mikrobi, SIGNAL(setAlert(int)), &guihandle, SLOT(setAlert(int)));
    QObject::connect(&mikrobi, SIGNAL(disconnected()), &guihandle, SLOT(robotDisconnected()));

    QObject::connect(&mikrobi, SIGNAL(setLedStrip(QVarLengthArray<bool>)), &guihandle, SLOT(setLedStrip(QVarLengthArray<bool>)));
    QObject::connect(&mikrobi, SIGNAL(setTextAccelX(float)), &guihandle, SLOT(setTextAccelX(float)));
    QObject::connect(&mikrobi, SIGNAL(setTextAccelY(float)), &guihandle, SLOT(setTextAccelY(float)));
    QObject::connect(&mikrobi, SIGNAL(setTextAccelZ(float)), &guihandle, SLOT(setTextAccelZ(float)));
    QObject::connect(&mikrobi, SIGNAL(setTextGyroX(float)), &guihandle, SLOT(setTextGyroX(float)));
    QObject::connect(&mikrobi, SIGNAL(setTextGyroY(float)), &guihandle, SLOT(setTextGyroY(float)));
    QObject::connect(&mikrobi, SIGNAL(setTextGyroZ(float)), &guihandle, SLOT(setTextGyroZ(float)));
    QObject::connect(&mikrobi, SIGNAL(setTextStatus(QString)), &guihandle, SLOT(setTextStatus(QString)));
    QObject::connect(&mikrobi, SIGNAL(setTextSpeed(float)), &guihandle, SLOT(setTextSpeed(float)));
    QObject::connect(&mikrobi, SIGNAL(setWheels(QVarLengthArray<float>, const float)), &guihandle, SLOT(setWheels(QVarLengthArray<float>, const float)));
    QObject::connect(&mikrobi, SIGNAL(setCarAccelY(QVarLengthArray<float>, float)), &guihandle, SLOT(setCarAccelY(QVarLengthArray<float>, float)));
    QObject::connect(&mikrobi, SIGNAL(setCarGyroX(float)), &guihandle, SLOT(setCarGyroX(float)));
    QObject::connect(&mikrobi, SIGNAL(setCarGyroY(float)), &guihandle, SLOT(setCarGyroY(float)));
    QObject::connect(&mikrobi, SIGNAL(setCarGyroZ(float)), &guihandle, SLOT(setCarGyroZ(float)));
    QObject::connect(&mikrobi, SIGNAL(drawSpeedGraph(float)), &guihandle, SLOT(drawSpeedGraph(float)));
    QObject::connect(&mikrobi, SIGNAL(setTextStatus(QString)), &guihandle, SLOT(addStatusHistory(QString)));

    return app.exec();
}