İçindekiler:
- 1. Adım: Malzeme Listesi
- 2. Adım: Ana Bileşen Özellikleri
- Adım 3: KABLOLAMA
- Adım 4: RASPBERRY O.S.'NİN HAZIRLANMASI
- Adım 5: WIFI TANKIMIZI NODE.JS VE WEBSOCKET.IO İLE NASIL KONTROL EDEBİLİRSİNİZ
- Adım 6: VİDEO AKIŞ KAPASİTESİNİN EKLENMESİ
- Adım 7: TANK PROGRAMI
- Adım 8: KONTROL ARAYÜZÜ VE AKIŞ SUNUCUSU'nu BAŞLATIN
Video: Web Arayüzü ve Video Akışlı Ahududu Tankı: 8 Adım (Resimli)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:20
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
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
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
Ş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
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:
Çevrimiçi Balık Tankı Web Kamerası Yapmak!: 8 Adım (Resimlerle)
Çevrimiçi Balık Tankı Web Kamerası Yapma!: Bir IP kameranın kasasını doğrudan bir Balık Tankına takılabilmesi için modifiye etmek için adım adım kılavuz. Bunun gerekli olmasının nedeni, web kameralarının genellikle nesnenin önüne konacak şekilde tasarlanması veya bir standa ihtiyaç duymasıdır. Ancak bir Balık Ta ile
Ahududu Pi Üzerine Kurulu Otomatik Bahçe Sistemi Dış Mekan veya İç Mekan - MudPi: 16 Adım (Resimli)
Dış Mekan veya İç Mekanlar için Raspberry Pi Üzerine Kurulu Otomatik Bahçe Sistemi - MudPi: Bahçecilik yapmayı seviyor ama bakımını yapmaya zaman bulamıyor musunuz? Belki biraz susamış görünen veya hidroponiğinizi otomatikleştirmenin bir yolunu arayan bazı ev bitkileriniz var mı? Bu projede bu sorunları çözeceğiz ve temellerini öğreneceğiz
Muz/Ahududu Pi + Web Kameralı Arduino Rover: 9 Adım
Banana/Raspberry Pi + Webcamli Arduino Rover: Boş zamanlarımda yaptığım bir proje. Bir web arayüzü üzerinden kontrol edilen tam tahrikli 4 tekerlekli bir robottur. Herhangi bir yorumunuz veya sorunuz varsa, lütfen benimle iletişime geçmekten çekinmeyin. Bu projenin kendisi, 3D baskılı parçalar ve belirli kod parçalarını kullanır
8051 ile Keypad Arayüzü ve Keypad Numaralarını 7 Segmentte Görüntüleme: 4 Adım (Resimli)
8051 ile Tuş Takımı Arayüzü ve Tuş Takımı Numaralarının 7 Segmentte Görüntülenmesi: Bu derste size 8051 ile keypad'i nasıl arayüzleyebileceğimizi ve tuş takımı numaralarını 7 segmentli ekranda göstermeyi anlatacağım
R/C Buhar Türbini Tankı: 19 Adım (Resimli)
R/C Buhar Türbini Tankı: Ateşle oynamak için bir bahaneye mi ihtiyacınız var? O zaman bu türbin tankını inşa etmeyi düşünün. Komşunuzu çıldırtmayı ve kilometrelerce köpekleri çekmeyi garanti edin. Hoparlörlerinizi biraz kısın ve ne demek istediğimi anlamak için videoyu izleyin