From 64bde264f1fec330e6b4c8020d553437bc3039a5 Mon Sep 17 00:00:00 2001 From: Martin Aronsen Date: Wed, 22 Oct 2025 11:47:12 +0200 Subject: [PATCH] lag ev3 prosjekt --- .DS_Store | Bin 6148 -> 6148 bytes dokumenter/prosjektplan-2025-team-13.docx | Bin 40447 -> 41577 bytes py/src/.gitignore | 3 +++ py/src/.vscode/extensions.json | 13 +++++++++++++ py/src/.vscode/launch.json | 15 +++++++++++++++ py/src/.vscode/settings.json | 7 +++++++ py/src/main.py | 20 +++++++++++++++++++- 7 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 py/src/.gitignore create mode 100644 py/src/.vscode/extensions.json create mode 100644 py/src/.vscode/launch.json create mode 100644 py/src/.vscode/settings.json diff --git a/.DS_Store b/.DS_Store index dd90b4e62f9f88cb6152868ec1343396929587e0..2931f0f9382e4fcbed2963f9b198c96557db45e0 100644 GIT binary patch delta 20 ccmZoMXfc?uhLLgO#xVAY4J@14IsWnk08aS_NdN!< delta 18 acmZoMXfc?uX5+>%_K6Lwo7p-3@&f=#ng>V# diff --git a/dokumenter/prosjektplan-2025-team-13.docx b/dokumenter/prosjektplan-2025-team-13.docx index 1532b9ada6db0954bce97a1e94408f225f598974..594f1797b654caf5c95d82ebfd5d0e071b8340ec 100644 GIT binary patch delta 25196 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 F{tt!wW@7*V diff --git a/py/src/.gitignore b/py/src/.gitignore new file mode 100644 index 0000000..00f2d38 --- /dev/null +++ b/py/src/.gitignore @@ -0,0 +1,3 @@ +__pycache__/ +*.pyc +.venv/ diff --git a/py/src/.vscode/extensions.json b/py/src/.vscode/extensions.json new file mode 100644 index 0000000..f8f1a44 --- /dev/null +++ b/py/src/.vscode/extensions.json @@ -0,0 +1,13 @@ +{ + // See http://go.microsoft.com/fwlink/?LinkId=827846 to learn about workspace recommendations. + // Extension identifier format: ${publisher}.${name}. Example: vscode.csharp + + // List of extensions which should be recommended for users of this workspace. + "recommendations": [ + "lego-education.ev3-micropython" + ], + // List of extensions recommended by VS Code that should not be recommended for users of this workspace. + "unwantedRecommendations": [ + "ms-python.python" + ] +} \ No newline at end of file diff --git a/py/src/.vscode/launch.json b/py/src/.vscode/launch.json new file mode 100644 index 0000000..d933aeb --- /dev/null +++ b/py/src/.vscode/launch.json @@ -0,0 +1,15 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "Download and Run", + "type": "ev3devBrowser", + "request": "launch", + "program": "/home/robot/${workspaceRootFolderName}/main.py", + "interactiveTerminal": false + } + ] +} diff --git a/py/src/.vscode/settings.json b/py/src/.vscode/settings.json new file mode 100644 index 0000000..b0968c1 --- /dev/null +++ b/py/src/.vscode/settings.json @@ -0,0 +1,7 @@ +// Place your settings in this file to overwrite default and user settings. +{ + "files.eol": "\n", + "debug.openDebug": "neverOpen", + "python.linting.enabled": false, + "python.languageServer": "None" +} diff --git a/py/src/main.py b/py/src/main.py index d1cb74f..9e9700f 100644 --- a/py/src/main.py +++ b/py/src/main.py @@ -1,2 +1,20 @@ +#!/usr/bin/env pybricks-micropython +from pybricks.hubs import EV3Brick +from pybricks.ev3devices import (Motor, TouchSensor, ColorSensor, + InfraredSensor, UltrasonicSensor, GyroSensor) +from pybricks.parameters import Port, Stop, Direction, Button, Color +from pybricks.tools import wait, StopWatch, DataLog +from pybricks.robotics import DriveBase +from pybricks.media.ev3dev import SoundFile, ImageFile -print("Hello world.") \ No newline at end of file + +# This program requires LEGO EV3 MicroPython v2.0 or higher. +# Click "Open user guide" on the EV3 extension tab for more information. + + +# Create your objects here. +ev3 = EV3Brick() + + +# Write your program here. +ev3.speaker.beep()