-
Notifications
You must be signed in to change notification settings - Fork 0
Rasppberry‐Pi Jetson Nano
Montaj tamamlandığında, yazılım Raspberry Pi'ye kurulabilir ve aşağıdaki adımlarla çalıştırılabilir.
Not: Tüm donanım bileşenlerine sahip değilseniz, tüm adımlara ihtiyacınız olmayabilir.
Bu proje, sürüm kontrolü için GitHub kullanmaktadır. Deposunu Raspberry Pi'nize veya Jetson Nano'nunuza klonlayın.
git clone https://github.com/dmt-labs/modular-biped.git
Terminalinizde, klonlanan dizine gidin ve kullanmak istediğiniz dalı seçin. Ana dal en kararlı ve güncel olanıdır. Dev dalı geliştirme için kullanılır ve kararlı olmayabilir.
git checkout main
Aşağıdaki komutlar, bir terminal kullanıyor olduğunuzu ve proje dizininde olduğunuzu varsayar.
Bir kurulum bash betiği mevcuttur. İzinleri verin ve çalıştırın.
chmod 777 install.sh
./install.sh
Tüm genel ve özellik özgü yapılandırmalar, proje modülleri dizinindeki config.py dosyasına eklenir.
Yapılandırmadaki her öğe, donanım kurulumunuzla eşleşmelidir.
Başlangıçta çalıştırmak için, /etc/rc.local
dosyasına ./startup.sh
betiğini çağıran bir çağrı ekleyin.
Servo aralıkları, hem modules/config.py
dosyasında hem de arduino_sketch/Config.h
dosyasında tanımlanmıştır. Bu, donanım kurulumunuza uymalıdır.
Servolar başlatıldıktan sonra, Arduino yazılımı servoların bu aralıkların dışına çıkmasını engeller. Bu, servolara ve robota zarar gelmesini önlemek içindir.
Önemli: Bu, başlangıç konumları için geçerli değildir, bu yüzden burada hangi değerleri ayarladığınıza dikkat edin.
Daha fazla bilgi için Arduino sayfasına bakın.
Normal başlangıç
./startup.sh
Klavye aracılığıyla manuel kontrolü gerçekleştirmek için:
./manual_startup.sh
Video akışının önizlemesini içeren başlangıcı yürütmek için (SSH aracılığıyla kullanılamaz):
./preview_startup.sh
Testler için PyTest kullanılmaktadır. Tüm testleri çalıştırmak için:
python3 -m pytest --cov=modules --cov-report term-missing
Şu anda test sınıfları sınırlıdır, ancak proje ilerledikçe eklenirler.
Başlangıç komutunu Pi'nin önyükleme dosyasına ekleyin (edit /etc/rc.local). Bu komutu projenin dizininde ./stop.sh komutunu çalıştırarak durdurabilirsiniz.
Aynı zamanda GPIO 26, bir anahtara basıldığında toprağa getirilerek kapatmayı sağlamak için bağlanmıştır.
Rehber: https://howchoo.com/g/mwnlytk3zmm/how-to-add-a-power-button-to-your-raspberry-pi
Komut dosyası:
#!/usr/bin/env python
import RPi.GPIO as GPIO
import subprocess
GPIO.setmode(GPIO.BCM)
GPIO.setup(26, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.wait_for_edge(26, GPIO.FALLING)
subprocess.call(['pkill', '-f', 'main.py'], shell=False) # Ana betiği güvenli bir şekilde sonlandır
subprocess.call(['shutdown', '-h', 'now'], shell=False)
WS1820B desteği, Pi GPIO pini 12 üzerinden sağlanır. Ne yazık ki bu ses çıkışını engeller. (bkz. tartışma)
sudo vim /boot/config.txt
#dtparam=audio=on
Neopixeller kullanılıyorsa uygulama sudo ile çalıştırılmalıdır.
Bu nedenlerle Neopixel gözü, RGB bir alternatif ile değiştirilmektedir.
https://learn.adafruit.com/neopixels-on-raspberry-pi/python-usage
Bir buzzer, ses tonlarının çalınabilmesi için GPIO 27'ye bağlıdır.
GPIO 13'te bir RCWL-0516 mikrodalga radar sensörü bulunmaktadır.
GPIO 18, 19 ve 20, stereo MEMS mikrofonlarına ses girişi olarak izin verir. Bu, etkinleştirmek için ek yapılandırma adımlarını içerir.
Mikrofon 3V'ü Pi 3.3V'ye
Mikrofon GND'si Pi GND'ye
Mikrofon SEL'i Pi GND'ye (bu kanal seçimi için kullanılır, 3.3V veya GND'ye bağlayın)
Mikrofon BCLK'si BCM 18 (pin 12)
Mikrofon DOUT'u BCM 20 (pin 38)
Mikrofon LRCL'si BCM 19 (pin 35)
sudo apt-get -y update
sudo apt-get -y upgrade
Yeniden başlat
cd ~
sudo pip3 install --upgrade adafruit-python-shell
wget https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/i2smic.py
sudo python3 i2smic.py
arecord -l
arecord -D plughw:0 -c2 -r 48000 -f S32_LE -t wav -V stereo -v file_stereo.wav
Not: Ses tanıma desteğini sağlamak için ek yapılandırmayı aşağıda bulabilirsiniz.
Ses tanıma tetikleyici kelimesi (şu anda kullanılmıyor): https://snowboy.kitt.ai/
Yüz görüldüğünde konuşma tanıma etkinleştirilir.
modules/speechinput.py
içinde belirtilen device_index
'in mikrofonunuzla eşleştiğinden emin olun. (aşağıya bakınız).
MEMS mikrofonu yapılandırması için aşağıya bakınız.
Varsayılan olarak, Adafruit I2S MEMS Mikrofon Breakout konuşma tanıma ile çalışmaz.
MEMS mikrofon(lar) için ses tanıma desteğini sağlamak için aşağıdaki yapılandırma değişiklikleri gereklidir.
sudo apt-get install ladspa-sdk
Aşağıdaki içerikle /etc/asound.conf
dosyasını oluşturun:
(slave.pcm "plughw:0"
satırında, 0
'ı arecord -l
'den kartınızın diziniyle değiştirin.)
pcm.pluglp {
type ladspa
slave.pcm "plughw:0"
path "/usr/lib/ladspa"
capture_plugins [
{
label hpf
id 1042
}
{
label amp_mono
id 1048
input {
controls [ 30 ]
}
}
]
}
pcm.lp {
type plug
slave.pcm pluglp
}
Bu, 'lp' adlı cihazın ses tanımında referans alınmasını sağlar. Aşağıdaki örnekteki gibi dizin 18
'de gösterilmiştir. Not: Modül otomatik olarak adı lp
olan cihazı algılayacak ve doğru dizini kullanacaktır.
Örnek oran ayrıca 16000
olarak ayarlanmalıdır.
mic = sr.Microphone(device_index=18, sample_rate=16000)
Referanslar:
Raspberry Pi'nin seri portunu kullanmak için önce getty'i devre dışı bırakmamız gerekiyor (giriş ekranını görüntüleyen program)
sudo raspi-config -> Interfacing Options -> Serial -> "Would you like a login shell to be accessible over serial" = 'No'. Restart
Pi GPIO 14 & 15 (tx & rx) arduino tx & rx (tx -> rx her iki yönde de!) mantıksal seviye kaydırıcı aracılığıyla bağlanır, çünkü Pi 3v3 ve arduino (muhtemelen) 5v'dir.
Arduino'daki taslak doğrudan Raspberry Pi üzerinden Arduino IDE kullanılarak güncellenebilir. Daha fazla bilgi için Arduino sayfasına bakın.
Özel bir PCB, Raspberry Pi'ye bağlanmak üzere tasarlanmıştır. Bu, circuits klasöründe bulunabilir.

Özel PCB kullanarak Raspberry Pi üzerinde kullanılan pinleri gösterir. Özellikler hakkında daha fazla bilgi için wiki'ye bakın.
LLC+MEMS+I2C - 3V3 (1) (2) 5V - Power
I2C GPIO2 (3) (4) 5V
I2C GPIO3 (5) (6) GND
GPIO4 (7) (8) GPIO14 - TX/RX
Ground - GND (9) (10) GPIO15 - TX/RX
GPIO17 (11) (12) GPIO18 - MEMS
Buzzer - GPIO27 (13) (14) GND
GPIO22 (15) (16) GPIO23
3V3 (17) (18) GPIO24
GPIO10 (19) (20) GND
GPIO9 (21) (22) GPIO25
GPIO11 (23) (24) GPIO8
GND (25) (26) GPIO7
GPIO0 (27) (28) GPIO1
GPIO5 (29) (30) GND
GPIO6 (31) (32) GPIO12
Motion - GPIO13 (33) (34) GND
MEMS - GPIO19 (35) (36) GPIO16
Shutdown - GPIO26 (37) (38) GPIO20 - MEMS
MEMS - GND (39) (40) GPIO21
Bu proje devam eden bir çalışmadır. Sorunlarınız veya sorularınız varsa lütfen github'da bir sorun açın ve kendim veya katkıda bulunanlardan biri yardımcı olabilir.