İçindekiler:

Web Arayüzü ve Video Akışlı Ahududu Tankı: 8 Adım (Resimli)
Web Arayüzü ve Video Akışlı Ahududu Tankı: 8 Adım (Resimli)

Video: Web Arayüzü ve Video Akışlı Ahududu Tankı: 8 Adım (Resimli)

Video: Web Arayüzü ve Video Akışlı Ahududu Tankı: 8 Adım (Resimli)
Video: Ücretsiz Araçlarla İş İstasyonu Kurmak | Emre Kızılkaya 2024, Kasım
Anonim
Web Arayüzü ve Video Akışlı Ahududu Tankı
Web Arayüzü ve Video Akışlı Ahududu Tankı

Uzaktan Web Kontrolü ve Video Akışı yapabilen küçük bir WiFi Tankını nasıl gerçekleştirdiğimi göreceğiz.

Bu, elektronik ve yazılım programlama hakkında temel bilgi gerektiren bir öğretici olması amaçlanmıştır. Bu nedenle bir Tank şasi Kiti (3D yazıcı kullanarak yazdırmak yerine daha sonraki bir yükseltme olabilir) ve piller dahil toplam 6 bileşen seçtim. Yazılım tarafında, kurulum sürecini adım adım takip edebilirsiniz ve programlama minimumda tutulur, Raspberry hakkında temel bir bilgi yardımcı olabilir.

0'dan çalışmaya hazır tanka kadar 12 saatlik çalışma tahmin ettim. Tüm bileşenlerin toplam maliyeti 70€.

1. Adım: Malzeme Listesi

malzeme listesi
malzeme listesi
malzeme listesi
malzeme listesi
malzeme listesi
malzeme listesi
malzeme listesi
malzeme listesi

1 - DIY RC Robot Şasi Tankı - 32 (€)

www.banggood.com/DIY-RC-Robot-Chassis-Tan…

1 - Çift Kanallı L298N DC Motor Sürücü Kartı - 1, 39 (€)

www.banggood.com/Dual-Channel-L298N-DC-Mo…

1 - Raspberry Pi Zero W Başlangıç Seti - 26 (€)

amzn.eu/1ugAaMP

1 - 16 GB SD Kart - 5, 50(€)

www.gearbest.com/memory-cards/pp_337819.h…

1 - Model Zero için Raspberry Pi 5MP Kamera Modülü Web Kamerası - 8 (€)

www.gearbest.com/raspberry-pi/pp_612249.h…

1 - Güç Bankası 5V

1 - 9v pil

Karışık Breadboard Kablo Dupont Konnektörü

Raspberry kurulumu için fare, klavye, Monitör veya TV (isteğe bağlı, yalnızca ilk kurulumu kolaylaştırmak için)

2. Adım: Ana Bileşen Özellikleri

Motor

JGA25-370 DC redüktörlü motor

Bu motor, D şeklinde bir çıkış miline sahiptir.

Özellikler

· Çalışma gerilimi: 6 V ile 18 V arası

· Nominal voltaj: 12 V

· 12 V'ta serbest çalışma hızı: 399 RPM

· 12 V'ta serbest çalışma akımı: 50 mA

· 12V'de durma akımı: 1200 mA

· 12V'de durma torku: 2,2 kg.cm

· Dişli oranı: 1:21

· Redüktör boyutu: 19 mm

· Ağırlık: 84 gr

Çift Kanallı L298N DC Motor Sürücü Kartı

Çift H-köprü motor sürücüsü, iki DC motoru veya 4 telli iki fazlı step motorları çalıştırabilir. Motor durmasından korumak için dahili TSD.

Özellikler

· Modül besleme gerilimi: DC 2V-10V

· Sinyal giriş voltajı: DC 1.8-7V

· Tek çalışma akımı: 1.5A

· 2.5A'e kadar tepe akımı

· Düşük bekleme akımı (0,1uA'dan az)

· Dahili ortak iletim devresi, giriş terminali boş, motor arızalı değil

· Boyut: 24,7 x 21 x 7 mm

Adım 3: KABLOLAMA

KABLOLAMA
KABLOLAMA
KABLOLAMA
KABLOLAMA

Bu son kablolama olacak, ancak bazılarını kurmamız gerekmeden önce BEKLEYİN

yazılım ve hazır olduğunda buraya geri geldiğinde daha basit kablolama ile test etmek iyi bir fikirdir.

Biri motor için diğeri Raspberry için olmak üzere iki farklı güç kaynağına ihtiyacımız var.

Motor sürücüsü Çift Kanallı L298N DC Motor Sürücü Kartı (maksimum giriş voltajı DC 2V-10V) 9V pil ile çalışır ve Raspberry Pi standartlarda 5V USB akü kullanır.

Motor sürücüsünün GND pini akü eksi ve Raspberry Pi'ye (GND) bağlanacaktır. Raspberry Pi'nin GPIO pinleri motor sürücüsüne tablo olarak bağlanır.

Adım 4: RASPBERRY O. S.'NİN HAZIRLANMASI

Bu, Raspbian işletim sistemi için standart bir kurulumdur.

Web'de arama yapan birçok ayrıntılı öğretici, temel olarak adımlar şunlardır:

1. https://www.raspberrypi.org/downloads/raspbian/ adresinden MASAÜSTÜ iso RASPBIAN STRETCH'i indirin

2. 16 GB SD Kartı biçimlendirin, SD Biçimlendirici kullandım

3.. IMG dosyasını yazın, Win32DiskImager kullandım

Artık ahududunuz önyüklemeye hazırdır, onu bir USB güç kaynağına (5V, 2A) bağlayın ve ilk önyükleme kurulumuna hazırlanın. Fare, klavye ve monitör gibi harici cihazları kullanarak veya PC'nizi ve Raspberry'ye uzaktan bağlantı kullanarak bunu iki şekilde yapabilirsiniz. Bununla ilgili birçok öğretici var, biri:

Adım 5: WIFI TANKIMIZI NODE. JS VE WEBSOCKET. IO İLE NASIL KONTROL EDEBİLİRSİNİZ

NODE. JS VE WEBSOCKET. IO İLE WIFI TANKIMIZ NASIL KONTROL EDİLİR
NODE. JS VE WEBSOCKET. IO İLE WIFI TANKIMIZ NASIL KONTROL EDİLİR

Şimdi işimizi yürütmeye hazır Raspberry mikro PC'mizin yeni bir kurulumuna sahibiz, yani… tanka komut vermek için ne kullanıyoruz?

Python, Rapsberry projelerini çalıştırmak için yaygın olarak kullanılan kullanımı çok kolay bir dildir ve Rapsberry giriş ve çıkış pinleri (GPIO) ile etkileşim kurmak için de kolayca kullanılabilir

Ancak amacım, ortak bir web tarayıcısı kullanarak herhangi bir cihazdan (PC, cep telefonu, tablet…) tank wi-fi'mi bağlamak ve ayrıca ondan video akışı yapmaktı. Şimdilik Python'u unutun ve NODE. JS ve SOCKET. IO'ya geçelim.

NODE.js

Node.js (https://github.com/nodejs/node/wiki), js diline dayalı açık kaynaklı bir sunucu çerçevesi çalışmasıdır. Raspberry Pi Zero (ARMv6 CPU) kullandığım için otomatik kurulum işlemini (ARMv7 CPU için tasarlanmıştır) kullanamıyoruz ve bunu manuel olarak yapmamız gerekiyor:

Nodejs'i yerel olarak indirin, (ARMv6 için 7.7.2 sürümünü kullandım, diğer sürümleri buradan kontrol edin

pi@ahududu:~ $ wget

nodejs.org/dist/v7.7.2/node-v7.7.2-linux-…

Tamamlandığında, sıkıştırılmış dosyayı çıkarın:

pi@raspberry:~ $ tar -xzf node-v7.7.2-linux-armv6l.tar.gz

Dosyaları /user/local içine kopyalayın ve kurun

pi@raspberry:~ $ sudo cp -R node-v7.7.2-linux-armv6l/* /usr/local/

Nodejs'i yüklediğimiz konumu yola ekleyin, “.profile” dosyasını düzenleyin:

pi@raspberry:~ $ nano ~/.profile

Dosyanın sonuna aşağıdaki satırı ekleyin, kaydedin ve çıkın

YOL=$YOL:/usr/yerel/bin

İndirilen dosyayı kaldırın:.

pi@raspberry:~ $ rm ~/node-v7.7.2-linux-armv6l.tar.gz

pi@raspberry:~ $ rm -r ~/node-v7.7.2-linux-armv6l

nodejs kurulumunu kontrol etmek için aşağıdaki komutları yazın:

pi@ahududu:~ $ düğümü -v

pi@ahududu:~ $ npm -v

Yanıt olarak v7.7.2 ve v4.1.2'yi okumalısınız.

Her şey yolunda giderse, nodejs dosyalarınızı barındırmak için yeni bir klasör oluşturun:

pi@raspberry:~ $ mkdir nodehome

Yeni klasörün içine taşı:

pi@raspberry:~ $ cd nodehome

GPIO'yu en basit şekilde AÇIK ve KAPALI şekilde yönetmek için gereken ek modülü kurun:

pi@raspberry:~ $ npm kurulum onoff

Şimdi ilk projemiz “Blink.js”yi test etme zamanı, sonuç … yanıp sönen bir LED olacak

pi@raspberry:~ $ nano flash.js

Aşağıdaki kodu yapıştırın, kaydedin ve çıkın:

var Gpio = require('onoff'). Gpio; //onoff'u dahil et

var LED = new Gpio(3, 'out'); //GPIO 3'ü kullan

var flashInterval = setInterval(yanıp sönenLED, 250);

// her 250 ms'de bir LED yanıp söner

function yanıp sönmeLED() { // yanıp sönmeye başlama işlevi

Eğer

(LED.readSync() === 0) { //durum 0 ise (veya kapalıysa) pin durumunu kontrol edin

LED.writeSync(1);

//pin durumunu 1'e ayarla (LED'i aç)

} Başka {

LED.writeSync(0);

//pin durumunu 0'a ayarla (LED'i kapat)

}

}

function endBlink() { // yanıp sönmeyi durdurma işlevi

clearInterval(blinkInterval); // Göz kırpma aralıklarını durdur

LED.writeSync(0); // LED'i kapat

LED.unexport(); // GPIO'yu ücretsiz kaynaklara aktarma

}

setTimeout(endBlink, 5000); // 5 saniye sonra yanıp sönmeyi durdur

Şemada gösterildiği gibi bir LED, bir Direnç (200ohm) bağlayın ve projeyi çalıştırın:

pi@raspberry:~ $ düğümü blur.js

Düğüm hazır.

SOKET. IO

WebSocket, TCP bağlantısına dayalı bir bilgisayar iletişim protokolüdür, bir sunucu ve istemci oluşturmak için bir programcı sağlar. İstemci sunucuya bağlanır ve sunucuya ve sunucudan mesaj gönderir ve alır. Node.js için WebSocket uygulamasının adı Socket.io (https://socket.io/).

Socket.io'yu yükleyin:

pi@raspberry:~ $ npm socket.io yükleyin --save

Daha önce oluşturulmuş nodejs evinin içinde hareket et:

pi@raspberry:~ $ cd nodehome

Ve yeni bir “public” klasörü oluşturun:

pi@raspberry:~ $ mkdir public

Yeni örnek web sunucusu oluşturun, buna “webserver.js” adını verin

pi@raspberry:~ $ nano webserver.js

Aşağıdaki kodu yapıştırın, kaydedin ve çıkın:

var http = require('http').createServer(handler); // http sunucusu gerektir ve işlev işleyicisi ile sunucu oluştur()

var fs = require('fs'); // dosya sistemi modülü gerektir

http.listen(8080); //8080 numaralı bağlantı noktasını dinle

işlev işleyici (req, res) {//sunucu oluştur

fs.readFile(_dirname + '/public/index.html', function(err, data) { //oku

ortak klasördeki index.html dosyası

eğer (hata) {

res.writeHead(404, {'İçerik Türü': 'metin/html'}); //hata halinde 404 göster

dönüş res.end( 404 Değil

Bulundu );

}

res.writeHead(200, {'İçerik Türü': 'metin/html'}); //HTML yaz

res.write(veri); //veri yaz

index.html'den

dönüş res.end();

});

}

Bu web sunucusu, 8080 numaralı Raspberry bağlantı noktanızı dinleyecek ve onu bağlayan herhangi bir web istemcisine dosya sağlayacaktır. Şimdi barındırmak ve müşterilerimize sağlamak için bir şey yaratmamız gerekiyor: “public” klasörüne gidin: pi@raspberry:~ $ cd public

Yeni html dosyası “index.html” oluşturun:

pi@raspberry:~ $ nano index.html

Ekli "HelloWorld.txt" kodunu yapıştırın, kaydedin ve çıkın.

"nodehome" nodejs klasörünün içine taşıyın:

pi@raspberry:~ $ cd nodehome

HTTP web sunucusunu başlatın:

pi@raspberry:~ $ düğüm web sunucusu.js

Web sitesini https://Raspberry_IP:8080/ kullanarak bir tarayıcıda açın (Raspberry_IP'yi IP'nizle değiştirin)

Adım 6: VİDEO AKIŞ KAPASİTESİNİN EKLENMESİ

Bir Raspberry'de video akışını uygulamanın farklı yolları vardır, en kolayı

Şimdiye kadar bulduğum yol, harika bir performans olarak ve bir web arayüzüne entegre edilebilir, Miguel Mota'nın projesine dayanmaktadır:

miguelmota.com/blog/raspberry-pi-camera-bo…

Teşekkürler Miguel! Blogundan bu adımlar:

libjpeg8 ve cmake bileşenlerini kurun:

pi@raspberry:~ $ sudo apt-get install libjpeg8

pi@raspberry:~ $ sudo apt-get install libjpeg8-dev

pi@raspberry:~ $ sudo apt-get install cmake

Raspicam eklentisi ile mjpg-streamer'ı indirin:

pi@ahududu:~ $ git klonu

github.com/jacksonliam/mjpg-streamer.git ~/mjpg-streamer

Dizini değiştir:

pi@raspberry:~ $ cd ~/mjpg-streamer/mjpg-streamer-experimental

Derleme:

pi@raspberry:~ $ hepsini temizle

Eski mjpg-streamer'ı değiştirin:

pi@raspberry:~ $ sudo rm -rf /opt/mjpg-streamer

pi@raspberry:~ $ sudo mv ~/mjpg-streamer/mjpg-streamer-experimental

/opt/mjpg-yayıncı

pi@raspberry:~ $ sudo rm -rf ~/mjpg-streamer

Yeni bir "start_stream.sh" dosyası oluşturun, ekli "start_stream.txt" dosyasından kopyalayıp yapıştırın.

Yürütülebilir hale getirin (kabuk komut dosyaları oluşturun):

pi@raspberry:~ $ chmod +x start_stream.sh

Akış sunucusunu başlatın:

pi@raspberry:~ $./start_stream.sh

Web sitesini https://Raspberry_IP:9000 kullanarak bir tarayıcıda açın (Raspberry_IP'yi IP'nizle değiştirin)

Adım 7: TANK PROGRAMI

Her şey hazır, şimdi tankı kontrol etmek için web sayfamızı (index.html) ve komutlarımızı dinlemek için web sunucumuzu (webserver.js) oluşturmamız gerekiyor. Bu yüzden, şimdiye kadar görülen dosyaları (sadece sistemi test etmek için örnekler) ekli webserver.txt ve index.txt ile değiştirin.

Adım 8: KONTROL ARAYÜZÜ VE AKIŞ SUNUCUSU'nu BAŞLATIN

BAŞLAT KONTROL ARAYÜZÜ VE AKIŞ SUNUCUSU
BAŞLAT KONTROL ARAYÜZÜ VE AKIŞ SUNUCUSU

Hizmetleri başlatmak için iki terminal penceresi açın ve şu komutları çalıştırın:

düğüm düğümü/web sunucusu.js

./nodehome/start_stream.sh

Web sitesini https://Raspberry_IP:8080 kullanarak bir tarayıcıda açın (Raspberry_IP'yi IP'nizle değiştirin)

Önerilen: