{"id":9737,"date":"2024-11-21T17:20:47","date_gmt":"2024-11-21T16:20:47","guid":{"rendered":"https:\/\/dronesonen.usn.no\/?p=9737"},"modified":"2024-11-21T17:20:47","modified_gmt":"2024-11-21T16:20:47","slug":"fussbot-uke-11","status":"publish","type":"post","link":"https:\/\/dronesonen.usn.no\/?p=9737","title":{"rendered":"FussBot Uke 11"},"content":{"rendered":"\n<p>Felles&nbsp;<\/p>\n\n\n\n<p>Etter hvert som vi har hatt fremgang i prosjektet har det vist seg at det kan bli vanskelig \u00e5 f\u00e5 fullf\u00f8rt et helt fotballbord hvor et helt lag er autonomt. Dette er ogs\u00e5 pga plass begrensning og antall motorer som m\u00e5 tas i bruk, 8 motorer totalt.&nbsp;<\/p>\n\n\n\n<p>Derfor har vi valgt og skalere ned usecasen slik at vi har en autonom keeper, hvor et lag kan f\u00e5 hjelp. Eventuelt ogs\u00e5 at vanskelighetsgraden kan justeres, fra d\u00e5rlig til god keeper.<\/p>\n\n\n\n<p>I bilde under finner vi ut avstanden til kamera samt&nbsp; om ballen blir avlest, noe den gj\u00f8r, JIPPI!!!&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXd4tAEIvvjJmvyuk7N7NTPMmGrBux2XJo87bcNflgxjgVM6UDKvsXY3XKmVXF-rmXkVMCffCOtgpvV65OOSoUf6hsCru3vem5R9BQfGr11fIdzuAyvhBwVIgzTbFEfr_ILC-tD15-g2H1u07LcUQ7Cim5o?key=HLY47kmUYcYAL59Kqj4QiA\" alt=\"\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Maskin&nbsp;<\/h2>\n\n\n\n<p><strong>Anders:<\/strong><\/p>\n\n\n\n<p>Modellert, 3D printet og bygd f\u00f8tter og ben til hele bordet slik at vi f\u00e5r nivelert bordet tilstrekkelig.&nbsp;<\/p>\n\n\n\n<p>Satt opp et enkelt bord\/ramme s\u00e5 hele mekanismen f\u00e5r st\u00e5 fast og&nbsp; riktig i forhold til stengene p\u00e5 fotballbordet.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXewb-lTyN0a8ONQ5pUcWS2YEWDxZAwEzo6rcyR9entj4wFFXP1Og1aex2HCUAk6u00hTHAq5aQIjCAq6PDAia-fUgxgFb1H8O0VVMnyZSkg_E0GmpdQhHANj1mxzevSa7GAD3aOGU1L3Wc-SJFae0IxKKoG?key=HLY47kmUYcYAL59Kqj4QiA\" alt=\"\" width=\"166\" height=\"295\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXdjz2b0o3D1VwT1B_oJaduF4-H5ZmmnwoAqRSf6KlqYur8P4jpLm2i2IkCRLy53MicVQ-UrW3v6RKAXzpmHesp9Il_HNadTDCJ9l5yqNtfbmb7CiCpVH67vJOWxlStvnTyBux-2jsMjpuYiBAYpy2mU6Kgv?key=HLY47kmUYcYAL59Kqj4QiA\" alt=\"\" width=\"155\" height=\"276\" \/><\/figure>\n\n\n\n<p>Ref forrige blogg innlegg, avstandsstykkene t\u00e5lte ikke p\u00e5kjenningen og har blitt skiftet ut til til hylser av st\u00e5l:<\/p>\n\n\n\n<figure class=\"wp-block-image is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXdK0w_uW0FGrKbkOKbPVFP6DX9V0RIxvfsAv3ylEkNa_DrVHzXtQ99Mzu6iuYdx2u6gZQXWGDEOMY2vF2pHCXwPlSLFa_9HYEk-fZa-5aweZRE74XCCzUYd6mYgTz6Tzs8S0s7CT3IwrnKobhC4NiqRK38W?key=HLY47kmUYcYAL59Kqj4QiA\" alt=\"\" width=\"211\" height=\"118\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXe2bTdfRnMORcHfasPyOvYG41WWd5LJeatU-OaOfwGn6QGMWCruTUrI_iglpGeaMsNnktmw0ETSyCNMsFzPA1vLkrMi_m92iMl03O0qtqJUEr7-UsqvChcugy179QxFWhm0tm6t92CblU0Tp2cmbH011tc5?key=HLY47kmUYcYAL59Kqj4QiA\" alt=\"\" width=\"217\" height=\"121\" \/><\/figure>\n\n\n\n<p><strong>Andrea:<\/strong><\/p>\n\n\n\n<p>Etter \u00e5 ha f\u00e5tt knappeoppsettet fra Elektro, s\u00e5 er n\u00e5 hullbildet endret for at dette skal passe.<\/p>\n\n\n\n<figure class=\"wp-block-image is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXcRhjws7fP4t43fqreSdyOEdcNXNrcPHNdyssP_9BQ2xxvc7Y2rauIv90k78WT1gVUG83A734DcEUdCcqKkTut8iBSX8vDzZhvy2UqzLWMBGtqiHYD_9-vjoMExdFakK4yPOvAhJ4AwNOiyJdRb_uA5-KE?key=HLY47kmUYcYAL59Kqj4QiA\" alt=\"\" width=\"648\" height=\"182\" \/><figcaption class=\"wp-element-caption\">V1<\/figcaption><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXeDATspEIH1XHhUcNa8ZNB1lLV4DLWHkyT4Zgvv6ZVw7n246w6PyrHdqvxxaCarZ8xOpRb1wWBcFOrEz3P6F7j2jE3G7cPGEa9ljL54KvBXnFejR2XXW4eOhYD6yGc6Zg5Ok886zmdVTC82igh_Po3vJwA?key=HLY47kmUYcYAL59Kqj4QiA\" alt=\"\" width=\"650\" height=\"161\" \/><figcaption class=\"wp-element-caption\">V2<\/figcaption><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-text-align-center\"><img loading=\"lazy\" decoding=\"async\" width=\"658\" height=\"157\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXdjL2Dw3ZQpMxVrrf22anuV5_8ai4JLtr2K8OxbSW9ZtinYiapUYHEPiqne0_4VQTBVc93kmvfjcvdTCXW-ORr9bzp0rHM6KEmCJFhjXCR6WI6N4XnEDzBRv6umZi4ri_UIYH_tfha1qMUegSokRjO8hEc?key=HLY47kmUYcYAL59Kqj4QiA\"><br>V3&nbsp;<\/p>\n\n\n\n<p>Her er det designet en todelt knapp. Disse skal monteres p\u00e5 displayet slik at spillere ikke trykker rett p\u00e5 de gule bryterne. En holder til baksiden av displayet er ogs\u00e5 under utvikling, dens funksjon er \u00e5 holde breadboardet p\u00e5 plass, samtidig som det lett kan tas ut av holderen for videre arbeid hvis det trengs. Siden vi da har knapper og holder festet til displayet vil det gj\u00f8re at breadboardet ikke permanent festes p\u00e5 noe sted. Knappene er ogs\u00e5 designet for \u00e5 ha en maks nedtrykks distanse p\u00e5 0,6mm, som er lik nedtrykks distanse p\u00e5 de gule bryterne. Dette vil s\u00f8rge for at bryterne blir utsatt minst mulig belastning og slitasje. Knapper vil ogs\u00e5 gi et estetisk resultat.<\/p>\n\n\n\n<figure class=\"wp-block-image is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXeQRHoXZxLMss3TT_QH_qZB4WAwuKJN-E1ie1D3GaX7YDKfVQtXWK0MU2fbhZEHokVr9zC_UTYEa-ciTHmm-K8i6x3GjHMdaQTCufxo-WEBqn3jpLo5wsIkKgX3tT1paRb30UQgXLRIBM6Aac1GH-DJ7BxY?key=HLY47kmUYcYAL59Kqj4QiA\" alt=\"\" width=\"284\" height=\"178\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXduquhNzhxXVAJMqCtpvsosJlbF0Ejf5HBPd97FjNxx_QCmBP91cHOa-Lbgw-QZ5GL_v0WJt7X1R0OB7RhOlOwyE35Rf2jd8e9HjCZnAx-IIWNnOKzIBlagYaYlMlh1pmKYqaGKM_yXHVKyRN2Fk15BHFY?key=HLY47kmUYcYAL59Kqj4QiA\" alt=\"\" width=\"197\" height=\"178\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXc2-lOW_8_2r4VtlfbbjtdZh1ArM5z_OgwcBFWQfIspanp5QPOkiMi6YQV52B5VODufzHMxsThpbDRUDumaN-DctSPPiiH_Oi-ugw-Mtrz25BrY0KR1KM8GizofBgh7kxdX6PX8Qw7xqu7_bB0rHBC_ekdJ?key=HLY47kmUYcYAL59Kqj4QiA\" alt=\"\" width=\"197\" height=\"210\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXeCcbo7GCo9qZGZ8gHlo-tZ1N1Lb9DAFEeX22ecfn7s9eub99Ctozm_26q747Akrqt6GVZbA1CQF8_AspScaE9zmDA8vqYjBRynwo53-9LRtvUc6niOrLnsduMzMb0V099BW-9ThS2mc3_0GtKL1RDxrec?key=HLY47kmUYcYAL59Kqj4QiA\" alt=\"\" width=\"195\" height=\"181\" \/><\/figure>\n\n\n\n<p>Her er det avbildet begge de to delene av knappen. Det printes ut en i starten for \u00e5 sikre minimal bruk av ekstra materiale og for \u00e5 se om designet vil fungere.<br>&#8211; Knappene er ikke helt optimale og vil redigeres f\u00f8r ny print.<\/p>\n\n\n\n<p>For dette displayet har det v\u00e6rt mye krangling for \u00e5 f\u00e5 hull til led lys rundt kanten. Dette jobbes videre med, og utkj\u00f8ring av display venter til dette er p\u00e5 plass.<\/p>\n\n\n\n<p><img loading=\"lazy\" decoding=\"async\" width=\"177\" height=\"102\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXc1-f4LxFhjWm4Z9Xe37KFMaKaIcoWoNA5GL1NlWaCqVAoDptcUcPpoveGObeiUWd3hOOfbQjXdF45iOSzBMHEZDKlllCQ3d3u9rq9jdVEOqQFXL2NuDXLlbiaruumcYqVVRrSzl2nRvmjwgqPoQXUTvibC?key=HLY47kmUYcYAL59Kqj4QiA\"><br>Vi trenger ogs\u00e5 noen hj\u00f8rnestykket for platen kameraet skal st\u00e5 p\u00e5. Disse er startet her, men det m\u00e5 sees an hvor det skal sl\u00e5es hull i de, og eventuellt hvor store de skal v\u00e6re, da h\u00f8yde posisjonen p\u00e5 plata vil bestemme hvilken lengde vi m\u00e5 tilf\u00f8ye for at den skal rekke helt ut til bena.\u00a0<br><br>Siden det begynner \u00e5 n\u00e6rme seg slutten av prosjektet, har jeg i sammarbeid med Dag Ove satt opp en tidslinje. Her har vi f\u00f8rt opp alt mot slutten av prosjektet slik at alle kan ha full oversikt over hva som skal bli gjort n\u00e5r og hvilke deadliner vi har for prosjektet.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"246\" src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2024\/11\/20241121_170444-1024x246.jpg\" alt=\"\" class=\"wp-image-10037\" srcset=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2024\/11\/20241121_170444-1024x246.jpg 1024w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2024\/11\/20241121_170444-300x72.jpg 300w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2024\/11\/20241121_170444-768x185.jpg 768w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2024\/11\/20241121_170444-1536x370.jpg 1536w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2024\/11\/20241121_170444-2048x493.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Data&nbsp;<\/h2>\n\n\n\n<p><strong>Erik:<\/strong> F\u00e5tt kamera til \u00e5 kj\u00f8re med bruk av lccv (a libcamera wrapper for OpenCV). Har testet at ballen (oransje farget ball) kan bli sporet med bruk av OpenCV. Bruker fargen til ballen for \u00e5 finne massesenteret til ballen. F\u00e5r et punkt i 2D-planet (x, y) relativ til kameraet. Kan da styre stepper-motorene henholdsvis til punket. Dette gj\u00f8res i 1 tr\u00e5d (thread), og er kodet i c++. Dette splittes opp og kj\u00f8res i 2 tr\u00e5der (threads). Den ene tr\u00e5den finner massecenter av ballen og legger dette til i en deque (threadsafe deque hentet fra <a href=\"https:\/\/github.com\/miachm\/STL-Threadsafe\">https:\/\/github.com\/miachm\/STL-Threadsafe<\/a>). Den andre tr\u00e5den henter ut punktet fra deque-en og gj\u00f8r n\u00f8dvendige justeringer p\u00e5 spilleren med motorene. Spilleren klarer ikke helt enn\u00e5 \u00e5 blokkere ballen fra \u00e5 g\u00e5 i m\u00e5l, men det er n\u00e6rme<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Elektro<\/h2>\n\n\n\n<p><strong>Kristian: <\/strong>Denne uken har jeg fortsatt \u00e5 jobbe med systemet som skal telle antall m\u00e5l. Har denne gangen lagt til en RGB diode som skal lyse konstant gr\u00f8nt og n\u00e5r et m\u00e5l blir registrert skal den blinke i mange forskjellige farger. I videoen under skjer dette ved hjelp av en knapp, men skal etterhvert kobles sammen med IR sensorene i hvert m\u00e5l. Denne koden l\u00e5nte jeg fra denne nettsiden og modifiserte litt til eget bruk. <a href=\"https:\/\/projecthub.arduino.cc\/semsemharaz\/interfacing-rgb-led-with-arduino-b59902\">https:\/\/projecthub.arduino.cc\/semsemharaz\/interfacing-rgb-led-with-arduino-b59902<\/a>.<\/p>\n\n\n\n<p>\/\/ *Interfacing RGB LED with Arduino<\/p>\n\n\n\n<p>\/\/ * Author: Osama Ahmed<\/p>\n\n\n\n<p>\/\/ Define variables for LED pins and button pin<\/p>\n\n\n\n<p>int redPin = 4;<\/p>\n\n\n\n<p>int greenPin = 3;<\/p>\n\n\n\n<p>int bluePin = 2;<\/p>\n\n\n\n<p>int buttonPin = 7;&nbsp; \/\/ Pin connected to the button<\/p>\n\n\n\n<p>bool buttonPressed = false; \/\/ Track button press<\/p>\n\n\n\n<p>void setup() {<\/p>\n\n\n\n<p>&nbsp;&nbsp;\/\/ Define the LED pins as OUTPUT<\/p>\n\n\n\n<p>&nbsp;&nbsp;pinMode(redPin, OUTPUT);<\/p>\n\n\n\n<p>&nbsp;&nbsp;pinMode(greenPin, OUTPUT);<\/p>\n\n\n\n<p>&nbsp;&nbsp;pinMode(bluePin, OUTPUT);<\/p>\n\n\n\n<p>&nbsp;&nbsp;\/\/ Define the button pin as INPUT<\/p>\n\n\n\n<p>&nbsp;&nbsp;pinMode(buttonPin, INPUT_PULLUP); \/\/ Use internal pull-up resistor<\/p>\n\n\n\n<p>&nbsp;&nbsp;\/\/ Set initial LED color to green<\/p>\n\n\n\n<p>&nbsp;&nbsp;setColor(0, 255, 0); \/\/ Constant green<\/p>\n\n\n\n<p>}<\/p>\n\n\n\n<p>void loop() {<\/p>\n\n\n\n<p>&nbsp;&nbsp;\/\/ Check if the button is pressed<\/p>\n\n\n\n<p>&nbsp;&nbsp;if (digitalRead(buttonPin) == LOW) {&nbsp; \/\/ Button press detected<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;buttonPressed = true;<\/p>\n\n\n\n<p>&nbsp;&nbsp;}<\/p>\n\n\n\n<p>&nbsp;&nbsp;\/\/ If the button was pressed, flash through colors<\/p>\n\n\n\n<p>&nbsp;&nbsp;if (buttonPressed) {<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;\/\/ Blink quickly through each color<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;setColor(255, 0, 0);&nbsp; \/\/ Red<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;delay(100);<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;setColor(0, 255, 0);&nbsp; \/\/ Green<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;delay(100);<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;setColor(0, 0, 255);&nbsp; \/\/ Blue<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;delay(100);<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;setColor(255, 255, 255);&nbsp; \/\/ White<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;delay(100);<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;setColor(170, 0, 255);&nbsp; \/\/ Purple<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;delay(100);<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;setColor(127, 127, 127);&nbsp; \/\/ Light Blue<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;delay(100);<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;setColor(255, 0, 0);&nbsp; \/\/ Red<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;delay(100);<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;setColor(0, 255, 0);&nbsp; \/\/ Green<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;delay(100);<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;setColor(0, 0, 255);&nbsp; \/\/ Blue<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;delay(100);<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;setColor(255, 255, 255);&nbsp; \/\/ White<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;delay(100);<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;setColor(170, 0, 255);&nbsp; \/\/ Purple<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;delay(100);<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;setColor(127, 127, 127);&nbsp; \/\/ Light Blue<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;delay(100);<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;setColor(255, 0, 0);&nbsp; \/\/ Red<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;delay(100);<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;setColor(0, 255, 0);&nbsp; \/\/ Green<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;delay(100);<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;setColor(0, 0, 255);&nbsp; \/\/ Blue<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;delay(100);<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;setColor(255, 255, 255);&nbsp; \/\/ White<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;delay(100);<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;setColor(170, 0, 255);&nbsp; \/\/ Purple<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;delay(100);<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;setColor(127, 127, 127);&nbsp; \/\/ Light Blue<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;delay(100);<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;\/\/ Reset color to green and button state<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;setColor(0, 255, 0);&nbsp; \/\/ Back to constant green<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;buttonPressed = false; \/\/ Reset flag to wait for the next button press<\/p>\n\n\n\n<p>&nbsp;&nbsp;}<\/p>\n\n\n\n<p>}<\/p>\n\n\n\n<p>void setColor(int redValue, int greenValue, int blueValue) {<\/p>\n\n\n\n<p>&nbsp;&nbsp;analogWrite(redPin, redValue);<\/p>\n\n\n\n<p>&nbsp;&nbsp;analogWrite(greenPin, greenValue);<\/p>\n\n\n\n<p>&nbsp;&nbsp;analogWrite(bluePin, blueValue);<\/p>\n\n\n\n<p>}<\/p>\n\n\n\n<figure class=\"wp-block-image is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXecL2QTkjjaXxvMi3Zv5aRBynXFUyHoOb5lrUu_tjTVkG4Q-D80JGi27LQO1L3XIvyc75efM0w1YUvd8QVD6ZpkRCA_QfCNBYupo08R19KbUec_UqUHcWyKJKz4XZWpbV6VujIctclT_GBE6yJ8fqLlCiio?key=HLY47kmUYcYAL59Kqj4QiA\" alt=\"\" width=\"205\" height=\"325\" \/><\/figure>\n\n\n\n<p>Jeg og Dag-Ove har ogs\u00e5 f\u00e5tt koblet opp motorene p\u00e5 bordet s\u00e5nn at det er klart for \u00e5 testes skikkelig. Arduinoen skal brukes til \u00e5 styre skjermen for telling av m\u00e5l og RGB osv.<\/p>\n\n\n\n<figure class=\"wp-block-image is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXetAb-zy0MM2xdU0lz_OH-Wrq1XUnJE7HGcA7mPcVjMdxwu9pLEsQrU8ZcfhMG617jjcmLF2oZ5ghFAXJSw7Q-8veYuYAvJzfHquxCZmYZQrQqAXCG0DKNczQls4sKmJGIy1plPLSxWQHSMrNP6aiicJxs?key=HLY47kmUYcYAL59Kqj4QiA\" alt=\"\" width=\"328\" height=\"245\" \/><\/figure>\n\n\n\n<p><strong>Dag-Ove:&nbsp;<\/strong><\/p>\n\n\n\n<p>Gjort klart alt av ledninger, motstander, skj\u00f8ter og lodding.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2024\/11\/PXL_20241104_113112862-1024x680.jpg\" alt=\"\" class=\"wp-image-10038\" width=\"397\" height=\"263\" srcset=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2024\/11\/PXL_20241104_113112862-1024x680.jpg 1024w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2024\/11\/PXL_20241104_113112862-300x199.jpg 300w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2024\/11\/PXL_20241104_113112862-768x510.jpg 768w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2024\/11\/PXL_20241104_113112862-1536x1020.jpg 1536w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2024\/11\/PXL_20241104_113112862-2048x1360.jpg 2048w\" sizes=\"auto, (max-width: 397px) 100vw, 397px\" \/><\/figure>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Felles&nbsp; Etter hvert som vi har hatt fremgang i prosjektet har det vist seg at det kan bli vanskelig \u00e5 f\u00e5 fullf\u00f8rt et helt fotballbord hvor et helt lag er autonomt. Dette er ogs\u00e5 pga plass begrensning og antall motorer som m\u00e5 tas i bruk, 8 motorer totalt.&nbsp; Derfor har vi valgt og skalere ned [&hellip;]<\/p>\n","protected":false},"author":109,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-9737","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=\/wp\/v2\/posts\/9737","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=\/wp\/v2\/users\/109"}],"replies":[{"embeddable":true,"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=9737"}],"version-history":[{"count":3,"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=\/wp\/v2\/posts\/9737\/revisions"}],"predecessor-version":[{"id":10039,"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=\/wp\/v2\/posts\/9737\/revisions\/10039"}],"wp:attachment":[{"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=9737"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=9737"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=9737"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}