
SONY, setelah memutuskan untuk tampil di pasar kamera aksi, merilis serangkaian perangkat HDR. Beckoning pelanggan dengan pengisian yang menarik - matriks yang baik, prosesor cepat, optik Zeiss dan penstabil gambar elektronik dengan bobot rendah, perusahaan menunjukkan "wajah sebenarnya dari kapitalisme".
Untuk mengontrol kamera, kendali jarak jauh dengan tampilan video melalui WiFi dilepaskan. Remote control cukup mahal dan pasokannya terbatas - sekarang hanya dapat dibeli di berbagai pasar loak elektronik.

Tapi ada WiFi, jadi Anda bisa mengendalikannya dari ponsel? Sudahkah Anda mencoba bermain ski atau wakeboarding dengan smartphone di tangan Anda? Tetapi ketidaknyamanan ini masih belum cukup:
SONY, yang sama sekali tidak memperhatikan pelanggannya, menghapus aplikasi PlayMemories Mobile dari Google Play untuk mengontrol kamera tindakannya melalui WiFi dari ponsel apa pun, menggantikannya dengan aplikasi smartwatch. Sebaliknya, ia meluncurkan
Imaging Edge Mobile - sangat tidak nyaman dan terus-menerus jatuh dari kamera. Lagu yang sama untuk aplikasi iPhone.
Sebagai
kontributor yang menipu , pengguna kamera HDR AS100, saya memutuskan untuk mencari solusi alternatif dan menemukan arsip yang agak menarik -
Sony Camera Remote API beta SDKSDK ditulis untuk mengembangkan aplikasi kontrol kamera SONY melalui WiFi dari perangkat Android dan iOS.
Di dalam arsip ada dua direktori dengan contoh untuk mengembangkan aplikasi Java untuk Android dan iOS. Paling menarik adalah
referensi API dokumen PDF
untuk Camera Remote API beta . Diputuskan - saya akan melakukan remote control dengan tangan saya sendiri
Apa yang ada di API Anda?
Pertama, ada tabel perangkat yang didukung untuk Februari 2017.
Berdasarkan tabel, API dengan berbagai tingkat fungsionalitas kompatibel dengan hampir semua kamera aksi HDR dari AS15 hingga AS300, kamera FDR, kamera seri DSC, ILCE dan NEX dengan antarmuka WiFi.
Selanjutnya, saya akan menjelaskan cara bekerja dengan kamera HDR AS100 dengan firmware terbaru 2.0.0, yang menyiratkan bahwa harus ada kompatibilitas dengan perangkat lain.
Kedua, protokol kontrol kamera. Setiap perangkat SONY dari daftar ini adalah server HTTP yang mengeksekusi permintaan dan juga mengeluarkan frame terpisah dalam format JPEG dan streaming video.
Tujuan saya adalah mengembangkan remote control yang ringkas dan termurah untuk kamera SONY
Untuk memulai, Anda perlu memastikan WiFi dihidupkan di menu kamera:
[SETUP] -> [CONFG] -> [Wi-Fi] -> [ON]
Pengenal dan kata sandi harus pada stiker terpisah dalam instruksi pengoperasian untuk kamera. Jika stiker ini hilang, Anda dapat menghubungkan kamera melalui MicoUSB ke komputer yang menjalankan Microsoft Windows dan menyalakannya. [USB] muncul di layar, dan dua drive jaringan di komputer - dengan kartu memori dimasukkan ke dalam kamera dan memori internal dari kamera PMHOME. Kami tertarik pada disk kedua
File: \\ INFO \ WIFI_INF.TXT berisi pengidentifikasi dan kata sandi untuk mengakses kamera melalui WiFi, dan file \\ INFO \ WPS_PIN.TXT berisi pin kunci untuk menghubungkan melalui WPS. Akses ke informasi hanya baca, jadi mengubah pengidentifikasi, kata sandi, atau pin tidak dimungkinkan.
Sekarang Anda dapat terhubung ke kamera dengan data ini. Alamat IP kamera setelah menghubungkan adalah 192.168.122.1. Untuk mengontrol kamera, Anda harus mengirim permintaan HTTP POST ke alamat
192.168.122.1 : 10000 / sony / camera.
Alamat berikut dapat digunakan untuk model kamera yang berbeda:
10.0.0.1 : 10000 / kamera
10.0.0.1 : 10000 / sony / kamera
192.168.122.1 : 8080 / sony / kamera
192.168.122.1 : 10000 / sony / kamera
Ketiga, struktur permintaan dan respons. Setiap permintaan berisi perintah dalam format JSON dan mengembalikan respons juga dalam format JSON. Daftar lengkap perintah, serta contoh penggunaan, terkandung dalam file PDF yang sama.
Juga, melalui protokol HTTP, file jadi dengan gambar dan aliran video untuk dilihat dari kamera dikembalikan.
Protokol yang paling sulit adalah permintaan informasi. Bergantung pada versi permintaan (1.0 - 1.3) itu menghasilkan array 34 hingga 62 parameter dalam format JSON, yang pada gilirannya juga dapat menjadi array, dan memiliki dua mode operasi - dengan respons langsung untuk melengkapi informasi tentang keadaan kamera dan dengan respons untuk peristiwa apa pun pada kamera (mis. beralih mode atau mulai merekam)
Pancake pertama ... LUTOM
Jantung perangkat akan menjadi
motor berapi -
api - MK termurah dengan WiFi - ESP8266 Cina. Benar, melihat gambar redup pada gambar pada layar grafis 240 × 320 menggunakan SPI, saya memutuskan untuk menunda produksi salinan panel kendali jarak jauh Sonykovsky saya dengan pratinjau video waktu-nyata, dan memilih fungsi sakelar hidup / mati biasa dengan pilihan mode. Layar adalah 0,91 ″ OLED satu warna dengan resolusi 32 × 128, yang biasanya digunakan dalam gelang kebugaran murah.
Skema Prototipe:

Desain Papan:


Ya, korban LUT:


Firmware
Saya merekomendasikan melewatkan bagian ini ke arduino-haters, karena saya mengembangkan firmware di Arduino IDE dengan ESP8266 Core diinstal. Untuk kenyamanan, saya menggunakan perpustakaan tambahan:
Dengan perpustakaan grafik, semuanya jelas. Mereka diperlukan untuk bekerja dengan layar OLED. WiFiManager adalah perpustakaan yang sangat nyaman untuk mengatur koneksi WiFi di ESP. Dalam hal memasuki mode pengaturan, itu meningkatkan titik akses ke ESP dan server WEB minimalis, yang dialihkan ketika terhubung. Anda dapat memulai dalam mode otomatis, tetapi kemudian mode pengaturan akan mulai setiap kali ketika tidak ada koneksi kamera. Saya memilih untuk masuk ke mode pengaturan dengan menekan lama tombol "BOOT / MODE" dan keluar dengan batas waktu 120 detik.
Pustaka WiFiManager juga nyaman karena Anda dapat menambahkan bidang Anda sendiri untuk penyesuaian (ini tidak berguna bagi saya dalam proyek ini), serta proses acara - masuk ke mode pengaturan dan simpan pengaturan.
Setelah pengaturan untuk menghubungkan ke kamera dikonfigurasikan, program membuat koneksi, yang tertulis di layar. Jika koneksi dibuat, program mengirim permintaan ke kamera untuk status saat ini setiap detik dan menampilkan perubahan di layar. Ini dilakukan agar Anda dapat melacak kontrol kamera langsung dari tombol di atasnya.
Dengan menggunakan tombol "BOOT / MODE", kami secara siklus mengganti tiga mode kamera utama - "VIDEO", "PHOTO" dan "LAPSE". Gunakan tombol MAINKAN / BERHENTI untuk menghidupkan / mematikan rekaman dalam mode VIDEO atau LAPSE dan merekam satu foto dalam mode PHOTO. Saat perekaman aktif, LED merah menyala. Saat merekam, foto berkedip sekali.
Ada juga input tambahan pada GPIO14, yang pada dasarnya menduplikasi tombol "MAINKAN / BERHENTI". Input ini diperlukan untuk menghubungkan pemicu eksternal, yang dapat menyinkronkan pengambilan foto untuk pemotretan selang waktu dengan peristiwa eksternal. Input ini saya rencanakan untuk terhubung ke printer 3D dan memotret komponen cetak video selang waktu.
Dari fungsi-fungsi tambahan, program secara berkala mengukur nilai input ADC, di mana pembagi terhubung langsung dari baterai, dan menampilkan status baterai dengan ikon. Program ini dikalibrasi pada pembagi R12 = 1.6K dan R11 = 10K dan baterai lithium.
Sayangnya, AS100 tidak mendukung output dalam JSON dari waktu perekaman dan jumlah pemotretan dalam mode time-lapse. Dalam sketsa, parameter-parameter ini ditulis ke dalam variabel, jika seseorang mengulangi, maka pada kamera lain mereka juga dapat ditampilkan.
Sampel "Industri"
Baru-baru ini, saya kecanduan
malas memesan papan di
JLCPCB dan sekarang, dalam urutan terakhir 100x100 ada ruang kosong.
Desain itu diselesaikan untuk instalasi dua arah, dan di sirkuit ditambahkan pengisian lithium pada TP4056:



Orang-orang Cina dengan takut-takut mencoba memberi tahu saya bahwa saya memesan beberapa papan dalam satu urutan. Tapi kita tidak terbiasa mundur - saya menggabungkan semua papan dengan bingkai umum pada sablon sutra, saya menghubungkan Zeil dari papan yang berbeda (tetap terpotong) dan bahkan menulis dalam bahasa Rusia bahwa ini adalah satu papan))))

Benar, Anda harus memotong papan secara manual, ada gunting logam yang bagus untuk ini.
Akibatnya, kami mendapatkan produk seperti itu


Kasing paling sederhana pada printer 3D:



Cara kerjanya:
Sekarang sedikit aplikasi
Mengapa input pemicu eksternal dimulai. Saya ingin mencoba memotret cetakan TimeLaps pada printer 3D menggunakan kamera SONY HDR AS100 saya. Untuk ini, saya di controller dan membuat input untuk pemicu eksternal. Ada beberapa cara untuk mengirim sinyal ke input ini.
Hubungkan ke pin bebas pengontrol dan jahit ke firmware printer kontrol input ini menggunakan perintah kode-G tambahan.
Instal OctoPrint dengan plugin
OptoLapse dan hubungkan input remote kontrol ke port Orange PI / Raspberry PI gratis.
Pasang sakelar batas tambahan yang terhubung ke pengontrol dan ambil kepala printer untuk mengambil gambar setiap frame sehingga menekan sakelar ini.
Saya mencoba metode ke-3:


Dia dengan cepat menulis naskah di lututnya di PHP, yang, setelah mencetak setiap lapisan, memasukkan kode retraksi kepala ke posisi saklar batas.
<?php $file1 = $argv[1]; $file2 = $argv[2]; if (!file_exists($file1)) { printf("Can't open %s\n",$file1); exit(1); } $flag = 0; $f1 = fopen($file1,"r"); $f2 = fopen($file2,"w"); while( !feof($f1) ){ $s = fgets($f1, 1024); $n = strpos($s,";LAYER:"); if( $n !== false )$flag = 1; if( $flag == 1 ){ $n1 = strpos($s,"G0 "); if( $n1 !== false ){ fprintf($f2, ";TIMELAPSE BEGIN\n"); fprintf($f2,"G10\n"); fprintf($f2, "G91\n"); fprintf($f2, "G0 F1000 Z10\n"); fprintf($f2, "G90\n"); fprintf($f2, "G0 F5000 Y230\n"); fprintf($f2, "G0 F5000 X178 Y230\n"); fprintf($f2, "G4 P1000\n"); fprintf($f2,"%s",$s); fprintf($f2,"G11\n"); fprintf($f2, ";TIMELAPSE END\n"); $flag = 0; } else { fprintf($f2,"%s",$s); } } else { fprintf($f2,"%s",$s); } } fclose($f1); fclose($f2); ?>
Kode-G setelah setiap lapisan terlihat seperti ini:
;TIMELAPSE BEGIN G91 G0 F1000 Z10 G90 G0 F5000 Y230 G0 F5000 X178 Y230 G4 P1000 G0 F6000 X93.168 Y92.836 Z0.3 ;TIMELAPSE END
Sayangnya, saya tidak bisa langsung menangani retrac printer, jadi video pertama keluar dengan nama "Printing snot")))
“Tetapi ini adalah kisah yang sangat berbeda” ©
Seluruh proyek OpenSource. Sumber firmware, file desain papan, sirkuit, dan model kasus
dapat diambil di GITHUB .
Artikel asli di blog saya