ArduPilot للمبتدئين. التثبيت والتكوين على BeagleBone Blue

نحن مع فريق ( يمكنك الانضمام إليه ) من الأشخاص ذوي التفكير المماثل من هبر نقوم بتطوير روبوت لجمع كرات الجولف في مجال القيادة . هذا روبوت خدمة متخصص للغاية ، لذلك نخطط لتطوير في وقت واحد مجمع برامج وأجهزة واحد يمكن استخدامه لاحقًا كأساس لروبوتات الخدمة الأخرى و UGV .



في آخر مشاركة ، وصفنا سبب توقفنا عن استخدام هذا البرنامج. عند إعداد مشروعنا ، استخدمنا المعلومات من المقالة . في الواقع ، نقدم هنا ترجمة هذا الدليل المختصر ، ربما بالنسبة لشخص ما سيكون مفيدًا ويساعدك على إنشاء الروبوت الأول أو التالي.

قبل أن أبدأ ، أريد أن أؤكد أنه يجدر استخدام BeagleBone Blue (لا يزال أزرق). كقاعدة ، سنقوم بإرفاق عدد غير قليل من الأجهزة الطرفية المتعلقة بالملاحة ، ولن تعمل بشكل صحيح بدون طاقة كافية.

الجزء 1. إعداد BeagleBone


انتقل إلى https://rcn-ee.net/rootfs/bb.org/testing/ وحدد الدليل بأحدث تاريخ. ثم افتح الدليل الفرعي لوحدة التحكم القابلة للتمدد . هنا سترى عدة ملفات. قم بتنزيل ملف يسمى شيء ما مثل 'bone-debian-VV-console-armhf-20YY-MM-DD-1gb.img.xz' . هذا هو توزيع ديبيان البسيط الذي يحتوي على الأساسيات فقط. البديل هو صورة IoT (IoT = Internet of Things) ، والتي تأتي مع برامج إضافية ويمكن أن تجعل عملك أكثر راحة إذا كنت جديدًا على Linux. إنه متاح من نفس الموقع.

نستخدم: https://rcn-ee.net/rootfs/bb.org/testing/2018-10-07/stretch-console/bone-debian-9.5-console-armhf-2018-10-07-1gb.img .xz .

بعد ذلك ، ستحتاج إلى وميض الصورة على بطاقة microSD. سواء كنت تستخدم Linux أو Windows ، أوصي بشدة ببرنامج يسمى Etcher لهذه المهمة ( https://etcher.io/ ).

يمكنك الآن تنزيل BeagleBone Blue من بطاقة microSD. هذا يتجاوز نطاق هذا المستند ليصف بالتفصيل جميع طرق التفاعل ، ولكن غالبًا ما يتم ذلك عن طريق الاتصال عبر كابل micro-USB أو عبر SSH (إلى "debian@192.168.7.2" أو كلمة المرور "temppwd") أو من خلال منفذ COM ( مستخدم Debian '، كلمة المرور' temppwd) في برنامج مثل minicom أو PuTTY. هذا الاتصال بوحدة التحكم Linux من خلال منفذ COM. يتم ربط UART1 على إصدارات BBB دائمًا بوحدة التحكم ، أولاً U-boot ثم Linux. يمكن العثور على مزيد من المعلومات هنا: https://beagleboard.org/blue

تأتي برامج تشغيل BeagleBone مع Windows 10. في Linux ، قد لا يتم التقاط BBB كمنفذ USB COM عالمي. إذا كنت تواجه مشاكل جرب:

sudo -s cat >/etc/udev/rules.d/73-beaglebone.rules <<EOF ACTION=="add", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_interface", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="a6d0", DRIVER=="", RUN+="/sbin/modprobe -b ftdi_sio" ACTION=="add", SUBSYSTEM=="drivers", ENV{DEVPATH}=="/bus/usb-serial/drivers/ftdi_sio", ATTR{new_id}="0403 a6d0" ACTION=="add", KERNEL=="ttyUSB*", ATTRS{interface}=="BeagleBone", ATTRS{bInterfaceNumber}=="00", SYMLINK+="beaglebone-jtag" ACTION=="add", KERNEL=="ttyUSB*", ATTRS{interface}=="BeagleBone", ATTRS{bInterfaceNumber}=="01", SYMLINK+="beaglebone-serial" EOF udevadm control --reload-rules exit 

آمل أن تكون قد سجلت الدخول الآن إلى سطر الأوامر. سنبدأ بالسماح لمستخدم دبيان بتنفيذ sudo دون الحاجة إلى إدخال كلمة مرور في كل مرة (لاحقة):

 echo "debian ALL=(ALL) NOPASSWD: ALL" | sudo tee -a /etc/sudoers.d/debian >/dev/null 

المهمة التالية هي تحديث البرنامج وتثبيته باستخدام اتصال إنترنت ميسور التكلفة ، لذلك حان الوقت لإعداد كونمان للوصول إلى شبكة Wi-Fi. أفعل ذلك لأنه سيسهل العمل في المستقبل. أولاً ، اكتب كلمة مرور SSID و WiFi لجهاز التوجيه. ثم أدخل ما يلي:

  sudo -s connmanctl services | grep '<your SSID>' | grep -Po 'wifi_[^ ]+' 

ستبدو الإجابة كما يلي: "wifi_38d279e099a8_4254487562142d4355434b_managed_psk". إذا كنت لا ترى أي شيء ، فحاول مرة أخرى - ربما ارتكبت خطأ مطبعيًا.

الآن ، باستخدام معرف الشبكة هذا ، سنقوم بإدخال الملف مباشرة من لوحة المفاتيح (stdin) باستخدام cat ، سطر واحد في كل مرة:

  cat >/var/lib/connman/wifi.config [service_<your hash>] Type = wifi Security = wpa2 Name = <your SSID> Passphrase = <your WiFi password> 

هام! قبل Ctrl + C ، تأكد من الضغط على Enter ، وإلا سيتم فقد السطر الحالي بالكامل.
اضغط على Ctrl-C للخروج ، ثم اكتب: exit

سيتم تشغيل مؤشر LED الأخضر المرئي ، مما يعني أن Wi-Fi قيد التشغيل. BBBlue متصل بالموجه ويمكن العثور على عنوان IP الخاص به على شبكة Wi-Fi باستخدام:

 ip addr show wlan0 

إذا لم تتمكن لسبب ما من طلب BBBlue مباشرة ، استخدم أدوات مساعدة أخرى مثل nmap (sudo nmap 192.168.0.0/24) أو عن طريق تسجيل الدخول إلى جهاز التوجيه الخاص بك والبحث هناك بطرق أخرى للعثور على عنوان IP الخاص به.

حاول الآن الاتصال عبر SSH باستخدام عنوان IP لشبكة Wi-Fi. تذكر أن 192.168.7.2 سيعمل أيضًا.

إذا لم تتمكن من تشغيل WiFi مع connman ، أو إذا كنت لا ترغب في استخدام connman ، فيمكنك استخدام الطريقة التالية. أولا ، اكتب: sudo systemctl تعطيل connman. ثم ، باستخدام كلمة مرور SSID و WiFi ، قم بتحرير / etc / network / interfaces

 # The loopback network interface. auto lo iface lo inet loopback # WiFi w/ onboard device (dynamic IP). auto wlan0 iface wlan0 inet dhcp wpa-ssid "<your SSID>" wpa-psk "<your WiFi password>" dns-nameservers 8.8.8.8 1.1.1.1 # Ethernet/RNDIS gadget (g_ether). # Used by: /opt/scripts/boot/autoconfigure_usb0.sh iface usb0 inet static address 192.168.7.2 netmask 255.255.255.252 network 192.168.7.0 gateway 192.168.7.1 

الآن قم بإعادة تحميل BBBlue باستخدام: sudo reboot

بعد تسجيل الدخول ، اكتب: sudo ifup wlan0. يجب أن يضيء مصباح LED الأخضر.

إذا كنت تريد أن يكون لـ BB عنوان IP ثابت (على سبيل المثال 192.168.0.99) ، فقم بتغيير "# WiFi w / onboard device (dynamic dynamic)." القسم / etc / network / interfaces ليقرأ:

 # WiFi w/ onboard device (static IP). auto wlan0 iface wlan0 inet static wpa-ssid "<your SSID>" wpa-psk "<your WiFi password>" address 192.168.0.99 # <--- The desired static IP address of the BBBlue. netmask 255.255.255.0 gateway 192.168.0.1 # <--- The address of your router. dns-nameservers 8.8.8.8 1.1.1.1 

تحديث وتثبيت جميع برامج الدعم اللازمة:

 sudo apt-get -y update sudo apt-get -y dist-upgrade sudo apt-get install -y cpufrequtils git 

تحديث البرامج النصية: cd / opt / scripts & git pull

النواة في الوقت الحقيقي تحتوي حاليا على البق! استخدم الإصلاح التالي: حدد Ti في الوقت الحقيقي kernel 4_4. لا تستخدم 4_14.

 sudo /opt/scripts/tools/update_kernel.sh --ti-rt-channel --lts-4_4 sudo sed -i 's|uboot_overlay_pru=/lib/firmware/AM335X-PRU-RPROC-4-14-TI-00A0.dtbo|#uboot_overlay_pru=/lib/firmware/AM335X-PRU-RPROC-4-14-TI-00A0.dtbo|g' /boot/uEnv.txt sudo sed -i 's|#uboot_overlay_pru=/lib/firmware/AM335X-PRU-RPROC-4-4-TI-00A0.dtbo|uboot_overlay_pru=/lib/firmware/AM335X-PRU-RPROC-4-4-TI-00A0.dtbo|g' /boot/uEnv.txt 

أخيرًا ، انسخ am335x-bone blue.dtb (من دليل الحاوية في هذا المستودع) إلى /boot/dtbs/4.4.113-ti-rt-r149

قم بتثبيت البرنامج النصي على التشغيل التلقائي

 sudo sed -i 's/#dtb=/dtb=am335x-boneblue.dtb/g' /boot/uEnv.txt 

ضبط التردد

 sudo sed -i 's/GOVERNOR="ondemand"/GOVERNOR="performance"/g' /etc/init.d/cpufrequtils 

تكوين bb-wl18xx-wlan0.service

 sudo sed -i 's/RestartSec=5/RestartSec=1/g' /lib/systemd/system/bb-wl18xx-wlan0.service 

تكوين bb-wl18xx-wlan0.service

 sudo sed -i 's/RestartSec=5/RestartSec=1/g' /lib/systemd/system/bb-wl18xx-wlan0.service 

تعطيل Bluetooth (اختياري)

 sudo systemctl disable bb-wl18xx-bluetooth.service 

قم بتوسيع قسم بطاقة microSD الحالي (/ dev / mmcblk0p1):

 sudo /opt/scripts/tools/grow_partition.sh 

إعادة التشغيل الآن:

 sudo reboot 

الجزء 2. تثبيت ArduPilot على BeagleBone


عندما تتم إعادة تشغيل BeagleBone ، نحتاج إلى إنشاء بعض الملفات النصية. أولاً ، تحسين ملف تكوين البيئة ، / etc / default / ardupilot:
(تلميح: أدخل sudoedit / etc / default / ardupilot وأدخل عنوان IP الهدف الخاص بك ، على سبيل المثال 192.168.0.13)

 TELEM1="-C /dev/ttyO1" TELEM2="-A udp:<target IP address>:14550" GPS="-B /dev/ttyS2" 

هذا تكوين نموذجي إلى حد ما.

هذه هي معلمة التشغيل - خرائط C التي تحدد المنفذ التسلسلي "Telem1" الخاص بـ ArduPilot (SERIAL1 ، افتراضي 57600) لـ UART1 في BBBlue. على سبيل المثال ، لدي راديو 868x RFDesign متصل بـ UART1. هذه قناة بيانات ثنائية الاتجاه مع طائرتي بدون طيار. يرسل مختلف بيانات القياس عن بعد إلى المحطة الأساسية ويستقبل أوامر RTK والتصحيحات التفاضلية من المحطة الأساسية.

هذا هو معلمة التشغيل - خرائط A للمنفذ التسلسلي "وحدة التحكم" الخاص بـ ArduPilot (SERIAL0 ، افتراضي 115200) مع البروتوكول وعنوان IP الوجهة ورقم المنفذ الاختياري. على سبيل المثال ، يسمح لي هذا بتلقي بيانات MAVLink القادمة عبر شبكة Wi-Fi لأغراض الاختبار. مفيد حقًا ، خاصة وأن البيانات يمكن أن تذهب على الفور إلى Mission Planner و QGroundControl.

الصورة

هذا هو معلمة الإطلاق - B يعيّن المنفذ التسلسلي "GPS" الخاص بـ ArduPilot (SERIAL3 ، افتراضي 57600) مع Uart2 BBBlue (UART ، الذي يحمل علامة غامضة "GPS" على اللوحة نفسها). على سبيل المثال ، لدي U-blox NEO-M8P متصل بـ UART2.

هناك احتمالات أخرى - هناك خيارات تشغيل أخرى ، مع سرعات محددة مسبقًا للمنافذ والمنافذ نفسها:

 Switch -A --> "Console", SERIAL0, default 115200 Switch -B --> "GPS", SERIAL3, default 57600 Switch -C --> "Telem1", SERIAL1, default 57600 Switch -D --> "Telem2", SERIAL2, default 38400 Switch -E --> Unnamed, SERIAL4, default 38400 Switch -F --> Unnamed, SERIAL5, default 57600 

راجع وثائق ArduPilot الرسمية لمزيد من المعلومات حول المنافذ التسلسلية المختلفة: http://ardupilot.org/plane/docs/parameters.html؟highlight=parameters

بعد ذلك ، سننشئ ملفات خدمة ArduPilot systemd ، واحدة لـ ArduCopter ، /lib/systemd/system/arducopter.service:

 [Unit] Description=ArduCopter Service After=networking.service StartLimitIntervalSec=0 Conflicts=arduplane.service ardurover.service antennatracker.service [Service] EnvironmentFile=/etc/default/ardupilot ExecStartPre=/usr/bin/ardupilot/aphw ExecStart=/usr/bin/ardupilot/arducopter $TELEM1 $TELEM2 $GPS Restart=on-failure RestartSec=1 [Install] WantedBy=multi-user.target 

واحد لـ ArduPlane ، /lib/systemd/system/arduplane.service:

 [Unit] Description=ArduPlane Service After=networking.service StartLimitIntervalSec=0 Conflicts=arducopter.service ardurover.service antennatracker.service [Service] EnvironmentFile=/etc/default/ardupilot ExecStartPre=/usr/bin/ardupilot/aphw ExecStart=/usr/bin/ardupilot/arduplane $TELEM1 $TELEM2 $GPS Restart=on-failure RestartSec=1 [Install] WantedBy=multi-user.target 

واحد لـ ArduRover ، /lib/systemd/system/ardurover.service:

 [Unit] Description=ArduRover Service After=networking.service StartLimitIntervalSec=0 Conflicts=arducopter.service arduplane.service antennatracker.service [Service] EnvironmentFile=/etc/default/ardupilot ExecStartPre=/usr/bin/ardupilot/aphw ExecStart=/usr/bin/ardupilot/ardurover $TELEM1 $TELEM2 $GPS Restart=on-failure RestartSec=1 [Install] WantedBy=multi-user.target 

ماذا عن AntennaTracker أيضًا؟ إنشاء /lib/systemd/system/antennatracker.service:

 [Unit] Description=AntennaTracker Service After=networking.service StartLimitIntervalSec=0 Conflicts=arducopter.service arduplane.service ardurover.service [Service] EnvironmentFile=/etc/default/ardupilot ExecStartPre=/usr/bin/ardupilot/aphw ExecStart=/usr/bin/ardupilot/antennatracker $TELEM1 $TELEM2 $GPS Restart=on-failure RestartSec=1 [Install] WantedBy=multi-user.target 

دعنا نذهب إلى مجلد sudo mkdir -p / usr / bin / ardupilot

قم بإنشاء ملف تكوين حديدي لـ ArduPilot ، / usr / bin / ardupilot / aphw الذي يتم تشغيله قبل الملفات القابلة للتنفيذ.

 #!/bin/bash # aphw # ArduPilot hardware configuration. /bin/echo 80 >/sys/class/gpio/export /bin/echo out >/sys/class/gpio/gpio80/direction /bin/echo 1 >/sys/class/gpio/gpio80/value /bin/echo pruecapin_pu >/sys/devices/platform/ocp/ocp:P8_15_pinmux/state 

تتضمن الخطوط 5-7 قوة مضاعفات BBBlue + 5V ، أي عند استخدام الماكينات. لا حاجة ل ESC.

يشمل السطر 8 PRU.

استخدم sudo chmod 0755 / usr / bin / ardupilot / aphw لتعيين أذونات لهذا الملف.

كاد أن يحدث! الآن يجب أن تحصل على أحدث ملفات ArduCopter و ArduPlane وغيرها القابلة للتنفيذ التي تم إنشاؤها خصيصًا لهندسة Arm BBBlue ، ووضعها في دليل / usr / bin / ardupilot. قام ميركو دينيكي بتحميلها على موقعه على الإنترنت هنا: http://bbbmini.org/download/blue/

نسخ إلى هذا المستودع: https://github.com/imfatant/test/blob/master/bin/

لا تنسى ضبط الحقوق: sudo chmod 0755 / usr / bin / ardupilot / a *

إذا وجدت أنك بحاجة إلى الترجمة من المصدر ، فلا تخف - فهذا ليس صعبًا. بالإضافة إلى ذلك ، هذا يعني أنه يمكنك إنشاء برنامج ArduPilot الخاص بك.

سوف يستغرق جمعها على BBBlue نفسها الكثير من الوقت. يشرح باتريك بويرير عملية BBBMINI (استنادًا إلى BeagleBone الأسود) على موقعه على الويب. فيما يلي الإجراء الخاص بـ BBBlue ، بافتراض أنك أكملت جميع الخطوات حتى الآن وأنك في دليل / home / debian:

 sudo apt-get install g++ make pkg-config python python-dev python-lxml python-pip sudo pip install future git clone https://github.com/ArduPilot/ardupilot cd ardupilot git checkout Copter-3.6 # <-- For ArduCopter. git submodule update --init --recursive ./waf configure --board=blue # <-- BeagleBone Blue. ./waf sudo cp ./build/blue/bin/a* /usr/bin/ardupilot 

يوفر Patrick أيضًا تعليمات حول تجميعها على جهاز كمبيوتر مكتبي x64 قوي نسبيًا في Ubuntu ، وهو أسرع بكثير.

اعتمادًا على خيار البرنامج الذي تحتاجه
sudo systemctl تمكين arducopter.service
أو
sudo systemctl تمكين arduplane.service
أو
sudo systemctl تمكين ardurover.service
أو
sudo systemctl تمكين خدمة antennatracker.service

بعد إعادة التشغيل ، يجب أن يبدأ ArduPilot تلقائيًا. سترى ضوء LED أحمر وامض!

يمكنك التحقق من systemctl ( https://www.freedesktop.org/software/systemd/man/systemctl.html ). بعض أوامر الأمثلة المفيدة:

 sudo systemctl disable ... sudo systemctl start ... sudo systemctl stop ... 

الجزء 3. توصيل الأجهزة الطرفية


الصورة

من المرجح أن يتضمن الحد الأدنى الأساسي للتكوين ما يلي:

  • استقبال R / C.
  • جهاز استقبال GPS (مع أو بدون بوصلة مدمجة).
  • مودم راديو لقناة بيانات ثنائية الاتجاه ، وخاصة عبر مسافات طويلة.
  • (يعد WiFi BBBlue المدمج رائعًا لتصحيح الأخطاء والاختبار من مسافة قريبة إذا كان 2.4 جيجا هرتز متاحًا ، ولكن للحصول على شيء أكثر إثارة للاهتمام ، يوصى باستخدام قناة بيانات ثنائية الاتجاه مخصصة. ضع في اعتبارك أيضًا نوع الهوائي وموضعه الذي يستخدم كل هذه العناصر. )

بضع كلمات حول الموصلات والكابلات والأدوات التي تحتاجها. سأقدم بعض التوصيات ، وإلا ، إذا كنت مبتدئًا ، يمكنك قضاء الكثير من الوقت والجهد والمال. أكثر أنواع الموصلات استخدامًا هو JST-SH 1.0 مم. يجب عليك شراء العديد من الموصلات النسائية في 4 و 6 أحجام للموضع واتصالات تجعيد. ثم احصل على بضعة أمتار من الأسلاك بألوان مختلفة.

لذا ، عد إلى توصيل الأجهزة الطرفية:



مستقبل R / C: يمكن إيقاف تشغيله عند أي جهة اتصال + 5 فولت و GND. كل ما تبقى هو توصيل خرج SBUS الخاص بجهاز الاستقبال ، أو خرج DSM ، أو خرج PPM بأحد دبسي SBUS المميزين في الرسم التخطيطي. تم اختبار أجهزة الاستقبال التالية وهي تعمل:

FrSky ( https://www.frsky-rc.com/ ): R-XSR و XR4SB و X6R و X8R و R9 Slim و R9 Mini (كلا من الاتحاد الأوروبي LBT 868 ميجاهرتز و Universal 915 MHz firmwares).

Spektrum ( https://www.spektrumrc.com/ ): AR7700 DSMX مع PPM / SRXL / Remote Rx.

TBS ( http://team-blacksheep.com/ ): تبادل إطلاق نار "كامل" مع Nano Rx (تم تعيين Rx على وضع SBUS).

بالمناسبة ، يتحدثون كثيرًا عن "SBUS المقلوب". في الواقع SBUS هو مجرد بروتوكول نقل بيانات تسلسلي اخترعه فوتابا ونسخه FrSky. إنها مقلوبة مقارنة بـ UART "القياسي". لحسن الحظ ، يتوقع Ardupilot Blue إشارة SBUS المعكوسة ، لذلك ليست هناك حاجة لمحول إشارة.

جهاز استقبال GPS: يستخدم معظم الأشخاص أجهزة استقبال u-blox ، خاصةً NEO-M8N و NEO-M8P. NEO-M8N رخيصة ومعقولة التكلفة من الشركات الصينية مثل HobbyKing ، عادة في شكل قرص. بشكل ملائم ، تحتوي على جهاز الاستقبال نفسه ، وهو هوائي صغير من السيراميك ، وغالبًا ما يتضمن بوصلة. بينما يحتوي BBBlue بالفعل على بوصلة مدمجة (AKM AK8963) ، يمكن تكوين ArduPilot لاستخدام هذه البوصلة "الخارجية" بدلاً من البوصلة الخاصة بها ، لتجنب التداخل.

البديل الأكثر تكلفة (NEO-M8N) هو NEO-M8P. يدعم جهاز الاستقبال هذا وضع التشغيل المعروف باسم "RTK" ، أو الحركية في الوقت الفعلي ، والذي يمكن أن يحقق دقة تحديد الموقع لبضع سنتيمترات في الوقت الفعلي. ومع ذلك ، يأتي هذا النوع من العروض التقديمية بسعر أعلى بنحو 10 أضعاف من NEO-M8N ، وهذا بدون محطة أساسية. لاحقًا في الدليل ، سأكرس قسمًا خاصًا لـ M8P.

ملف تكوين I2C ArduPilot: /var/APM/{ArduCopter.stg،ArduPlane.stg،APMrover2.stg،AntennaTracker.stg}

 sudo apt-get install i2c-tools sudo i2cdetect -r -y 0 sudo i2cdetect -r -y 1 sudo i2cdetect -r -y 2 

 $ sudo i2cdetect -r -y 2 0 1 2 3 4 5 6 7 8 9 abcdef 00: -- -- -- -- -- -- -- -- -- 0c -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- -- 70: -- -- -- -- -- -- 76 -- 

68 = InvenSense MPU-9250 IMU (على متن الطائرة) ، 0c = بوصلة AKM AK8963 (على متن الطائرة) ، 76 = مقياس بوش BMP280 (على متن الطائرة).

 $ sudo i2cdetect -r -y 1 0 1 2 3 4 5 6 7 8 9 abcdef 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- 1e -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- 

1e = بوصلة Honeywell HMC5843 (خارجية) - غالبًا ما يتم دمجها في وحدات GPS القائمة على u-blox NEO-M8N.

الابتداء مع برنامج محطة التحكم الأرضية (GCS)


قم بتنزيل أي مخطط مهمة (http://firmware.ardupilot.org/Tools/MissionPlanner/MissionPlanner-latest.msi) لنظامي التشغيل Windows أو QGroundControl (http://qgroundcontrol.com/) لنظامي التشغيل Linux و Windows. سيتم توصيل كلا البرنامجين بتدفقات بيانات MAVLink الواردة عبر الشبكة (على سبيل المثال ، عبر منفذ UDP 14550) أو من خلال منافذ COM.

اختياري


يمكن أن يكون تجهيز bbblue المستند إلى طائرة بدون طيار بمكبر صوت Bluetooth أمرًا ممتعًا ، بشرط ألا تتداخل عمليات إرسال Bluetooth RF مع أي أنظمة أخرى. هناك الكثير من المعلومات حول BlueZ / PulseAudio / ALSA ، ولكن لحسن الحظ ، يتعلق الأمر بشيء بسيط جدًا.

أ) قم أولاً بتثبيت البرنامج اللازم (باستخدام وحدة التحكم أو صورة إنترنت الأشياء):

  sudo apt-get install -y bluetooth pulseaudio pulseaudio-module-bluetooth alsa-utils 

ب) تمكين البلوتوث (إذا كان معطلاً): sudo systemctl تمكين bb-wl18xx-bluetooth.service

ج) تحرير /etc/pulse/default.pa:
  ### Automatically suspend sinks/sources that become idle for too long # load-module module-suspend-on-idle 

د) إعادة التشغيل: إعادة تشغيل sudo

هـ) بعد تحميل BBBlue ، قم بتشغيل عمود Bluetooth في وضع الاتصال:

  bluetoothctl scan on agent on default-agent pair <Bluetooth speaker's MAC address> # <--- eg AB:58:EC:5C:0C:03 connect <Bluetooth speaker's MAC address> # <--- Sometimes unnecessary. trust <Bluetooth speaker's MAC address> scan off exit 

و) أخيراً:

  pulseaudio --start echo "connect <Bluetooth speaker's MAC address>" | bluetoothctl pactl list # <--- Use this to check that your Bluetooth speaker has been picked up by PulseAudio. pacmd set-card-profile 0 a2dp_sink aplay /usr/share/sounds/alsa/Front_Center.wav 

هذا كل شيء! بالمناسبة ، إذا كنت ستستخدم مركب الكلام ، فإنني أوصي بـ Festival.

إذا كنت تريد المساعدة - يرجى الكتابة لي في LAN أو VK ، FB .

الصورة habrastorage.org/webt/mt/lh/91/mtlh91x8jag1t-ibt_np3uayuke.jpeg

شكرا لقراءتك واسألنا وانتقدنا تماما.

Source: https://habr.com/ru/post/ar429510/


All Articles