注釈
こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。
参加する理由は?
エキスパートサポート:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。
学び&共有:ヒントやチュートリアルを交換してスキルを向上させましょう。
独占的なプレビュー:新製品の発表や先行プレビューに早期アクセスしましょう。
特別割引:最新製品の独占割引をお楽しみください。
祭りのプロモーションとギフト:ギフトや祝日のプロモーションに参加しましょう。
👉 私たちと一緒に探索し、創造する準備はできていますか?[ここ]をクリックして今すぐ参加しましょう!
3.1.1 写真撮影モジュール¶
はじめに¶
このキットには、カメラモジュールが装備されています。Raspberry Piを使用して写真を撮ってみましょう。
必要な部品¶
このプロジェクトには、以下のコンポーネントが必要です。
全てを一式で購入すると非常に便利です。リンクは以下です:
名前 |
このキットのアイテム |
リンク |
---|---|---|
Raphael Kit |
337 |
個別に購入する場合は、以下のリンクからどうぞ。
コンポーネントの紹介 |
購入リンク |
---|---|
実験手順¶
ステップ1: Raspberry Piのデスクトップに移動します。詳細なチュートリアルは、 Raspberry Piの接続 または リモートデスクトップ を参照してください。
ステップ2: ターミナルを開き、コードのフォルダに移動します。
cd ~/raphael-kit/python/
ステップ3: 実行します。
sudo python3 3.1.1_PhotographModule.py
コードが実行されると、カメラが写真を撮ります。 ~
ディレクトリ内に my_photo.jpg
という名前の写真が保存されます。
注釈
また、Python IDEを使って ~/raphael-kit/python/
パスの 3.1.1_PhotographModule.py
を開き、[実行]ボタンをクリックして実行、[停止]ボタンでコードを停止することもできます。
PCに写真をダウンロードしたい場合は、 Filezilla Software を参照してください。
コード
from picamera import PiCamera
import os
user = os.getlogin()
user_home = os.path.expanduser(f'~{user}')
camera = PiCamera()
def setup():
camera.start_preview(alpha=200)
def main():
camera.capture(f'{user_home}/my_photo.jpg')
while True:
pass
def destroy():
camera.stop_preview()
if __name__ == '__main__':
setup()
try:
main()
except KeyboardInterrupt:
destroy()
コード説明
from picamera import PiCamera
camera = PiCamera()
picamera
ライブラリをインポートして PiCamera
クラスをインスタンス化し、カメラモジュールを使用する。
start_preview(**options)
プレビューのオーバーレイを表示し、 alpha
でプレビューの透明度を変更します(0~255)。このメソッドは、カメラのプレビューをPiのプライマリディスプレイ(HDMIまたはコンポジット)にオーバーレイ表示します。デフォルトでは、レンダラーは不透明でフルスクリーンになります。
つまり、デフォルトのプレビューは、現在ディスプレイに表示されているものを上書きします。より具体的には、プレビューはX-Windowsのようなグラフィカルな環境には依存しません(TTYコンソールから非常に楽しく実行できます)。プレビューを停止し、再びディスプレイを表示するには、 stop_preview()
を呼び出します。プレビューは PiCamera
オブジェクトが生きている間に何度も開始したり停止したりすることができます。
camera.capture(f'{user_home}/my_photo.jpg')
カメラから画像をキャプチャし、 ~/
に保存する。
注釈
camera.capture()
関数と for
ループを併用することで連続撮影が可能です。また、 delay
関数で撮影間隔を調整することができます。
for i in 5:
camera.capture(f'{user_home}/my_photo%s.jpg' % i)