2017PrgCvf

From rtgkomArkiv
Revision as of 17:20, 4 January 2018 by Gkb (talk | contribs) (20717-11-28, tirsdag: Projektarbejdet fortsætter, Gkb 17:47, 28 November 2017 (CET))

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

2018-01-04, torsdag: Konvertering mellem talsystemer - Hex til Dec, Gkb 16:47, 4 January 2018 (CET)[edit]

Holdet læses nu sammen med hold PrgC36. Se et referat af modulet her http://rtgkom.dk/wiki/2017PrgC36

20717-11-28, tirsdag: Projektarbejdet fortsætter, Gkb 17:47, 28 November 2017 (CET)[edit]

I dag fortsatte grupperne med bygning af den første prototype.

File I/O med Python[edit]

I slutningen af modulet var der interesse for at kunne gemme data i en tekstfil med Python på Raspberry Pi. Her er koden til et lille eksempel som vi udviklede i fælleskab lige inden vi gik hjem.

Vi brugte følgende dokumentationsside som inspiration: https://docs.python.org/2/tutorial/inputoutput.html. Den er let af finde ved at søge på strengen "File I/O with Python" eller noget lignende.

f = open('data.txt', 'w')
for i in range(10):
    f.write(str(i)+"\n")
f.close()

f = open('data.txt', 'r')
for line in f:
    print(f.read())
f.close()

Bemærk at:

  • I koden ovenfor er f en "file handle", altså et håndtag til at holde i, altså arbejde med en fil.
  • I dette her tilfælde har vi valgt at filen skal hedde "data.txt".
  • Parameteren w fortæller open() funktionen at vi vil lave en ny fil eller overskrive en eventuell eksisterende fil. r ville betyde read, altså at vi vil læse data fra filen.
  • Vi kan helt frit vælge navne for både vores "file handle" og for index-variablen i for-sætningen som stepper i gennem filen for os.

Vi kan også bruge index-variablen til at udskrive linjerne, som kan ses i det følgende eksempel som jeg tilføjede lidt efter modulet.

minFileHandle = open('data.txt', 'r')
for EnkeltLinje in minFileHandle:
    #print(minFileHandle.read())
    print(EnkeltLinje, end='')
minFileHandle.close()

2017-11-14, tirsdag: Projekt: Dataopsamling og aktuering med Arduino og Raspberry Pi, Gkb 14:46, 14 November 2017 (CET)[edit]

I dag starter vi formelt arbejdet med projektet Dataopsamling og aktuering med Arduino og Raspberry Pi. Vi har nu i en periode på ca. tre uger undersøgt hvordan vi kan bruge disse to enheder, altså Arduino og Raspberry Pi. Vi har arbejdet med eksemplerne Blink, AnalogReadSerial og Graph fra Arduino IDE'en, først fra vores egen bærbare computere eller vores Mac Mini'er i MediaLab. Derefter brugte vi Raspberry Pi med Raspbian til at køre de samme tre eksempler. Undervejs har vi altså løst forskellige problemer i forbindelse med download og udpakning og installering af både Arduino IDE'en og Processing.

Vi brugte to forskellige transducere (sensorer) til at opsamle data. En LDR til måling af lysstyrke og en NTC til temperaturmåling.

Projektoplæg: Dataopsamling og aktuering med Arduino og Raspberry Pi[edit]

Udkast til projektbeskrivelse afleveres på Lectio d. 21. November.

Tidsplan[edit]

Projektet startes tirsdag d. 14. November i uge 46. Projektet afsluttes tirsdag d. 12. December i uge 50.

I alt bruger vi 7 moduler til projektet.


I vores dagligdag oplever vi ofte noget som måske kan automatiseres. Løs et problem i forbindelse med automatisering hvor både dataopsamling og aktuering af en eller anden ekstern mekanisme indgår.


Krav til produkt og process[edit]

  1. Produktet skal kunne fungere som et boundary-objekt i MediaLab. Se definition af begrebet boundary objekt her: https://en.wikipedia.org/wiki/Boundary_object. I vores tilfælde så tænker vi os at jeres produkter
    1. skal udstilles i MediaLab,
    2. gerne permanent fastmonteret, således at de som kommer ind i lokalerne eller ned i vores ende af C3 gangen bedre kan forstå hvad vi laver i MediaLab. Produktet skal altså monteres på en permanent måde på f.eks. et træstykke og beskyttes på en passende måde, måske vha. gennemsigtige plastikplader eller lignende. En præsentationsplanche skal laves hvor det fremgår hvad produktet gør og med vejledning om hvordan brugeren evt. kan lege (interagere) med produktet.
  2. De opsamlede data skal lagres i en tekstfil på Raspberry Pi'en og bearbejdes på en eller anden måde og gerne vises på en eller anden måde.
  3. MediaLabs systemudviklingsmetode skal bruges, samt skabelonerne for projektbeskrivelse og journal (findes ikke akkurat for journal, vi bruger skabelonen for rapport med lidt reduktion f.eks. af indhold om teori). Se her http://www.rtgkom.dk/wiki/Guide:Projektbeskrivelse_og_rapport

Finpudsning og aflevering af blomsten, Gkb 15:05, 3 October 2017 (CEST)[edit]

Modulet i dag bruger vi også til at lege videre med opgaven om at lave en blomst med Turtle modulet.

Opgaven aflevers som før aftalt primært her i vores wiki, men det er en god idé også at uploade den til StudieWebb'et.

På Lectio afleveres:

  1. et link til sektionen i wiki-artiklen som indeholder din aflevering af billed og kode,
  2. Python koden, som en enkelt .py fil.
  3. Et skærmbilled som viser blomsten.

Arbejet med blomsten har været meget kreativt og har taget længere tid end vi regnede med, så vi udsætter lidt at arbejde med skakbrættet.

Blomst og skakbræt, Gkb 09:11, 18 September 2017 (CEST)[edit]

I modulet i dag, mandag 2017-09-18, leger vi videre med Turtle modulet. Vi forbedrer lidt vores blomst som vi begyndte på sidste gang, og så begynder vi på at lave et skakbræt. Resultaterne fra begge øvelser postes her i wikien i dertil specielt lavede underartikler her i holdets wikiartikel.

2017PrgCvf_Blomst

2017PrgCvf_Skakbraet

Arbejde med ordlister i lærebogen, Gkb 14:00, 12 September 2017 (CEST)[edit]

Nu arbejder vi med ordlisterne i de første tre afsnit i lærebogen.

import turtle

def kvadrat():
    turtle.pendown()
    for i in range(4):
        turtle.forward(100)
        turtle.right(90)
    turtle.penup()
    
kvadrat() 

def blomst():
    turtle.home()
    for i in range(32):
        kvadrat()
        turtle.right(360/32)
        turtle.forward(10) #Tilfoejede denne statment efter afslutning af modulet!     
blomst()

2017-09-04, mandag: Computerens historie, ASCII tabellen - gkb[edit]

Vi startede med en plenumdiskussion om udviklingen af computere og programmering. Vi lavede en lille liste over nogle vigtige resultater som har bidraget til den situation som vi har i dag, - nemlig at der er computere over alt og programmering er blevet en nødvendig færdighed for at holde hjulene i samfundet i bevægelse.

Vi diskuterede og eleverne supplerede løbende med detaljerede fakta som f.eks. årstal og navne. Her er nogle af de ting som vi skrev op på tavlen:

  • 1837, The Analythical Engine, ofte omtalt som den første computer selv om den aldrig blev færdiggjort. Den blev designet og delvis bygget af Charles Babbage som samarbejdede med Ada Lovlace. Hun var nok verdens første programmør og har fået et programmeringssprog opkaldt efter sig. Det hedder Ada.
  • 1936, "On Computable Numbers, with an Application to the Entscheidungsproblem", en artikel af Alan Turing, https://en.wikipedia.org/wiki/Alan_Turing, hvor han førte bevis for vigtige teoretiske hypoteser (teoremer?) om hvilke begrænsninger der er på hvad der kan udregnes. Han præsenterede også begrebet a-machine (automatic machine), som senere er blevet kaldt Turing machine, https://en.wikipedia.org/wiki/Turing_machine, som er en hypotetisk maskine som manipulerer med symboler på en papirsstrimmel efter en tabel med regler. Dette begreb, altså Turing maskinen, gør det lettere at diskutere hvad computere egentlig kan bruges til.
  • 1948, "A Mathematical Theory of Communication", en artikel af matematikeren Claude E. Shannon. Artiklen definerer grundlaget for informationsteori (information theory), https://en.wikipedia.org/wiki/Information_theory. I denne artikel præsenterer han også en model for kommunikation mellem to tekniske enheder, f.eks. telex maskiner. Modellen indeholder elementer som afsender, indkodning, signal, støj, budskab (message), afkodning og modtager. Selv om han brugte modellen altså til at beskrive kommunikation mellem to tekniske systemer, så er denne model sener blevet populær i andre fagområder. Modellen kaldes ofte for Shannon-Weaver modellen, fordi Weaver skrev indledning ??? ...
  • 1941, Z3, en elektromekanisk computer lavet af Konrad Zuse. Se https://en.wikipedia.org/wiki/Konrad_Zuse og https://en.wikipedia.org/wiki/Z3_(computer)
  • Atanasoff og Berry

Se også følgende kilder:


Så så afprøvede vi lidt effekten af nogle af kontrolkoderne i ASCII tabellen når de skrives ud til Python terminalen med print() funktionen.

Vi sluttede med at se på forskellige måder at udskrive tegnene i ASCII tabellen i en tabel med f.eks. seks koloner.