Skip to content

Utvikling

Simon Konglevoll Lønnestad edited this page Dec 8, 2019 · 21 revisions

Utviklingsmetode

Vi valgte å bruke “test driven development” (TDD) som vår utviklingsmetode for prosjektet. Dette mener vi er den mest passende utviklingsmetoden siden prosjektet er bestående av flere ledd (agenter) som kan testes separat fra hverandre. Den andre grunnen er at all programmering utføres fra en og samme fil (komponent; Arduino), noe som begrenser oss til at kun en person kan utvikle på Arduino. Det er da en fordel å følge en forholdsvis enkel utviklingsmetode som tar ett skritt av gangen, slik som TDD.

Problemer, tester og løsninger

For å utvikle Arduinomon måtte vi løse noen problemer. Vi måtte finne ut av hvor sensitivt akselerometeret skulle være for å ikke konstant generere Pokémon. Akselerometeret må ikke reagere på "svak" bevegelse, eller "kraftig" bevegelse. Dette ble testet ved å bevege på akselerometer tilkoblet Arduino'en gjennom brødbrettet med forskjellig mengder kraft for å se hva en passende verdi burde være. Ettersom vi ikke fikk tilgang til en 3D printer for å produsere en beskyttende “Pokéball” for Arduino'en, endte vi opp på verdien 5000 for midlertidig testing. Med denne verdien så kan man veldig enkelt bevege brettet 90 grader for at koden skal kjøres og en Pokémon genereres, som da lagres i en database.

Andre tester innebærer testing av kommunikasjon mellom Arduino'en og API'et vårt, inkludert at data blir sendt til databasen. Noe spesifikt som kom fram av testingen her er at vi trenger to WiFi klienter: en for kommunikasjon mellom Arduino og database, og en annen for kommunikasjon mellom Arduino og API. MySQL (for Arduino) støtter ikke SSL, og dersom API'et er kryptert med SSL vil vi ikke kunne benytte samme klient for begge komponenter. Har derimot API'et ikke SSL, vil det være mulig å ha en felles WiFi klient for begge komponentene.