Proses manufaktur
Potret lompat menakut-nakuti DIY dari awal menggunakan Raspberry Pi 3 B, Python, dan Video AtmosFX potret yang tidak hidup. Sekarang bulan Oktober lagi dan saya ingin membuat proyek Halloween menggunakan Raspberry Pi. Saya melihat beberapa potret angker berserakan di sana-sini, tetapi tidak ada satupun yang benar-benar menghadirkan ketakutan, hanya beberapa gerakan sederhana.
Saya memutuskan untuk memperluas ide itu dan mulai mencari beberapa jenis video lompat menakutkan yang bisa saya gunakan. Ini membawa saya ke AtmosFx, mereka memiliki beberapa video Unliving Portrait yang sangat keren yang masing-masing hanya seharga $7,99. Ini sempurna untuk apa yang saya pikirkan dan memungkinkan saya untuk memiliki lebih dari satu video jumpscare yang dapat saya pilih secara manual atau menjalankannya secara acak.
Berikut adalah video proyek yang telah selesai.
Saya tidak ingin menulis kode PIR dari awal, jadi saya mencari web untuk contoh mengakses PIR dengan Python. Saya menemukan artikel lama Oleh Arc Software yang menunjukkan proyek serupa.
Kode yang saya sajikan sebagian besar berasal dari contoh mereka, tetapi saya membuat beberapa modifikasi untuk menyesuaikan dengan kebutuhan saya.
Setelah membongkar monitor LCD dan melepas panel LCD dan elektronik, saya mengukur ukuran layar yang tepat 17 X 11, dalam orientasi potret.
Saya menggunakan alat online ini untuk mengetahui cara mengukur potongan bingkai agar sesuai dengan panel LCD saya.
Saya membuat bingkai kayu menggunakan kayu 1″ x 2″ yang akan memiliki dimensi dalam 17″ x 11″, yang akan menahan LCD. Saya memotong 4 bagian yang ketika dibingkai bersama-sama akan menjadi ukuran yang tepat dari LCD saya dan memasang LCD ke dalam bingkai dan membuat LCD rata dengan bingkai LCD. Bingkai foto menempel pada bingkai LCD dan membuat semua barang elektronik dapat diakses dari belakang.
Setelah mewarnai bingkai foto dan membiarkannya kering, saya menggunakan brad nailer untuk menempelkan bingkai foto ke bingkai LCD.
Rakitan Bingkai LCD
Selanjutnya saya memasang Raspberry Pi menggunakan mount kecil yang bagus dari Thingiverse.com (Pi Side Mount) yang saya cetak dengan printer 3D saya.
Saya menggunakan dudukan Cermin untuk memasang LCD pada tempatnya agar tidak bergeser dan menjaganya tetap rata dengan bagian depan bingkai terhadap bingkai gambar.
Langkah terakhir perakitan adalah mengebor keseluruhan untuk sensor PIR dan memasangnya ke header GPIO dari Pi. PIR cukup sederhana, memiliki hot, ground, dan pin sensor.
Saya menggunakan tiga video Unliving Portrait dari AtmosFX dalam proyek saya.
Hambatan pertama adalah memutar video saat ada gerakan yang terdeteksi, bukan hanya loop terus-menerus di layar. Saya dapat memuat video dan kemudian menjedanya pada frame pertama dan kemudian ketika ada gerakan membuatnya terus bermain dan ketika selesai mengatur ulang dan memulai dari awal lagi.
Akan lebih mudah untuk menampilkan gambar diam dari frame pertama dan kemudian ketika gerakan terdeteksi, jalankan OMXPlayer untuk memutar file video yang sesuai. Keuntungannya adalah ketika OMXPlayer keluar, file yang dimuat masih akan berada di framebuffer dan berada di layar.
Untuk menampilkan gambar awal saya menggunakan Linux FBI (framebuffer imageviewer).
Pemutar yang digunakan adalah OMXPlayer dan meskipun mendukung jeda, tidak ada perintah baris perintah yang dapat saya panggil dengan Python untuk menjeda dan memainkan tanpa menerapkan sesuatu seperti DBuscontrol yang akan terlalu memperumit proyek.
Struktur folder di bawah ini cocok dengan jalur dalam skrip untuk mengakses gambar dan video. Jalur dapat diubah selama jalur dalam skrip diperbarui agar sesuai.
Struktur Folder yang Diperlukan untuk mencocokkan jalur skrip
Jadi untuk setiap video saya memuatnya di VLC dan melakukan screen cap dari frame pertama dalam resolusi yang sama dengan video sehingga mereka akan terhampar sempurna di layar dengan video saat diputar .
Ketiga video tersebut adalah Pria, Wanita, dan Anak-anak, jadi saya mengambil tutup layar masing-masing dan menamakannya MaleStart.png, FemaleStart.png, dan ChildStart.png. Saya membuat folder di proyek Halloween saya yang disebut ScareMedia dan mengunggah 3 foto.
Selanjutnya saya menamai setiap video MaleScare.mp4, FemaleScare.mp4 dan ChildScare.mp4, dan mengunggahnya ke folder ScareMedia.
Ada 2 skrip yang diperlukan untuk mengotomatiskan video pada deteksi gerakan.
pirDetect.py
#!/usr/bin/python
import RPi.GPIO sebagai GPIO
waktu impor
impor os
detektor kelas(objek):
def __init__(sendiri, sensor ):
self.callBacks =[]
self.sensor =sensor
self.currState =False
self.prevState =False
GPIO.setmode(GPIO.BOARD )
GPIO.setup(self.sensor, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
def read(self):
self.prevState =self.currState
self. currState =GPIO.input(self.sensor)
def printState(self):
print( “GPIO pin {0} adalah {1}”.format(self.sensor, “HIGH” jika self. currState else “RENDAH”))
def subscribe(self, callBack):
self.callBacks.append(callBack)
def callBack(self, state):
untuk fn in self.callBacks:
fn(state)
def start(self):
coba:
self.read()
self.printState()
while True:
self.read()
if self.currState !=self.prevState:
self.printState()
self.callBack(self.currState)
time.sleep(.1)
#Karena fbi tidak mengembalikan konsol dengan benar wh id aplikasi keluar kami melakukan sedikit pembersihan dan menangani acara KeyboardInterrupt.
kecuali (KeyboardInterrupt, SystemExit):
os.system('stty sane')
scare.py
#!/usr/bin/python
import subproses sebagai sp
waktu impor
impor os
dari pirDetect import *
import sys
video =[“ omxplayer”, “nama file”, “-o”, “keduanya”, “–win”, “0 0 1280 720”, “–aspect-mode”, “fill”, “–no-osd”, “–orientasi” ,“180”,“–vol”, “-600”]
scareFile =“/home/pi/Projects/Halloween/ScareMedia/{0}ScareV.mp4”.format(sys.argv[1])
print(scareFile)
def onMotion(currState):
if currState:
video[1] =scarFile
subVideo =sp.Popen(video)
sementara subVideo.poll() adalah Tidak Ada:
time.sleep(.1)
def showImage():
os.system(“sudo fbi -T 1 -d /dev/fb0 -noverbose -once /home/pi/Projects/Halloween/ScareMedia/{0}Start.png”.format(
sys.argv[1]))
showImage()
objDetect =detektor(7)
objDetect.subscribe(onMotion)
objDetect.start()
os.system(“sudo killall -9 fbi”)
Skrip menakut-nakuti dapat melewati satu parameter dengan urutan video yang ingin Anda putar. Nanti saya akan mengotomatiskan ini untuk memainkan salah satu dari ketiganya secara acak.
Ada juga modifikasi untuk menambahkan kamera Pi dan mengambil video 5 detik dari orang yang mengaktifkan gerakan dan menyimpannya ke Pi setiap kali gerakan terdeteksi. (Belum diterapkan).
Baca Selengkapnya Detail :Posssed Portrait – Diperbarui
Proses manufaktur
Komponen dan persediaan Arduino UNO × 1 Adafruit RGB Backlight LCD - 16x2 × 1 Breadboard (generik) × 1 Resistor 220 ohm × 1 Sakelar Tombol Tekan SparkFun 12mm × 1 Kabel jumper (generik) × 1 Kabel USB-A ke B × 1 Aplik
Dalam tutorial layar sentuh Arduino ini kita akan belajar cara menggunakan Layar Sentuh LCD TFT dengan Arduino. Anda dapat menonton video berikut atau membaca tutorial tertulis di bawah ini. Ringkasan Untuk tutorial ini saya menyusun tiga contoh. Contoh pertama adalah pengukuran jarak menggunakan
Rangka kaku (rigid frame) adalah konfigurasi struktural yang terdiri dari rangka yang sambungan antar semua bagiannya ditetapkan pada sudut tertentu yang tidak berubah. Potongan struktural baja adalah yang paling umum, tetapi jenis potongan rangka lainnya juga dapat digunakan, termasuk potongan stru
Tampilan layar ada di mana-mana saat ini. Apakah Anda masih ingat TV atau monitor komputer 20 tahun yang lalu? Mereka berbentuk segi empat, besar dan berat. Sekarang mari kita lihat layar datar, tipis dan ringan di depan Anda, pernahkah Anda bertanya-tanya mengapa ada perbedaan yang begitu besar? S