You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/no/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md

6.2 KiB

Ta et bilde - Virtuell IoT-maskinvare

I denne delen av leksjonen skal du legge til en kamerasensor til din virtuelle IoT-enhet og lese bilder fra den.

Maskinvare

Den virtuelle IoT-enheten vil bruke et simulert kamera som sender bilder enten fra filer eller fra webkameraet ditt.

Legg til kameraet i CounterFit

For å bruke et virtuelt kamera, må du legge til ett i CounterFit-appen.

Oppgave - legg til kameraet i CounterFit

Legg til kameraet i CounterFit-appen.

  1. Opprett en ny Python-app på datamaskinen din i en mappe kalt fruit-quality-detector med en enkelt fil kalt app.py og et Python-virtuelt miljø, og legg til CounterFit pip-pakkene.

    ⚠️ Du kan se instruksjonene for å opprette og sette opp et CounterFit Python-prosjekt i leksjon 1 hvis nødvendig.

  2. Installer en ekstra Pip-pakke for å installere en CounterFit shim som kan kommunisere med kamerasensorer ved å simulere noe av Picamera Pip-pakken. Sørg for at du installerer dette fra en terminal med det virtuelle miljøet aktivert.

    pip install counterfit-shims-picamera
    
  3. Sørg for at CounterFit-nettappen kjører.

  4. Opprett et kamera:

    1. I boksen Create sensor i Sensors-panelet, åpne rullegardinmenyen Sensor type og velg Camera.

    2. Sett Name til Picamera.

    3. Velg Add-knappen for å opprette kameraet.

    Kameraoppsett

    Kameraet vil bli opprettet og vises i sensorlisten.

    Kamera opprettet

Programmer kameraet

Den virtuelle IoT-enheten kan nå programmeres til å bruke det virtuelle kameraet.

Oppgave - programmer kameraet

Programmer enheten.

  1. Sørg for at fruit-quality-detector-appen er åpen i VS Code.

  2. Åpne filen app.py.

  3. Legg til følgende kode øverst i app.py for å koble appen til CounterFit:

    from counterfit_connection import CounterFitConnection
    CounterFitConnection.init('127.0.0.1', 5000)
    
  4. Legg til følgende kode i app.py-filen din:

    import io
    from counterfit_shims_picamera import PiCamera
    

    Denne koden importerer noen nødvendige biblioteker, inkludert PiCamera-klassen fra counterfit_shims_picamera-biblioteket.

  5. Legg til følgende kode under dette for å initialisere kameraet:

    camera = PiCamera()
    camera.resolution = (640, 480)
    camera.rotation = 0
    

    Denne koden oppretter et PiCamera-objekt og setter oppløsningen til 640x480. Selv om høyere oppløsninger støttes, fungerer bildegjenkjenneren med mye mindre bilder (227x227), så det er ikke nødvendig å ta og sende større bilder.

    Linjen camera.rotation = 0 setter rotasjonen av bildet i grader. Hvis du trenger å rotere bildet fra webkameraet eller filen, kan du justere dette etter behov. For eksempel, hvis du vil endre bildet av en banan på et webkamera i liggende modus til stående, sett camera.rotation = 90.

  6. Legg til følgende kode under dette for å fange bildet som binære data:

    image = io.BytesIO()
    camera.capture(image, 'jpeg')
    image.seek(0)
    

    Denne koden oppretter et BytesIO-objekt for å lagre binære data. Bildet leses fra kameraet som en JPEG-fil og lagres i dette objektet. Dette objektet har en posisjonsindikator for å vite hvor det er i dataene slik at mer data kan skrives til slutten om nødvendig, så linjen image.seek(0) flytter denne posisjonen tilbake til starten slik at alle dataene kan leses senere.

  7. Under dette, legg til følgende for å lagre bildet til en fil:

    with open('image.jpg', 'wb') as image_file:
        image_file.write(image.read())
    

    Denne koden åpner en fil kalt image.jpg for skriving, deretter leser den alle dataene fra BytesIO-objektet og skriver dem til filen.

    💁 Du kan fange bildet direkte til en fil i stedet for et BytesIO-objekt ved å sende filnavnet til camera.capture-kallet. Grunnen til å bruke BytesIO-objektet er at du senere i denne leksjonen kan sende bildet til bildegjenkjenneren din.

  8. Konfigurer bildet som kameraet i CounterFit vil fange. Du kan enten sette Source til File, deretter laste opp en bildefil, eller sette Source til WebCam, og bilder vil bli tatt fra webkameraet ditt. Sørg for at du velger Set-knappen etter å ha valgt et bilde eller webkameraet ditt.

    CounterFit med en fil satt som bildekilde, og et webkamera som viser en person som holder en banan i en forhåndsvisning av webkameraet

  9. Et bilde vil bli tatt og lagret som image.jpg i den gjeldende mappen. Du vil se denne filen i VS Code-utforskeren. Velg filen for å se bildet. Hvis det trenger rotasjon, oppdater linjen camera.rotation = 0 etter behov og ta et nytt bilde.

💁 Du finner denne koden i code-camera/virtual-iot-device-mappen.

😀 Kameraet ditt ble programmert med suksess!


Ansvarsfraskrivelse:
Dette dokumentet er oversatt ved hjelp av AI-oversettelsestjenesten Co-op Translator. Selv om vi streber etter nøyaktighet, vær oppmerksom på at automatiske oversettelser kan inneholde feil eller unøyaktigheter. Det originale dokumentet på sitt opprinnelige språk bør anses som den autoritative kilden. For kritisk informasjon anbefales profesjonell menneskelig oversettelse. Vi er ikke ansvarlige for misforståelser eller feiltolkninger som oppstår ved bruk av denne oversettelsen.