/bionik-tbd

This project is experimental/personal, so use at your own risk.

Primary LanguageC++

bionik-tbd

Projekt eksperymentalny/wewnętrzny. Korzystaj na własną odpowiedzialność.

Wymagania

  • CMake >= 3.9
  • Boost >= 1.66
  • OpenCV >= 3.4
  • FFmpeg >= 3.4

Uruchamianie

# Pobieranie

git clone https://github.com/protecto/bionik-tbd.git
cd bionik-tbd


# Kompilacja

mkdir build
cmake ..
make


# Uruchamianie

# Podgląd
ffplay -v info -f mjpeg -i 'udp://127.0.0.1:5001?listen'

# Główny program
./robot

Konfiguracja systemu

Arch Linux ARM: Raspberry Pi

Instrukcja instalacji i wiki

Zainstalowane pakiety

base-devel
fish
pacaur
vim
wiringpi

Konfiguracja v4l2

Aby włączyć obsługę v4l2 należy utworzyć poniższe pliki konfiguracyjne. Dodatkowo, użytkownicy, który mają mieć prawo do korzystania z kamer (/dev/videoX) powinni być w grupie video.

/etc/modules-load.d/rpi-camera.conf
bcm2835-v4l2
/etc/modprobe.d/rpi-camera.conf
options bcm2835-v4l2 max_video_width=3240 max_video_height=2464

Konfiguracja udev

Tworząc poniższy plik konfiguracyjny umożliwiamy użytkownikom z grupy gpio korzystać z GPIO.

/etc/udev/rules.d/raspberrypi.rules
SUBSYSTEM=="bcm2835-gpiomem", GROUP="gpio", MODE="0660"

SUBSYSTEM=="gpio", GROUP="gpio", MODE="0660"
SUBSYSTEM=="gpio*", PROGRAM="/bin/sh -c '\
	chown -R root:gpio /sys/class/gpio && chmod -R 770 /sys/class/gpio;\
	chown -R root:gpio /sys/devices/virtual/gpio && chmod -R 770 /sys/devices/virtual/gpio;\
	chown -R root:gpio /sys$devpath && chmod -R 770 /sys$devpath\
'"

Konfiguracja sieci

Tworzymy profil awaryjny. Jeśli nie uda się uzyskać adresu IP poprzez DHCP, adres jest ustawiany na 192.168.123.101.

/etc/dhcpcd.conf
# ...

# define static profile
profile static_eth0
static ip_address=192.168.123.101/24
static routers=192.168.123.100
static domain_name_servers=192.168.123.100

# fallback to static profile on eth0
interface eth0
fallback static_eth0

Zmieniamy zarządce sieci z systemd-networkd na dhcpcd.

systemctl disable systemd-networkd.service
systemctl disable systemd-resolved.service
systemctl enable dhcpcd.service