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); }
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); }
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(); } }
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(); }