RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

如何將Raspberry Pi相機用作Bash腳本的一部分?

電子設計 ? 來源:電路城 ? 作者:電路城 ? 2021-04-28 09:41 ? 次閱讀

Raspberry Pi相機非常有趣。它可用于傻瓜照片,定格動畫和計算機視覺項目。

為了介紹如何將相機用作Bash腳本的一部分,我們將使用帶有按鈕的相機,該按鈕將為圖像選擇一個隨機濾鏡。這些濾鏡中的一些可以增強圖像,有些可以將其更改為卡通,其他則可以產(chǎn)生藝術效果。

在The Pi Cast的最新一集中,我們使用Python創(chuàng)建了該項目的版本。在這里,您可以看到官方Raspberry Pi相機可能產(chǎn)生的所有圖像效果。

Bash終端是我們的編程環(huán)境,它是引入功能強大的腳本語言的好方法,該腳本語言經(jīng)常被其他語言所忽視。

我們在該項目中使用了Raspberry Pi 4,但也可以使用運行最新Raspberry Pi OS的任何其他Raspberry Pi模型來創(chuàng)建該項目。

對于此項目,您將需要:

? 任何樹莓派

? 任何Raspberry Pi攝像頭模塊(盡管沒有USB網(wǎng)絡攝像頭)

? 最新的Raspberry Pi操作系統(tǒng)

? 面包板

? 2x公對母跳線

? 一個按鈕

設置Raspberry Pi相機

如果您已經(jīng)熟悉如何設置Pi相機模塊,則可以跳過。這些步驟將適用于所有Raspberry Pi相機模塊(包括第三方模塊)。

關閉Raspberry Pi的電源。

1.輕輕向上提起塑料鎖,打開攝像頭端口。

2.插入帶狀連接器,使藍色卡舌面向USB /以太網(wǎng)端口。

3.合上連接器上的鎖,并輕輕拉動它以確保其就位。

4.打開Raspberry Pi的電源,然后轉(zhuǎn)到“首選項” 》》“ Raspberry Pi配置”。

5.單擊“接口”選項卡中“攝像機”的“啟用”按鈕。

6.單擊確定,然后重新啟動Pi。

7.打開終端,然后鍵入以下命令以快速拍照以測試相機。

$ raspistill -o test.jpg

經(jīng)過五秒鐘后,將拍攝圖像并將其另存為test.jpg。在繼續(xù)之前,使用文件管理器檢查圖像是否正確。

接線按鈕

一個有時被稱為“瞬時開關”的按鈕將用于觸發(fā)我們的項目。為此,我們需要通過面包板將按鈕連接到Raspberry Pi的GPIO。

1.將按鈕插入面包板,使支腿越過面包板的中央通道。

2.將公對母跳線的公端與面包板上按鈕的左上腿放在同一列中。將另一端連接 到Raspberry Pi的3.3V引腳。這是離Micro SD卡插槽最近的插針。

3.以與以前相同的方式,將按鈕的右上角連接到Raspberry Pi的GPIO 17(左列的六個引腳)。

為Raspberry Pi隨機圖像編寫代碼

編寫B(tài)ash代碼是在計算機上編寫任務腳本的好方法。Bash是一種功能強大的腳本語言,可以自動執(zhí)行許多任務。通過Raspberry Pi,我們還可以使用它與GPIO交互。

1.啟動Geany(從菜單中)并創(chuàng)建一個名為random-art.sh的新文件,并記住經(jīng)常保存。

2.輸入第一行代碼,這將告訴代碼在哪里可以找到Bash解釋器。

#!/bin/bash

3. 使用echo命令,我們將值寫入兩個文件。第一個使能GPIO 17,第二個將GPIO 17設置為輸入,默認情況下該輸入為關閉(0)。

echo “17” 》 /sys/class/gpio/export

echo “in” 》 /sys/class/gpio/gpio17/direction

4. 輸入一個用于存儲此項目中所有可能的圖像效果的數(shù)組??偣灿?0種效果,每種效果在數(shù)組中都有自己的位置,這使我們的代碼可以根據(jù)隨機數(shù)選擇特定的效果。

array[0]=“none”

array[1]=“negative”

array[2]=“solarise”

array[3]=“sketch”

array[4]=“denoise”

array[5]=“emboss”

array[6]=“oilpant”

array[7]=“hatch”

array[8]=“gpen”

array[9]=“pastel”

array[10]=“watercolour”

array[11]=“film”

array[12]=“blur”

array[13]=“saturation”

array[14]=“colourswap”

array[15]=“washedout”

array[16]=“posterise”

array[17]=“colourpoint”

array[18]=“colourbalance”

array[19]=“cartoon”

5.創(chuàng)建一個名為size的變量以存儲陣列中的效果數(shù)。此變量將存儲命令的輸出(通過{}),該命令檢查數(shù)組的長度。

size=${#array[@]}

6.使用while true循環(huán)不斷運行代碼的下一部分。

while true; do

7.創(chuàng)建另一個變量index,該變量將存儲一個介于零和數(shù)組長度(在本例中為20)之間的隨機數(shù)。

index=$(($RANDOM % $size))

8. 打印隨機選擇的圖像效果以進行調(diào)試。

echo ${array[$index]}

9.檢查連接到GPIO 17的按鈕的當前狀態(tài),并將其保存到變量data中。如果未按下,它將具有默認狀態(tài)off,即0。按下時,該值將變?yōu)閛n,即1。這是我們相機項目的觸發(fā)器。

data=“$(cat /sys/class/gpio/gpio17/value)”

10.使用條件測試來檢查存儲在數(shù)據(jù)變量中的值。如果值為1,則已按下按鈕。

if [ ${data} = “1” ]; then

11.按下按鈕后,下一步將創(chuàng)建一個時間戳并將其保存到名為TIME的變量中。

TIME=$(date +“%Y-%m-%d_%H%M%S”)

12.使用圖像效果拍照,然后使用時間戳記作為文件名保存圖像。

raspistill -ifx ${array[$index]} -o $TIME.jpg

13.關閉條件循環(huán),然后關閉while true循環(huán)。

fi

done

保存代碼。

完整的代碼:

#!/bin/bash

echo “17” 》 /sys/class/gpio/export

echo “in” 》 /sys/class/gpio/gpio17/direction

array[0]=“none”

array[1]=“negative”

array[2]=“solarise”

array[3]=“sketch”

array[4]=“denoise”

array[5]=“emboss”

array[6]=“oilpant”

array[7]=“hatch”

array[8]=“gpen”

array[9]=“pastel”

array[10]=“watercolour”

array[11]=“film”

array[12]=“blur”

array[13]=“saturation”

array[14]=“colourswap”

array[15]=“washedout”

array[16]=“posterise”

array[17]=“colourpoint”

array[18]=“colourbalance”

array[19]=“cartoon”

size=${#array[@]}

while true; do

index=$(($RANDOM % $size))

echo ${array[$index]}

data=“$(cat /sys/class/gpio/gpio17/value)”

if [ ${data} = “1” ]; then

TIME=$(date +“%Y-%m-%d_%H%M%S”)

raspistill -ifx ${array[$index]} -o $TIME.jpg

fi

done

運行代碼

要使代碼可執(zhí)行,請打開終端并導航到包含代碼的文件夾。輸入此命令。

$ chmod +x random-art.sh

要運行命令,請在終端類型中

。/random-art.sh

按下按鈕觸發(fā)代碼以選擇隨機圖像效果并拍照!
責任編輯:pj

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 連接器
    +關注

    關注

    98

    文章

    14476

    瀏覽量

    136428
  • usb
    usb
    +關注

    關注

    60

    文章

    7936

    瀏覽量

    264473
  • 計算機
    +關注

    關注

    19

    文章

    7488

    瀏覽量

    87849
  • 相機
    +關注

    關注

    4

    文章

    1350

    瀏覽量

    53580
收藏 人收藏

    評論

    相關推薦

    Protel99se 安裝好了,一部分ddb文件能打開一部分pcb格式打不開

    Protel99se 安裝好了,一部分ddb文件能打開,一部分pcb格式打不開,該怎么辦
    發(fā)表于 12-21 20:14

    保護您的 IP 核——第一部分軟 IP——前言

    保護您的 IP 核——第一部分軟 IP——前言 隨著全球化硬件設計和制造過程的激增以及IP供應商之間的競爭,IP盜版/假冒、虛假所有權等威脅正在加劇。因此,保護?? IP 核設計的要求及其代表的專有
    發(fā)表于 02-23 11:59

    ISDB放送標準中的一部分

    ISDB放送標準中的一部分,是日本的番組表顯示相關的。
    發(fā)表于 11-16 18:52 ?2次下載

    作為其最新教育推動的一部分 微軟Immersive Reader引入了虛擬現(xiàn)實

    作為其最新教育推動的一部分,微軟Immersive Reader引入虛擬現(xiàn)實。 該公司在BETT UK上展示了用于VR的Immersive Reader,展示了用戶如何將Immersive Reader工具與他們的VR頭顯配合
    發(fā)表于 01-23 16:08 ?860次閱讀

    有時你需要點收獲第一部分

    有時你需要點收獲第一部分
    發(fā)表于 04-20 10:31 ?1次下載
    有時你需要<b class='flag-5'>一</b>點收獲第<b class='flag-5'>一部分</b>

    一部分、硬件設計

    一部分、硬件設計我把個硬件系統(tǒng)分為五個單元:電源單元、單片機單元、輸入單元、輸出單元、通信單元。如下圖:
    發(fā)表于 12-09 12:36 ?16次下載
    第<b class='flag-5'>一部分</b>、硬件設計

    Raspberry Pi Bash Shell 腳本簡介

      拋開潛在的麻煩不談,Bash 可以是個非常強大的工具,讓您可以自動執(zhí)行各種任務。在即將發(fā)表的文章中,我展示如何使用 Bash 腳本
    的頭像 發(fā)表于 08-15 15:08 ?1191次閱讀
    <b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> <b class='flag-5'>Bash</b> Shell <b class='flag-5'>腳本</b>簡介

    為提高效率——如何將雙向功率流集成到UPS設計中(第一部分

    為提高效率——如何將雙向功率流集成到UPS設計中(第一部分
    發(fā)表于 11-01 08:27 ?0次下載
    為提高效率——<b class='flag-5'>如何將</b>雙向功率流集成到UPS設計中(第<b class='flag-5'>一部分</b>)

    Raspberry Pi和傳感器制作“可自動營造舒適空間的裝置” 第四部分?劇終篇

    第1回:用Raspberry Pi和傳感器制作“可自動營造舒適空間的裝置” 第一部分第2回:用Raspberry Pi和傳感器制作“可自動營
    的頭像 發(fā)表于 02-24 10:17 ?753次閱讀
    用<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>和傳感器制作“可自動營造舒適空間的裝置” 第四<b class='flag-5'>部分</b>?劇終篇

    Raspberry Pi和傳感器制作“可自動營造舒適空間的裝置” 第二部分

    大家好,我是吉田!我們這次要創(chuàng)作款讓家中更舒適、讓在家辦公更高效的設備,本文是第二部分。第一部分介紹了制作綱要和所需部件。這次我們實際連接Bluetooth傳感器和
    的頭像 發(fā)表于 03-01 11:15 ?557次閱讀
    用<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>和傳感器制作“可自動營造舒適空間的裝置” 第二<b class='flag-5'>部分</b>

    通過Twython在Raspberry Pi上發(fā)推文!(第2部分

    歡迎來到通過“Twython”在Raspberry Pi上發(fā)推文的第2部分。和上次樣,我們遵循Ras
    的頭像 發(fā)表于 03-01 10:19 ?721次閱讀
    通過Twython在<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>上發(fā)推文?。ǖ?<b class='flag-5'>部分</b>)

    使用Raspberry Pi 3自制智能相框和日歷—第二部分

    本教程的第二部分將帶您完成構建智能相框和日歷的框架、連接PIR運動傳感器和控制相框幻燈片顯示向日歷顯示的過渡這些步驟。該項目繼續(xù)使用本教程的使用Raspberry Pi 3自制智能相
    的頭像 發(fā)表于 02-24 17:51 ?1337次閱讀
    使用<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> 3自制智能相框和日歷—第二<b class='flag-5'>部分</b>

    使用Raspberry Pi 3自制智能相框和日歷—第一部分

    該項目將使用具有Raspbian Jessie操作系統(tǒng)的Raspberry Pi 3 B型進行構建。我指導您完成Raspberry Pi
    的頭像 發(fā)表于 02-24 17:08 ?1202次閱讀
    使用<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> 3自制智能相框和日歷—第<b class='flag-5'>一部分</b>

    基于Raspberry Pi的DIY無人機第3部分–FPV設置指南

    本文是我們Raspberry Pi四軸飛行器系列的最后一部分。有關本教程的其他部分,請參考《DIYRaspberry Pi無人機:機械構造–
    的頭像 發(fā)表于 02-24 17:46 ?5032次閱讀
    基于<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>的DIY無人機第3<b class='flag-5'>部分</b>–FPV設置指南

    FPGA立體相機設置-第一部分

    電子發(fā)燒友網(wǎng)站提供《FPGA立體相機設置-第一部分.zip》資料免費下載
    發(fā)表于 06-29 09:27 ?0次下載
    FPGA立體<b class='flag-5'>相機</b>設置-第<b class='flag-5'>一部分</b>
    RM新时代网站-首页