From 9b52e0a9dc0612f94721e03f1fd9ba146819635c Mon Sep 17 00:00:00 2001 From: Blboun3 <62328614+Blboun3@users.noreply.github.com> Date: Thu, 9 Nov 2023 15:24:40 +0100 Subject: [PATCH] first commit, Denk proof backuping --- .vscode/c_cpp_properties.json | 45 ++++++ .vscode/settings.json | 49 ++++++ .vscode/tasks.json | 59 ++++++++ .vscode/tasks.json.old | 42 ++++++ LICENSE | 21 +++ Makefile.inc | 12 ++ app | Bin 0 -> 228200 bytes app.cfg | 19 +++ app.cpp | 277 ++++++++++++++++++++++++++++++++++ app.h | 106 +++++++++++++ keybindings.json | 28 ++++ 11 files changed, 658 insertions(+) create mode 100644 .vscode/c_cpp_properties.json create mode 100644 .vscode/settings.json create mode 100644 .vscode/tasks.json create mode 100644 .vscode/tasks.json.old create mode 100644 LICENSE create mode 100644 Makefile.inc create mode 100644 app create mode 100644 app.cfg create mode 100644 app.cpp create mode 100644 app.h create mode 100644 keybindings.json diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json new file mode 100644 index 0000000..fdee005 --- /dev/null +++ b/.vscode/c_cpp_properties.json @@ -0,0 +1,45 @@ +{ + "configurations": [ + { + "name": "Mac", + "includePath": [ + "/usr/include", + "/usr/local/include" + ], + "browse": { + "limitSymbolsToIncludedHeaders": true, + "databaseFilename": "" + }, + "macFrameworkPath": [ + "/System/Library/Frameworks", + "/Library/Frameworks" + ], + "intelliSenseMode": "macos-clang-x64" + }, + { + "name": "Linux", + "includePath": [ + "/usr/include", + "/usr/local/include" + ], + "browse": { + "limitSymbolsToIncludedHeaders": true, + "databaseFilename": "" + }, + "intelliSenseMode": "linux-gcc-x64" + }, + { + "name": "Win32", + "includePath": [ + "C:/RB3rt/sdk/common/ev3api", + "C:/RB3rt/sdk/common/library/lib-ev3cxx" + ], + "browse": { + "limitSymbolsToIncludedHeaders": true, + "databaseFilename": "" + }, + "intelliSenseMode": "windows-msvc-x64" + } + ], + "version": 4 +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..2adebfd --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,49 @@ +{ + "files.insertFinalNewline": true, + "files.associations": { + "array": "cpp", + "atomic": "cpp", + "*.tcc": "cpp", + "cctype": "cpp", + "clocale": "cpp", + "cmath": "cpp", + "cstdarg": "cpp", + "cstddef": "cpp", + "cstdint": "cpp", + "cstdio": "cpp", + "cstdlib": "cpp", + "ctime": "cpp", + "cwchar": "cpp", + "cwctype": "cpp", + "deque": "cpp", + "unordered_map": "cpp", + "vector": "cpp", + "exception": "cpp", + "algorithm": "cpp", + "functional": "cpp", + "iterator": "cpp", + "memory": "cpp", + "memory_resource": "cpp", + "numeric": "cpp", + "optional": "cpp", + "random": "cpp", + "string": "cpp", + "string_view": "cpp", + "system_error": "cpp", + "tuple": "cpp", + "type_traits": "cpp", + "utility": "cpp", + "fstream": "cpp", + "initializer_list": "cpp", + "iosfwd": "cpp", + "istream": "cpp", + "limits": "cpp", + "new": "cpp", + "ostream": "cpp", + "sstream": "cpp", + "stdexcept": "cpp", + "streambuf": "cpp", + "cinttypes": "cpp", + "typeinfo": "cpp" + } +} diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..c0ba2ff --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,59 @@ +{ + // Support task for EV3RT and EV3CXX + // Author: Jaroslav Páral (jarekparal) + "version": "2.0.0", + "tasks": [ + { + "label": "build", + "type": "shell", + "command": "C:\\RB3rt\\Make.bat", + "args": [ + "-b", + "${fileDirname}" + ], + "problemMatcher": [], + "group": { + "_id": "build", + "isDefault": false + } + }, + { + "label": "upload", + "type": "shell", + "command": "C:\\RB3rt\\Make.bat", + "args": [ + "-u" + ], + "problemMatcher": [] + }, + { + "label": "make", + "type": "shell", + "command": "C:\\RB3rt\\Make.bat", + "args": [ + "-m", + "${fileDirname}" + ], + "problemMatcher": [] + }, + { + "label": "lorris", + "type": "shell", + "command": "c:\\Lorris\\Lorris.exe", + "args": [ + "" + ], + "problemMatcher": [] + }, + { + "label": "help", + "type": "shell", + "command": "start", + "args": [ + "", + "https://rb3rt.readthedocs.org" + ], + "problemMatcher": [] + } + ] +} diff --git a/.vscode/tasks.json.old b/.vscode/tasks.json.old new file mode 100644 index 0000000..33d566e --- /dev/null +++ b/.vscode/tasks.json.old @@ -0,0 +1,42 @@ +{ + // Support task for EV3RT and EV3CXX + // Author: Jaroslav Páral (jarekparal) + "version": "0.1.0", + "tasks": [ + { + "taskName": "build", + "command": "C:\\RB3rt\\Make.bat", + "isShellCommand": true, + "args": ["-b", "${fileDirname}"], + "showOutput": "always" + }, + { + "taskName": "upload", + "command": "C:\\RB3rt\\Make.bat", + "isShellCommand": true, + "args": ["-u"], + "showOutput": "always" + }, + { + "taskName": "make", + "command": "C:\\RB3rt\\Make.bat", + "isShellCommand": true, + "args": ["-m", "${fileDirname}"], + "showOutput": "always" + }, + { + "taskName": "lorris", + "command": "c:\\Lorris\\Lorris.exe", + "isShellCommand": true, + "args": [""], + "showOutput": "always" + }, + { + "taskName": "help", + "command": "start", + "isShellCommand": true, + "args": ["", "https://rb3rt.readthedocs.org"], + "showOutput": "always" + } + ] +} \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..fa67c53 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 Jaroslav Páral + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Makefile.inc b/Makefile.inc new file mode 100644 index 0000000..d9f5de8 --- /dev/null +++ b/Makefile.inc @@ -0,0 +1,12 @@ +APPL_COBJS += + +APPL_CXXOBJS += + +SRCLANG := c++ + +ifdef CONFIG_EV3RT_APPLICATION + +# Include libraries +include $(EV3RT_SDK_LIB_DIR)/lib-ev3cxx/Makefile + +endif diff --git a/app b/app new file mode 100644 index 0000000000000000000000000000000000000000..6aae6a09afdc879133b3c0dc15c0b1ab60ee0b24 GIT binary patch literal 228200 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 +#include +#include + +/* +Change notes: + +0.4.0 - 'HELGA' (#50) +Fixed + +0.3.0 - 'INGRID' (#42) +Some weird magic in calculations of motor speeds + +0.2.7 - 'ERIKA' (#36) +Created function run_short for picking up all cubes on short sides + +0.2.5 - 'ERIKA' (#27) +Added "boot-up melody" +Added btnEnter.waitForClick() for program start +Fixed display printouts +HW change: gearbox on the left gear changed to 1:1 + +0.2.0 - 'ERIKA' (#15) +Tested functions for opening and closing doors, updated speeds +Added idealMPWRS - base MPWRS to update back to, testing with different speeds for left and right wheels + +0.1.1 - 'ERIKA' (#2) +Re-created structs for version, MPWRS, note +Re-created function for opening and closing door and function for generating Version ID +*/ + +/* Structure to hole current version (major, minor, patch, codename, id, release_date) + MAJOR - Major version number + MINOR - Minor changes in code + PATCH - Mostly just for testing + ID - Increment every time with new version + CODENAME - (String) Version name + RELEASE_DATE - when was current version released +*/ +struct version +{ + int id; + int major; + int minor; + int patch; + std::tm relDate; + const char *codename; +}; + +// Structure to hold motor powers (left and right) +struct MPWRS +{ + int lMotorPWR; + int rMotorPWR; +}; + +// Structure to hold notes +struct note +{ + uint16_t frequency; + int32_t duration; +}; + +// Function to create new program version +version createVersion(int versionID, const char *codename, int major, int minor, int patch, int day, int month, int year, int hour, int minute) +{ + version retVersion; + retVersion.id = versionID; + retVersion.major = major; + retVersion.minor = minor; + retVersion.patch = patch; + retVersion.codename = codename; + retVersion.relDate.tm_sec = 0; + retVersion.relDate.tm_min = minute; + retVersion.relDate.tm_hour = hour; + retVersion.relDate.tm_mday = day; + retVersion.relDate.tm_mon = month; + retVersion.relDate.tm_year = year - 1900; + retVersion.relDate.tm_isdst = 0; + std::mktime(&retVersion.relDate); + + return retVersion; +} + +// Function to open door +void open_door(ev3cxx::Motor hinge) +{ + hinge.onForDegrees(-25, 200); +} + +// Function to close door +void close_door(ev3cxx::Motor hinge) +{ + hinge.onForDegrees(25, 200); +} + +/* +Function to pick up all cubes on shorter side +return true if ran till the end and false if stopped by middle button +*/ +bool run_short_side(ev3cxx::MotorTank motors, MPWRS idealMPWRS, ev3cxx::GyroSensor gyro) +{ + const int LEFT_THRESHOLD = -3; + const int RIGHT_THRESHOLD = 3; + const int CORRECTION_MULTIPLIER = 3; + const int CYCLE_LIMIT = 0;//75; + + gyro.resetHard(); + ev3cxx::BrickButton btnEnter(ev3cxx::BrickButtons::ENTER); // Middle button + MPWRS motor_powers; + // Reset both motor's powers + motor_powers.lMotorPWR = idealMPWRS.lMotorPWR; + motor_powers.rMotorPWR = idealMPWRS.rMotorPWR; + + int lCounter = 0; + int rCounter = 0; + + bool run = true; + int cycleCounter = 0; + int lastRProblem = 0; + int lastLProblem = 0; + while (run) + { + + motors.on(motor_powers.lMotorPWR, motor_powers.rMotorPWR); + tslp_tsk(50); + + + // Reset both motor's powers + motor_powers.lMotorPWR = idealMPWRS.lMotorPWR; + motor_powers.rMotorPWR = idealMPWRS.rMotorPWR; + + // Get power of both motors + int lPower = motors.leftMotor().currentPower(); + int rPower = motors.rightMotor().currentPower(); + int angle = gyro.angle(); + + ev3cxx::display.format(4, "Left motor: % \nRight motor: % \nCycles: % \nAngle: % ") % lPower % rPower % cycleCounter % angle; + + // Emergency break using middle button (BTN_ENTER) + if (btnEnter.isPressed()) + { + run = false; + return false; + } + + // Check gyro angle and change driving speed to fix the angle + // To the left + if (angle > LEFT_THRESHOLD) { + //ev3_speaker_play_tone(NOTE_A5, 250); + int correction = angle - LEFT_THRESHOLD; + motor_powers.lMotorPWR += correction * CORRECTION_MULTIPLIER; + ev3_speaker_play_tone(correction*1000,50); + // Check if the motor is stuck + if(lPower == 0){ + ev3_speaker_play_tone(NOTE_A5,250); + + // Set lastProblem na cycleCounter because there is a problem + lastLProblem = cycleCounter; + + // Check if lastProblem was in previous cycle + if(cycleCounter - 1 == lastLProblem){ + lCounter += 1; + // If 5 problems occured than try to fix the problem + if(lCounter == 6){ + ev3_speaker_play_tone(NOTE_C4, 250); + ev3cxx::setColor(RED); + } + // Reset counter + } else { + lCounter = 0; + } + + } + + // To the right + } else if (angle < RIGHT_THRESHOLD) { + //ev3_speaker_play_tone(NOTE_A4, 250); + int correction = angle - RIGHT_THRESHOLD; + motor_powers.rMotorPWR += correction * CORRECTION_MULTIPLIER; + ev3_speaker_play_tone(correction*1000,50); + // Check if the motor is stuck + if(rPower == 0){ + ev3_speaker_play_tone(NOTE_A4,250); + + // Set lastProblem na cycleCounter because there is a problem + lastRProblem = cycleCounter; + + // Check if lastProblem was in previous cycle + if(cycleCounter - 1 == lastRProblem){ + rCounter += 1; + // If 5 problems occured than try to fix the problem + if(rCounter == 6){ + ev3_speaker_play_tone(NOTE_C5, 250); + ev3cxx::setColor(ORANGE); + } + // Reset counter + } else { + rCounter = 0; + } + } + } + + cycleCounter++; + + if(cycleCounter == CYCLE_LIMIT) { + run = false; + } + } + return true; +} + + +void main_task(intptr_t unused) +{ + + // Create version info + // version createVersion(int versionID, const char *codename, int major, int minor, int patch, int day, int month, int year, int hour, int minute) + const version VERSION = createVersion(51, "HELGA", 0, 4, 0, 8, 11, 2023, 15, 40); + + // Set-up screen + ev3cxx::display.resetScreen(); + ev3cxx::display.setFont(EV3_FONT_MEDIUM); + + // Print version information on screen + ev3cxx::display.format(" DOBREMYSL\nVERSION: % .% .% #% \nNAME: % ") % VERSION.major % VERSION.minor % VERSION.patch % VERSION.id % VERSION.codename; + + // Play starting melody + ev3_speaker_set_volume(100); + ev3_speaker_play_tone(NOTE_C5, 400); + tslp_tsk(500); + ev3_speaker_play_tone(NOTE_F5, 400); + tslp_tsk(500); + ev3_speaker_play_tone(NOTE_G5, 400); + tslp_tsk(500); + ev3_speaker_play_tone(NOTE_A5, 100); + tslp_tsk(200); + ev3_speaker_play_tone(NOTE_F5, 650); + tslp_tsk(950); + ev3_speaker_play_tone(NOTE_F4, 75); + tslp_tsk(110); + ev3_speaker_play_tone(NOTE_F4, 75); + tslp_tsk(110); + ev3_speaker_play_tone(NOTE_F4, 75); + tslp_tsk(200); + + // Set up motor powers + MPWRS idealMPWRS; + idealMPWRS.lMotorPWR = 87; + idealMPWRS.rMotorPWR = 50; + + MPWRS motor_powers; + motor_powers.lMotorPWR = idealMPWRS.lMotorPWR; + motor_powers.rMotorPWR = idealMPWRS.rMotorPWR; + + // Set up motors + ev3cxx::Motor hinge(ev3cxx::MotorPort::A, ev3cxx::MotorType::LARGE); // Hinge motor + ev3cxx::MotorTank motors(ev3cxx::MotorPort::B, ev3cxx::MotorPort::C); // Tank motors + ev3cxx::GyroSensor gyro(ev3cxx::SensorPort::S1); // gyro sensor + + // Set up buttons + ev3cxx::BrickButton btnEnter(ev3cxx::BrickButtons::ENTER); // Middle button + + // Start program + btnEnter.waitForClick(); + + //turn_left(motors); + bool side_1 = run_short_side(motors, motor_powers, gyro); + if(!side_1) { + return; + } else { + ev3_speaker_play_tone(NOTE_G5, 500); + return; + } +} diff --git a/app.h b/app.h new file mode 100644 index 0000000..a226263 --- /dev/null +++ b/app.h @@ -0,0 +1,106 @@ +/* + * TOPPERS/EV3RT + * + * Copyright (C) 2016 by Yixiao Li + * + * The above copyright holders grant permission gratis to use, + * duplicate, modify, or redistribute (hereafter called use) this + * software (including the one made by modifying this software), + * provided that the following four conditions (1) through (4) are + * satisfied. + * + * (1) When this software is used in the form of source code, the above + * copyright notice, this use conditions, and the disclaimer shown + * below must be retained in the source code without modification. + * + * (2) When this software is redistributed in the forms usable for the + * development of other software, such as in library form, the above + * copyright notice, this use conditions, and the disclaimer shown + * below must be shown without modification in the document provided + * with the redistributed software, such as the user manual. + * + * (3) When this software is redistributed in the forms unusable for the + * development of other software, such as the case when the software + * is embedded in a piece of equipment, either of the following two + * conditions must be satisfied: + * + * (a) The above copyright notice, this use conditions, and the + * disclaimer shown below must be shown without modification in + * the document provided with the redistributed software, such as + * the user manual. + * + * (b) How the software is to be redistributed must be reported to the + * TOPPERS Project according to the procedure described + * separately. + * + * (4) The above copyright holders and the TOPPERS Project are exempt + * from responsibility for any type of damage directly or indirectly + * caused from the use of this software and are indemnified by any + * users or end users of this software from any and all causes of + * action whatsoever. + * + * THIS SOFTWARE IS PROVIDED "AS IS." THE ABOVE COPYRIGHT HOLDERS AND + * THE TOPPERS PROJECT DISCLAIM ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, ITS APPLICABILITY TO A PARTICULAR + * PURPOSE. IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS AND THE + * TOPPERS PROJECT BE LIABLE FOR ANY TYPE OF DAMAGE DIRECTLY OR + * INDIRECTLY CAUSED FROM THE USE OF THIS SOFTWARE. + */ + +/* + * Header file of sample program + */ + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Common header files + */ +#include "ev3api.h" +#include "target_test.h" + +/** + * Task priorities (smaller number has higher priority) + */ +#define PRIORITY_MAIN_TASK (TMIN_APP_TPRI + 1) +/* Main task priority */ +/* Must by higher then HIGH_PRIORITY */ + +#define HIGH_PRIORITY (TMIN_APP_TPRI + 2) +#define MID_PRIORITY (TMIN_APP_TPRI + 3) +#define LOW_PRIORITY (TMIN_APP_TPRI + 4) + +#define PRIORITY_PRD_TSK_1 TMIN_APP_TPRI +#define PRIORITY_PRD_TSK_2 TMIN_APP_TPRI + +/** + * Task periods in ms + */ +//#define PERIOD_PRD_TSK_1 (100) +//#define PERIOD_PRD_TSK_2 (500) + +/** + * Default task stack size in bytes + */ +#ifndef STACK_SIZE +#define STACK_SIZE 4096 +#endif + +/** + * Prototypes for configuration + */ +#ifndef TOPPERS_MACRO_ONLY + +extern void main_task(intptr_t); +// extern void periodic_task_1(intptr_t); +// extern void periodic_task_2(intptr_t); + +// extern void task_activator(intptr_t tskid); + +#endif /* TOPPERS_MACRO_ONLY */ + +#ifdef __cplusplus +} +#endif diff --git a/keybindings.json b/keybindings.json new file mode 100644 index 0000000..0e02062 --- /dev/null +++ b/keybindings.json @@ -0,0 +1,28 @@ +// Place your key bindings in this file to overwrite the defaults +[ + { + "key": "f5", + "command": "workbench.action.tasks.runTask", + "args": "build" + }, + { + "key": "f6", + "command": "workbench.action.tasks.runTask", + "args": "upload" + }, + { + "key": "f7", + "command": "workbench.action.tasks.runTask", + "args": "make" + }, + { + "key": "f8", + "command": "workbench.action.tasks.runTask", + "args": "lorris" + }, + { + "key": "f9", + "command": "workbench.action.tasks.runTask", + "args": "help" + } +] \ No newline at end of file