Kamera für Pimatic - Raspberry Pi

Python auf Einplatinencomputer wie Raspberry Pi, Banana Pi / Python für Micro-Controller
Antworten
mango94
User
Beiträge: 10
Registriert: Mittwoch 29. August 2018, 11:19

Hallo!
Seit einiger Zeit beschäftige ich mich schon mit dem Raspberry Pi und Pimatic.

Bei meinem Projekt fehlt mir noch die Möglichkeit, meine Raspberry Kamera in Pimatic hinzuzufügen, da kein passendes Plugin verfügbar ist.
Also dachte ich mir, ich versuch es über einen Python Code, der dann mit der Camera ein Foto macht, und dann in einem Ordner, irgendwo am Pi ablegt.

Wäre super, wenn mir jemand mit der Formulierung helfen könnte, bzw zumindest einen Link, wo ich mich dann selbst zurechtfinden würde...


Danke :mrgreen:
Benutzeravatar
__blackjack__
User
Beiträge: 13079
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@mango94: Ich vermisse in dem Beitrag eine konkrete Frage die man beantworten könnte. :-)

Wo hakt das mit dem Photo machen und in einem Ordner ablegen denn?
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
mango94
User
Beiträge: 10
Registriert: Mittwoch 29. August 2018, 11:19

Eigentlich wollte ich das noch editieren, jedoch kam mir das Mittagessen dazwischen^^

Ist es für mich als Laie möglich, so einen Code zu schreiben? Ich werde mir mal einige Youtube Videos ansehen, vielleicht ist es mir dann klar, wie ich den Code formulieren muss.
Mit Python hatte ich noch nichts zu tun, ich weiß nur, dass man mit diesem Skript diverse Dinge ausführen kann, nur welche Codes ich benutzten muss, weiß ich leider nicht, ich hab bei meiner Google Suche leider nichts brauchbares gefunden.

LG
Benutzeravatar
__blackjack__
User
Beiträge: 13079
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@mango94: Wenn man etwas in Python programmieren möchte und kein Python kann, müsste man als erstes mal Python lernen. :-) In der Python-Dokumentation gibt es beispielsweise ein Tutorial.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
mango94
User
Beiträge: 10
Registriert: Mittwoch 29. August 2018, 11:19

Ich hab mir die letzten Tage ein paar Videos angesehen und einige Anleitungen dazu gelesen.

Mir ist aber noch immer nicht klar, ob ich für mein Vorhaben überhaupt Python benutzen kann.
Zur Zeit benutze ich Pimatic am Raspberry Pi um einige Zimmerpflanzen per Sensor abzufragen, und dann gegeben falls per Pumpe zu gießen.

Die Grundfunktionen klappen, jedoch muss ich noch einige Optimierungen vornehmen, die über die Pimatic Regeln erfolgen werden. Hier ist das Problem, wie schon oben genannt, dass ich noch immer nicht weiß, wie ich einen SSH Befehl als Skript ausführen kann - ich konnte nur finden, wie man Hello World usw anzeigen lassen kann.
Dass #!/bin/bash im Skript ganz oben stehen muss, ist mir klar, jedoch wie der Rest aussieht, ist mir überhaupt nicht klar.

Wäre super, wenn mir jemand als kleines Beispiel einen Denkanstoß geben könnte.


Danke
Benutzeravatar
__blackjack__
User
Beiträge: 13079
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@mango94: Ob Dein Problem mit Python lösbar ist, weiss ich auch nicht. Dazu müsste man das Problem und Pimatic besser kennen. :-)

Wozu jetzt SSH noch in den Mix dazu kommt ist mir auch nicht klar, und ``#!/bin/bash`` ist die erste Zeile in Bash-Skripten, das ist ja noch mal etwas anderes. Bei Python steht da üblicherweise ``#!/usr/bin/env python`` (Python 2.x) beziehungsweise ``#!/usr/bin/env python3`` (Python 3.x).

Wofür möchtest Du denn ein Beispiel? Wenn das Problem nicht ausreichend beschrieben ist, dann nützen auch irgendwelche Beispiele nichts.

Was ist denn die Ausgangssituation? Du sagst was von einer Kamera — was für eine? Wie wird die angeschlossen/angesprochen? Webcam per USB? Oder eine speziellere Raspberry-Kamera per CSI?
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
mango94
User
Beiträge: 10
Registriert: Mittwoch 29. August 2018, 11:19

Danke für die Infos.
Kammera ist folgende: https://www.reichelt.at/raspberry-pi-ka ... pos_0&&r=1

Diese Kamera kann man in Pimatic nicht über Plugins einbinden, deshalb muss ich über die Regeln ein Skript erstellen, das mit der Kamera ein Foto macht. Das soll dann am Pi gespeichert werden.
Angeschlossen ist sie per 15-polige serielle MIPI-Schnittstelle (CSI-2).

Wäre echt super, wenn mir jemand einen Link zeigen kann, wie ich das formulieren muss. Vielleicht finde ich ja gleich was bei Google, was mir weiterhilft.

LG
Benutzeravatar
__blackjack__
User
Beiträge: 13079
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Für die Kamera gibt es das picamera-Modul. Das hat eine Dokumentation. Und direkt bei der Quelle der Hardware gibt es ein Tutorial: Getting started with picamera.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
mango94
User
Beiträge: 10
Registriert: Mittwoch 29. August 2018, 11:19

Danke!!! Sowas hab ich gesucht!

Freut mich :mrgreen:
mango94
User
Beiträge: 10
Registriert: Mittwoch 29. August 2018, 11:19

Also so einfach ist es dann doch nicht...

Ich bin gerade mitten im Tutorial, bei Punkt Camera Preview: https://projects.raspberrypi.org/en/pro ... picamera/5

Hier soll ich jetzt folgenden Code eingeben, im Python3 IDLE:

Code: Alles auswählen

from picamera import PiCamera
from time import sleep

camera = PiCamera()

camera.start_preview()
sleep(10)
camera.stop_preview()
und hier kommt die Fehlermeldung:

Code: Alles auswählen

Python 3.5.3 (/usr/bin/python3)
>>> %Run camera.py
  File "/home/pi/camera.py", line 1
    Python 3.5.3 (default, Jan 19 2017, 14:11:04)
             ^
SyntaxError: invalid syntax

>>> 
Ich habs dann mit noch einen anderem Code versucht, aber das hat auch nicht geklappt:

Code: Alles auswählen

from time import sleep
from picamera import PiCamera

camera = PiCamera()
camera.resolution = (1024, 768)
camera.start_preview()
# Camera warm-up time
sleep(2)
camera.capture('foo.jpg')
Versuchsweise hab ich in die erste Zeile auch noch #!/usr/bin/env python3 geschrieben, da hab ich auch einige Varianten getestet wie python3.5.3, python3.5 usw
Der Error Code war aber gleich, wie oben.

Hat vielleicht jemand eine Idee, wo der Fehler liegt?

LG
Tholo
User
Beiträge: 177
Registriert: Sonntag 7. Januar 2018, 20:36

Ich glaube du arbeitest in der idle falsch. Entweder man startet eine py Datei oder man führt den Code direkt im Idle aus.

Im Idle sobald
>>>

Code: Alles auswählen

from picamera import PiCamera
from time import sleep

camera = PiCamera()

camera.start_preview()
sleep(10)
camera.stop_preview()
Zeile für Zeile eingeben

Oder im terminal unter home/pi/

Code: Alles auswählen

Python3 camera.py
Benutzeravatar
__blackjack__
User
Beiträge: 13079
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@mago94: Du hast da offensichtlich ``Python 3.5.3 (default, Jan 19 2017, 14:11:04)`` in der ersten Zeile Deiner Datei stehen. Das ist kein gültige Pythonquelltext. Das ist die Ausgabe vom Python-Interpreter wenn man ihn ohne Angabe einer Datei startet. Oder was er in IDLE im Python-Shell-Fenster am Anfang ausgibt.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
mango94
User
Beiträge: 10
Registriert: Mittwoch 29. August 2018, 11:19

Danke, jetzt hat es geklappt!

Leider kann ich jetzt aber nur ein Bild abspeichern. Kann man das Skript nicht ändern, dass Datum+Uhrzeit in den Dateinamen geschrieben wird?

DANKE :D
Benutzeravatar
__blackjack__
User
Beiträge: 13079
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@mango94: Das gezeigte Programm speichert kein Bild. Wenn man ein Bild unter einem Namen speichert, dann kann man da auch Datum und Uhrzeit in den Namen einbauen. Im `datetime`-Modul gibt es passende Datentypen um mit Datums- und Zeitwerten zu arbeiten. Und wenn man mehr als ein Bild speichern möchte, also regelmässig wiederholend, braucht man eine Schleife. Da kommt einem das Wissen das man sich in einem Grundlagentutorial angeeignet hat zugute. In der Python-Dokumentation ist beispielsweise eines.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Antworten