diff options
| -rw-r--r-- | tddd60.md | 102 | ||||
| -rw-r--r-- | tddd98.md | 0 | ||||
| -rw-r--r-- | todo.md | 35 | ||||
| -rw-r--r-- | tsea28.md | 206 | ||||
| -rw-r--r-- | tsea83.md | 3 | ||||
| -rw-r--r-- | tsrt12.md | 0 |
6 files changed, 330 insertions, 16 deletions
@@ -2,28 +2,62 @@ ```toc ``` ## Föreläsning 1 -#todo + ## Föreläsning 2 2022-01-21 - [[användarstudie]] - [[persona]] - [[scenario]] -- [[tddd60|uppgift 1]] +- [[#Uppgift 1]] -uppgift 1 -litteraturgenomgången - dela upp litteraturen, läs, summera - seminarium: obligatorisk närvaro. distans - jobbar både inom gruppen och inom handledargruppen (5-6 grupper) konceptfasen välj designuppdrag på kurshemsidan lektion för konceptgenerering (kallelse nästa vecka) -lägg inte på extra arbete i slutet om någon inte är med. var med i alla steg. hör av oss om någon inte närvarar. -schemalagda tillfällen är mest så det ska finnas gemensamma tider alla är närvarande -uppdelning om alla är närvarande +## Föreläsning 3 +2022-01-24 + +ideer bygger på tidigare ideer. samtida referenser. hålkort kom från vävstolar +designkoncept är ... (slide med mycket text) +ux är mer än bara vad som syns + isberg + surface: visual design + skeleton: wireframes + structure: site map / screen flow + ?: requirements / content + ?: concept / user research +jämför med spel. folk dumpar tid i minecraft och ck2 även om dom inte är särskilt visuellt fina +bra koncept betyder inte automatiskt att det är bra utfört + +skissa +"vadå, menar du att vi ska rita och ha det kul?" +finns bra argument +hjärnan hämmar sig själv från dumma och impulsiva beslut +skissning går förbi den och genererar många ideer. brainstorming + +konceptskiss: högre nivå. hur systemet ska användas + +gränssnittsskissning: hur skärmar ska se ut och navigeras + +... + +feedforward +t.ex. "du har checkat in. det här är din gate du ska till" +paletto-principen (80/20) +80% av användarna komer använda 20% av features (och tvärtom) +power users +hitta dina 20% och gör dom lättillgängliga + +tldr +ett koncept är en ide på en lösning av ett problem. lösningsförslag +första ideer sällan dom bästa ideerna +innovativa koncept tillgodoseranvändarbehov på ett nytt och bra sätt +skissa för hand handlar om att utforska alternativa lösningar och ideer +finns inget färdigt recept att följa för att lösa ett designproblem. varje användarsituation består av en unik kombination av faktorer +våra mentala representationer påverkar hur vi uppfattar omgivningen men är föränderliga +design*principer* är värdefulla att använda då dom är beprövade ## Uppgift 1 Två och en halv iteration i ett designprojekt. [[Användarstudie]] och [[Identifiering av krav]] är redan genomfört och finns dokumenterat i designuppdrag. @@ -32,13 +66,17 @@ Två och en halv iteration i ett designprojekt. [[Användarstudie]] och [[Identi - Välj ett lösningsförslag och bearbeta det genom att skapa flera olika möjliga implementationer. - Utvärdera implementationerna genom att jämföra dem med varandra. +Om någon inte gör sin del: lägg inte extra arbete på dom i slutet. Det är en del av uppgiften att vara med i alla steg. Hör istället av er till kursledningen om någon inte närvarar. + +Dom schemalagda tillfällena är mest så att det ska finnas gemensamma tider ingen i gruppen har något annat planerat. + ### A: Litteraturgenomgång Läs och diskutera det kursmaterial som behövs för att genomföra uppgifterna i kursen. Två obligatoriska delar. #### Individuell sammanfattning -- [ ] Dela upp kursbokens kapitel mellan gruppmedlemmarna. -- [ ] Läs inledningen -- [ ] Läs din del. +- [x] Dela upp kursbokens kapitel mellan gruppmedlemmarna. +- [ ] Läs inledningen. (s9 - s36) +- [ ] Läs din del. (s210 - s241) - [ ] Sammanfatta din del på 500 -- 1000 ord. Ha med nyckelbegrepp, verktyg och metoder. Skriv namn, gruppnummer och vilken del som sammanfattades högst upp. - [ ] Skriv ut sammanfattinngen och ta med till det schemalagda tillfället. Lämna utskriften till seminarieledaren. Om distans, lämna in på Lisam senast innan seminariestart. @@ -51,4 +89,42 @@ Seminarium med obligatorisk närvaro. ### B: Koncept, bearbetning +- [ ] Kolla på uppdraget till grupparbetstiden. + +#### Uppdrag +Rangordnat: +- Migränhantering +- Webblättläst +- iFiske - kontrollanter + +- iFiske + - Introducera fiske för människor som bor men inte växte upp i Sverige + - Intresserade av fiske men saknar information + - Fiskar idag men har inte fiskekort +- iFiske - kontrollanter + - iFiske har idag digitala fiskekort. Vill ha en app som kontrollanter kan använda för att kontrollera fiskekort och att folk på andra sätt följer fiskereglerna. + - Erbjuda stöd, till exempel samarbete mellan kontrollanter, delning av information, upprättning av polisanmälan. Karta / GPS ? +- Fosterhemsbarn + - Nyskapande digital lösning som kan förbättra livskvaliteten hos fosterbarn. Ålder 5-18 år, bor i fosterhem, tillfälligt fosterhem eller hem för vård och boende. +- Aktivt museum + - Interaktiv installation för ett valfritt museum som uppfyller visionen (interaktiv utställning där tonåringar själva kan utforska spännande teman). +- Webblättläst + - Tjänst som rangordnar sidor efter hur lättlästa dom är. Huvudsyftet är att personer med lässvårigheter ska kunna välja det lättaste att läsa. + - Problem: vid webbsökningar visas ofta samma information om och om igen. + - Lösning: En ny tjänst som visar hur lika information är på olika sidor vid en webbsökning. Tjänsten ska också använda dom tidigare läsbarhetsmåtten och visa hur lättlästa texter i ett visst kluster är. + - På något sätt vikta läsbarhet mot informationslikhet så att användaren kan välja grad av informationsöverlapp mot enkelhet att läsa. +- Migränhantering + - Huvudvärksdagbok. Viktigt verktyg för diagnostik och hantering. Grund för läkares bedömning. När mönster har hittats kan rekommendationer ges. + - AI-baserad coachning är det ultimata målet. Första steget är att patienter lätt kan följa sin migrän. + - Inom vården är brist på dagbok ett vanligt problem. +- Phoniro-lås + - Finns en app som används i hemtjänsten för att låsa upp dörrar med digtala lås. + - Phoniro vill ha en tjänst så att anhöriga kan låsa upp dörren til äldre släktingar eller bekanta. + - Upplevelsen av säkerhet är viktig för företagets affärsprofil. +- Personlig larm och larmtjänst + - För äldre som bor hemma och patienter på vårdboenden. + - Finns ett armband med sensorer som kan rapportera rörelser, frånvaro av rörelser, rör sig utanför bestämda områden (demens). EKG, blodsockernivå och puls. Kan rapportera avvikelser från dessa (hjärtrusning, hjärtstopp). Användaren kan aktivera larm. + - Uppdrag: skapa ett användargränssnitt för att redigera larmvillkor - under vilka förhållanden ska larm avges och vart (anhörig, vårdpersonal, 112). + - Ska kunna användas av både anhöriga och vård-/hemtjänstpersonal. + ### C: Valfri del för högre betyg diff --git a/tddd98.md b/tddd98.md new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/tddd98.md @@ -0,0 +1,35 @@ +[[tsea83#Föreläsning 1]] +[[tsrt12#Föreläsning 1]] +[[tsrt12#Föreläsning 2]] + +# v4 +2022-01-24 -- 2022-01-30 +## måndag +13-15 [[tddd60#Föreläsning 3]] + missade kanske hälften av materialet. gå igenom igen + +## tisdag +08-10 [[tsrt12#Lektion 1]] + vilken grupp? +tddd60 läs din del +[[tsea83#Föreläsning 4]] +[[tsea83#Laboration 1]] uppgift 3 + +## onsdag +10-12 [[tsrt12#Föreläsning 4]] +13-15 [[tsea83#Föreläsning 4]] +17-19 [[tsea83#Laboration 1]] redovisa + +## torsdag +10-12 [[tddd98#Föreläsning]] +tddd60 sammanfatta din del +15-17 [[tsrt12#Lektion 2]] + +## fredag +08-10 [[tsea83#Laboration 1]] redovisa (helst klar onsdag) +10-12 [[tsrt12#Föreläsning 4]] +13-15 tddd60 seminarium + +## lördag + +## söndag
\ No newline at end of file diff --git a/tsea28.md b/tsea28.md new file mode 100644 index 0000000..1558af0 --- /dev/null +++ b/tsea28.md @@ -0,0 +1,206 @@ + ## Laboration 1 +### Givna subrutiner +- `printchar` +- `inituart` +- `initgpioe` +- `initgpiof` + +### Begränsningar +Du får enbart göra en läsning ifrån `0x2000100-0x20001003` och `0x20001010-0x2001013` i `checkcode`. + +### Subrutiner att skriva +#### printstring +Skriver ut den textsträng som r4 pekar på på terminalen med hjälp av `printchar`. +```asm +; inargument: pekare till strängen i r4 +; längd på strängen i r5 +; utargument: inga +; +; funktion: skriver ut strängen mha subrutinen printchar +; +; förstör r0 och r1 +printstring: + mov r1,#0x00 +printstring_print_next: + mov r0,[r4,r6] ; indirekt register med register offset + + push lr + bl printchar + pop lr + + add r1,#0x01 ; next char + ; have we printed all characters? + cmp r5,r1 + bne printstring_print_next + + ; yes, so return + bx lr +``` + +#### deactivatealarm +Får lysdioden att lysa grönt. +```asm +; inargument: inga +; utargument: inga +; +; funktion: tänder grön lysdiod (bit 3 = 1, bit 2 = 0, bit 1 = 0) +; +; förstör r0 och r1 +deactivatealarm: + ; read current data + mov r0,#GPIOF_GPIODATA + ldr r1,[r0] + + ; set bit 3 to 1 + orr r1,r1,(0x04) ; 0x04 = 0000_0100 + ; set bit 2 and 1 to 0 + and r1,r1,(0xfc) ; 0xfc = 1111_1100 + + ; write new data + str r1,[r0] + + bx lr +``` + +#### activatealarm +Får lysdioden att lysa rött. +```asm +; inargument: inga +; utargument: inga +; +; funktion: tänder röd lysdiod (bit 3 = 0, bit 2 = 0, bit 1 = 1) +; +; förstör r0 och r1 +activatealarm: + ; read current data + mov r0,#GPIOF_GPIODATA + ldr r1,[r0] + + ; set bit 1 to 1 + orr r1,r1,(0x01) ; 0x01 = 0000_0001 + ; set bit 3 and 2 to 0 + and r1,r1,(0xf9) ; 0xf9 = 1111_1001 + + ; write new data + str r1,[r0] + + bx lr +``` + +#### getkey +Vänta på att användaren trycker på en tangent. Se till att returnera först när användaren slutar trycka på tangenten. +```asm +; inargument: inga +; utargument: tryckt knapp i r4 +; +; förstör r0, r1 +getkey: + mov r0,#GPIOE_GPIODATA + + ; wait for strobe +getkey_strobe_check: + ldr r1,[r0] + mov r4,r1 + ands r1,r1,#0x10 ; 0x10 = 0001_0000 + bne getkey_strobe_check + + ; strobe is high, so put char in r4 + ands r4,r4,#0x0f ; 0x0f = 0000_1111 + bx lr +``` + +#### addkey +Lägg till ett tecken i inbuffern genom att skifta buffern framåt ett steg. + +Exempel: +``` +Adress Ursprungstillstånd Efter att addkey anropats med 1 i r4 +0x20001000 0x05 0x01 +0x20001001 0x06 0x05 +0x20001002 0xFF 0x06 +0x20001003 0xFF 0xFF +``` + +```asm +; inargument: vald tangent i r4 +; utargument: inga +; +; funktion: flyttar innehållet på 0x20001000-0x20001002 framåt en byte +; till 0x20001001-0x20001003. +; lagrar sedan innehållet i r4 på 0x20001000 +; +; förstör r0 +addkey: + ; ..02 -> ..03 + ldrb r0,#0x20001002 + strb r0,#0x20001003 + + ; ..01 -> ..02 + ldrb r0,#0x20001001 + strb r0,#0x20001002 + + ; ..00 -> ..01 + ldrb r0,#0x20001000 + strb r0,#0x20001001 + + ; r4 -> ..00 + strb r4,#0x20001000 + + bx lr +``` + +#### clearinput +Rensar inbuffern genom att lägga in en ogiltig kod. +```asm +; inargument: inga +; utargument: inga +; +; funktion: sätter innehållet på 0x20001000-0x20001003 till 0xFF +; +; förstör r0 +clearinput: + mov r0,#0xff + strb r0,#0x20001000 + strb r0,#0x20001001 + strb r0,#0x20001002 + strb r0,#0x20001003 + bx lr +``` + +#### checkcode +Kollar om den kod som ligger i inbuffern på 0x20001000 är korrekt. +```asm +CODE_LENGTH .equ 0x04 + +; inargument: inga +; utargument: returnerar 1 i r4 om koden var korrekt, +; annars 0 i r4 +; +; funktion: tänder grön lysdiod (bit 3 = 1, bit 2 = 0, bit 1 = 0) +; +; förstör r0, r1 och r2 +checkcode: + mov r0,#0x00 ; index + mov r1,#0x20001000 ; to check + mov r2,#0x20001010 ; key + +checkcode_next: + ; check length + cmp r0,#CODE_LENGTH + beq checkcode_correct + ; compare next byte + cmp [r1,r0],[r2,r0] + beq checkcode_next ; equal, check next + b checkcode_incorrect ; not equal, so incorrect + +checkcode_incorrect: + mov r4,#0x00 + b checkcode_exit + +checkcode_correct: + mov r4,#0x01 + b checkcode_exit + +checkcode_exit: + bx lr +```
\ No newline at end of file @@ -4,13 +4,10 @@ ``` ## Föreläsning 1 -#todo ## Föreläsning 2 -#todo ## Föreläsning 3 -#todo ## Föreläsning 4 diff --git a/tsrt12.md b/tsrt12.md new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/tsrt12.md |
