Kamera

Brug af camera

Der er to kameraer på ISS, et som peger ned mod Jorden og et som peger ind i rumstationen.

Billeder fra rumstationen på Flickr, [https://www.flickr.com/photos/raspberrypi/albums]
[https://raw.githubusercontent.com/mpsteenstrup/AstroPi2020/master/billeder/coast.jpg]

God beskrivelse på AstroPi-pictures
Camera documentation, Camera dokumentation

programmer

Programmerne bruger biblioteket PiCamera og virker derfor kun på Raspberry Pi. Vi kommer gennem programmerne gennem opgaverne nedenunder.

opgaver

Første billeder

  • Kør programmet, [takePicture.py takePicture.py ] og åben folderen og se dine billeder.
  • Kør programmet igen og tjek om den overskriver de første billeder.
  • Læs kommentarerne i filen.
  • Ret ('img%d.jpg'%i) til ('img%04d.jpg'%i). Hvad er forskellen?
  • Find ud af hvordan man laver om på opløsningen ved at kigge i dokumentaionen, picamera .

Fotoautomat

Vores helt egen fotoautomat, tager udgangspunkt i programmet [takePicture.py takePicture.py ]. Husk at test hver gang I laver noget om, så fanger I lettere fejl.

  • Skriv en besked i konsollen om at billedet tages, print('NU').
  • Ret i koden så pausen på 2 sekunder er efter der bliver skrevet print.
  • Nu er det bare at skrive pauser og tekst, så har I lavet en nedtælling.

open CV

OpenCV er et bibliotek til billedgenkendelse og maskinlæring. I [test_image.py test_image.py ] bruger vi rådata fra kameraet, PiRGBArray. Det har den fordel, at vores Astro Pi ikke skal bruge ressourcer på at komprimere det til jpg og vi har alt informationen til databehandling. OpenCV bruger formatet bgr, altså Blå, Grøn, Rød, hvilket er specificeret i linje 13

opgaver

  • Peg kameraet mod noget farvet og tag et billed.
  • byt nu rundt på bgr til den normale rgb i koden.
  • Hvad sker der med farverne på billedet?

c = cv2.waitKey(0) venter til en tast er trykket og cv2.destroyAllWindows() lukker vinduerne.

Vi gemmer billedet til sidst, hvis 's' er trykket

opgaver

  • Print c.
  • Print ord('s')

ord()omdanner UNICODE karakterer til tal ( nyttigt hvis man vil lave Cæsar kodning).

opgave - navngiv billed

  • Tilføj
navn = input('navn:')
cv2.imwrite(navn + '.png', image)

i stedet for

cv2.imwrite('CVImage.png', image)

opgave - vælg den røde farve

Data i variablen, image ligger som bgrværdier. Vi kan udvælge den røde ved
image = image[:,:,2]hvor [:,:,2] tager alle søjler, alle rækker, værdien på plads 2 (den røde i bgr).

  • Udvælg den røde farve med, image = image[:,:,2]

Slet billeder

Det er desværre ikke muligt at gemme billeder inde fra rumstationen. Hvis programmet skal have lov til at komme i orbit, skal det derfor slette ALLE billederne indefra rumstationen. Det er stadigt muligt at tage billeder og bruge informationen til at undesøge livet om bord, men de skal altså slettes før programmet er kørt færdigt. Denne koden sletter alle filer med endelsen .jpg.

[getFilesWithEnding.py ]
PAS PÅ, den sletter faktisk filerne!!!

opgaver - slet filerne

  • Opret et nyt
  • Opret en ny mappe, `sletTest`
  • Tag et par billeder i mappen eks. Med raspistill -o test.jpg i konsolen.
  • Ret i koden så det kun er den mappes indhold som slettes.
  • Udkommenter de nederste 3 linjer, #, og tjek om det er de billeder som skal slettes.
  • Kør programmet hvor I sletter billederne, uhuuu.

Første gang med Astro Pi

Med den virtuelle adgang eller med skærm og tastatur er det nu I skal arbejde med jeres PI. Der er flere editorer til vi bruger Thonny som findes under Programming.

Pas på med at have for mange programmer åbne på samme tid, det er en microcomputer med begrænset regnekraft.

[width="300px"]

Opgave

  • Åben Thonny og skriv print('Astro Pi')
  • Gem programmet som printAstroPi.py, og lav en mappe som I kan arbejde i. , undgå som altid æøå, mellemrum og mærkelige tegn.
  • Find printAstroPi.py, og kør det, .
I har nu jeres egen mappe og skal IKKE ændre i andre mapper, vel?

I princippet har I nu en Linux computer som kan langt det meste som I har brug for. Tag et kig i menuen og se hvor meget gratis open source programmer der er og hvor meget en computer til 500 kr kan!

Astro Pi display

Vi kan skrive tekst på vores 8x8 pixel display på den påsatte SenseHat. I kan bruge det I lærte i virtuelIntroduktion eller se på cheat sheet

Koden skriver en tekst over displayet.

from sense_hat import SenseHat
sense = SenseHat()
sense.clear()
sense.show_message('One small step for Pi!', text_colour=[255,0,0])

Øvelse

  • Kopier koden over i Tonney editoren og kør den.
  • Leg med at få den til at vise noget andet.
I kan også vise målte værdier. Koden her gør det.
from sense_hat import SenseHat
sense = SenseHat()
sense.clear()
temp = sense.get_temperature()
sense.show_message('Temperaturen er: {:0.2f}'.format(temp))

Øvelse

  • Få jeres Astro Pi til at vise temperaturen.
  • Få den til at vise noget andet.
++ Tænd og sluk

Vores Astro Pi kan godt lide at blive slukket rigtigt, hvilket man gør som man forventer, ingen hints. Hvis den er slukket tænder man den ved at tænde for strømmen, bum computere er nemme.

Første dataopsamling med Astro Pi

Vi kan selvfølgeligt køre programmer på vores Astro Pi ellers var den jo ubrugelig.

Opgave

  • Copy-paste programkoden fra [https://github.com/mpsteenstrup/AstroPi2020/tree/master/pythonFiler] ind i Thonny editoren og kør programmet. ( copy paste er ikke helt stabilt, men prøv et par gange hvis det ikke virker umiddelbart og husk at paste er crtl v, og ikke cmd v i linux, brug evt. musen og højreklik).
  • Det kan være rart at se at programmet kører og stopper så skriv print('starter') og print('slutter') fornuftige steder i programmet.
  • Åben test.csv filen inde fra Thonny og tjek at I har fået det data I vil.
I har nu samlet data op med jeres Astro Pi og er faktisk ikke så langt fra at kunne lave eksperimenter på ISS.

Sende data til Astro Pi

Den simpleste måde er nok standard copy-paste, hvor Astro Pi bruger ctrl og ikke cmd tasten.
Hvis det ikke virker kan man bruge VNC viewer programmet.

VNC viewer - adgang fra den bærbare

Med VNC viewer kan I få adgang til jeres Astro Pi virtuelt. I kan hente programmer her, www.realvnc.com .

For at få adgang skal I helst være på samme netværk med jeres bærbare og Astro Pi computeren. I skal indtaste IP-adressem som I finder ved at klikke på VNC symbolet i højre hjørne på Astro Pi skærmen.

[width="300px"]

Send data til Astro Pi

I midten toppen er der en lille menu hvor man kan sende filer til Astro Pi computeren. Den er lidt hemmelig, men man kan godt finde den.

[width="300px"]

Data ud af RPI

Med VNC kan man overføre filer og mapper, godt for backup, backup er vigtigt!!!

[width="300px"]
  • Med Raspbian, styresystemet, klik på VNC symbolet.
  • Vælg File Transfer fra drop down menuen i højre hjørne.
  • Find filen og overfør den.
+++ Opgavecoast.jpg
  • Overfør datafilen til computren og åben den, eks. i LoggerPro.
  • Undersøg hvor meget filen fylder og overvej om det kan give problemer i et 3 timer langt forsøg med maksimal 3Gb til rådighed.

Medmindre andet er angivet, er indholdet af denne side licenseret under Creative Commons Attribution-NonCommercial 3.0 License