ArduPilot pour les débutants. Installer et configurer sur BeagleBone Blue

Nous, avec une Ă©quipe (Ă  laquelle vous pouvez vous joindre ) de personnes partageant les mĂȘmes idĂ©es de Habr, dĂ©veloppons un robot pour ramasser des balles de golf sur le practice . Il s'agit d'un robot de service hautement spĂ©cialisĂ©, nous prĂ©voyons donc de dĂ©velopper simultanĂ©ment un complexe logiciel et matĂ©riel unique, qui pourrait ĂȘtre utilisĂ© Ă  l'avenir comme base pour d'autres robots de service et UGV .



Dans le dernier article, nous avons expliquĂ© pourquoi nous nous sommes arrĂȘtĂ©s sur ce logiciel. Lors de la mise en place de notre projet, nous avons utilisĂ© les informations de l'article . En fait, nous prĂ©sentons ici la traduction de ce bref guide, peut-ĂȘtre que pour quelqu'un, il sera utile et vous aidera Ă  crĂ©er votre premier ou prochain robot.

Avant de commencer, je tiens à souligner qu'il vaut la peine d'utiliser BeagleBone Blue (il est toujours bleu). En rÚgle générale, nous attacherons quelques périphériques liés à la navigation, et ils ne fonctionneront pas correctement sans une puissance suffisante.

Partie 1. Préparer le BeagleBone


AccĂ©dez Ă  https://rcn-ee.net/rootfs/bb.org/testing/ et sĂ©lectionnez le rĂ©pertoire avec la derniĂšre date. Ouvrez ensuite le sous - rĂ©pertoire stretch-console . Ici, vous verrez plusieurs fichiers. TĂ©lĂ©chargez un fichier appelĂ© Quelque chose comme 'bone-debian-VV-console-armhf-20YY-MM-DD-1gb.img.xz' . Il s'agit d'une distribution Debian minimale contenant uniquement l'essentiel. Une alternative est l'image IoT (IoT = Internet of Things), qui est fournie avec des logiciels supplĂ©mentaires et peut rendre votre travail plus confortable si vous ĂȘtes nouveau sous Linux. Il est disponible sur le mĂȘme site.

Nous utilisons: 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 .

Ensuite, vous devrez flasher l'image sur la carte microSD. Que vous utilisiez Linux ou Windows, je recommande fortement un programme appelé Etcher pour cette tùche ( https://etcher.io/ ).

Vous pouvez maintenant tĂ©lĂ©charger BeagleBone Blue Ă  partir de la carte microSD. Cela dĂ©passe le cadre de ce document pour dĂ©crire en dĂ©tail toutes les mĂ©thodes d'interaction, mais souvent cela est rĂ©alisĂ© en se connectant via un cĂąble micro-USB ou via SSH (Ă  'debian@192.168.7.2', mot de passe 'temppwd') ou via le port COM ( Utilisateur Debian ', mot de passe' temppwd) dans un programme comme minicom ou PuTTY. Cette connexion Ă  la console Linux via le port COM. UART1 sur les versions BBB est toujours liĂ© Ă  la console, d'abord U-boot, puis Linux. Plus d'informations peuvent ĂȘtre trouvĂ©es ici: https://beagleboard.org/blue

Les pilotes BeagleBone sont livrĂ©s avec Windows 10. Sous Linux, BBB en tant que port COM USB universel peut ne pas ĂȘtre dĂ©tectĂ©. Si vous rencontrez des problĂšmes, essayez:

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 

J'espĂšre que vous ĂȘtes maintenant connectĂ© Ă  la ligne de commande. Nous commencerons par permettre Ă  l'utilisateur Debian d'exĂ©cuter sudo sans avoir Ă  saisir de mot de passe Ă  chaque fois (par la suite):

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

La prochaine tĂąche consiste Ă  mettre Ă  jour et Ă  installer le logiciel Ă  l'aide d'une connexion Internet abordable, il est donc temps de configurer connman pour un accĂšs Wi-Fi. Je fais cela parce que cela facilitera le travail Ă  l'avenir. Tout d'abord, notez le SSID et le mot de passe WiFi de votre routeur. Saisissez ensuite les informations suivantes:

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

La réponse ressemblera à ceci: «wifi_38d279e099a8_4254487562142d4355434b_managed_psk». Si vous ne voyez rien, essayez à nouveau - vous avez probablement fait une faute de frappe.

Maintenant, en utilisant cet ID réseau, nous allons entrer le fichier directement depuis le clavier (stdin) en utilisant cat, une ligne à la fois:

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

Important! Avant Ctrl + C, assurez-vous d'appuyer sur Entrée, sinon toute la ligne actuelle sera perdue.
Appuyez sur Ctrl-C pour quitter, puis tapez: quitter

La LED verte visible s'allume, ce qui signifie que le Wi-Fi est activĂ©. BBBlue est connectĂ© au routeur et son adresse IP sur votre rĂ©seau Wi-Fi peut ĂȘtre trouvĂ©e en utilisant:

 ip addr show wlan0 

Si, pour une raison quelconque, vous ne pouvez pas demander directement BBBlue, utilisez d'autres utilitaires tels que nmap (sudo nmap 192.168.0.0/24) ou en vous connectant Ă  votre routeur et en y cherchant d'autres moyens pour trouver son adresse IP.

Essayez maintenant de vous connecter via SSH en utilisant son adresse IP Wi-Fi. N'oubliez pas que 192.168.7.2 fonctionnera Ă©galement.

Si vous ne pouvez pas faire fonctionner le WiFi avec connman, ou si vous ne voulez tout simplement pas utiliser connman, vous pouvez utiliser la méthode suivante. Tout d'abord, tapez: sudo systemctl disable connman. Ensuite, avec votre SSID et votre mot de passe WiFi, éditez / 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 

Rechargez maintenant BBBlue avec: sudo reboot

AprĂšs vous ĂȘtre connectĂ©, tapez: sudo ifup wlan0. La LED verte doit s'allumer.

Si vous voulez que le BB ait une IP statique (disons 192.168.0.99), changez la section "# WiFi avec appareil embarqué (IP dynamique)". Section / etc / network / interfaces pour lire:

 # 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 

Mise à jour et installation de tous les programmes de support nécessaires:

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

Mettre Ă  jour les scripts: cd / opt / scripts & & git pull

Le noyau temps réel contient actuellement des bugs! Utilisez le correctif suivant: Spécifiez le noyau Ti en temps réel 4_4. N'utilisez pas 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 

Enfin, copiez am335x-bone blue.dtb (depuis le répertoire bin de ce référentiel) vers /boot/dtbs/4.4.113-ti-rt-r149

Installer le script sur l'exécution automatique

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

Réglez la fréquence

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

Configuration de bb-wl18xx-wlan0.service

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

Configuration de bb-wl18xx-wlan0.service

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

DĂ©sactiver Bluetooth (facultatif)

 sudo systemctl disable bb-wl18xx-bluetooth.service 

DĂ©veloppez la partition de carte microSD existante (/ dev / mmcblk0p1):

 sudo /opt/scripts/tools/grow_partition.sh 

Redémarrez maintenant:

 sudo reboot 

Partie 2. Installer ArduPilot sur un BeagleBone


Lorsque le BeagleBone redémarre, nous devons créer des fichiers texte. Tout d'abord, améliorer le fichier de configuration de l'environnement, / etc / default / ardupilot:
(Astuce: entrez sudoedit / etc / default / ardupilot et insérez votre propre adresse IP cible, par exemple 192.168.0.13)

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

Il s'agit d'une configuration assez typique.

Il s'agit du paramÚtre de lancement -C mappe le port série «Telem1» d'ArduPilot (SERIAL1, 57600 par défaut) pour UART1 dans BBBlue. Par exemple, j'ai une radio RFDesign 868x connectée à UART1. Il s'agit d'un canal de données bidirectionnel avec mon drone. Il envoie diverses données de télémétrie à la station de base et reçoit des commandes RTK et des corrections différentielles de la station de base.

Il s'agit du paramĂštre de lancement -A mappe le port sĂ©rie «Console» d'ArduPilot (SERIAL0, 115200 par dĂ©faut) avec le protocole, l'adresse IP de destination et le numĂ©ro de port en option. Par exemple, cela me permet de recevoir des donnĂ©es MAVLink provenant du Wi-Fi Ă  des fins de test. Vraiment utile, d'autant plus que les donnĂ©es peuvent immĂ©diatement ĂȘtre transmises Ă  Mission Planner et QGroundControl.

image

Il s'agit du paramĂštre de lancement -B mappe le port sĂ©rie «GPS» d'ArduPilot (SERIAL3, 57600 par dĂ©faut) avec Uart2 BBBlue (UART, vaguement marquĂ© «GPS» sur la carte elle-mĂȘme). Par exemple, j'ai un U-blox NEO-M8P connectĂ© Ă  UART2.

Il existe d'autres possibilitĂ©s - il existe d'autres options de lancement, avec des vitesses de port prĂ©dĂ©finies et les ports eux-mĂȘmes:

 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 

Consultez la documentation officielle d'ArduPilot pour plus d'informations sur les différents ports série: http://ardupilot.org/plane/docs/parameters.html?highlight=parameters

Ensuite, nous allons créer les fichiers de service ArduPilot systemd, un pour 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 

Un pour 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 

Un pour 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 

Et AntennaTracker aussi? Créez /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 

Allons dans le dossier sudo mkdir -p / usr / bin / ardupilot

Créez un fichier de configuration de fer pour ArduPilot, / usr / bin / ardupilot / aphw qui s'exécute avant les fichiers exécutables.

 #!/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 

Les lignes 5-7 incluent la puissance servo BBBlue + 5V, c'est-à-dire lorsque vous utilisez des servos. Pas nécessaire pour ESC.

La ligne 8 comprend le PRU.

Utilisez sudo chmod 0755 / usr / bin / ardupilot / aphw pour définir les autorisations pour ce fichier.

C'est presque arrivé! Vous devriez maintenant obtenir les derniers fichiers exécutables ArduCopter, ArduPlane, etc. créés spécifiquement pour l'architecture Arm BBBlue et les placer dans le répertoire / usr / bin / ardupilot. Mirko Denecke les a téléchargés sur son site Web ici: http://bbbmini.org/download/blue/

Copiez dans ce référentiel: https://github.com/imfatant/test/blob/master/bin/

N'oubliez pas de définir les droits: sudo chmod 0755 / usr / bin / ardupilot / a *

Si vous trouvez que vous devez compiler Ă  partir de la source, n’ayez pas peur - ce n’est pas si difficile. De plus, cela signifie que vous pouvez crĂ©er votre propre logiciel ArduPilot.

Les collecter sur le BBBlue lui-mĂȘme prendra trop de temps. Patrick Poirier explique le processus de BBBMINI (basĂ© sur le BeagleBone noir) sur son site Web. Voici la procĂ©dure spĂ©cifique Ă  BBBlue, en supposant que vous avez terminĂ© toutes les Ă©tapes jusqu'Ă  prĂ©sent et que vous ĂȘtes dans le rĂ©pertoire / 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 fournit également des instructions pour les compiler de maniÚre croisée sur un PC de bureau x64 relativement puissant dans Ubuntu, ce qui est beaucoup, beaucoup plus rapide.

Selon l'option logicielle dont vous avez besoin
sudo systemctl enable arducopter.service
ou
sudo systemctl enable arduplane.service
ou
sudo systemctl enable ardurover.service
ou
sudo systemctl enable antennatracker.service

AprÚs le redémarrage, votre ArduPilot devrait démarrer automatiquement. Vous verrez une LED rouge clignotante!

Vous pouvez consulter systemctl ( https://www.freedesktop.org/software/systemd/man/systemctl.html ). Quelques exemples de commandes utiles:

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

Partie 3. Connexion des périphériques


image

La configuration minimale de base comprendra probablement:

  • RĂ©cepteur R / C.
  • RĂ©cepteur GPS (avec ou sans boussole intĂ©grĂ©e).
  • Un modem radio pour un canal de donnĂ©es bidirectionnel, en particulier sur de longues distances.
  • (Le WiFi BBBlue intĂ©grĂ© est idĂ©al pour le dĂ©bogage et les tests Ă  courte portĂ©e si 2,4 GHz est disponible, mais pour quelque chose de plus intĂ©ressant, un canal de donnĂ©es bidirectionnel dĂ©diĂ© est recommandĂ©. Gardez Ă©galement Ă  l'esprit le type et l'emplacement des antennes qui utilisent tous ces Ă©lĂ©ments. )

Quelques mots sur les connecteurs, les cĂąbles et les outils dont vous avez besoin. Je vais donner quelques recommandations, sinon, si vous ĂȘtes dĂ©butant, vous pouvez dĂ©penser beaucoup de temps, d'efforts et d'argent. Le type de connecteur le plus couramment utilisĂ© est JST-SH 1,0 mm. Vous devez acheter plusieurs connecteurs femelles en tailles 4 et 6 positions et contacts Ă  sertir. Obtenez ensuite quelques mĂštres de fils de diffĂ©rentes couleurs.

Revenons donc à la connexion des périphériques:



RĂ©cepteur R / C: peut ĂȘtre dĂ©sactivĂ© Ă  tout contact + 5V et GND. Il ne reste plus qu'Ă  connecter la sortie SBUS, la sortie DSM ou la sortie PPM du rĂ©cepteur Ă  l'une des deux broches SBUS marquĂ©es sur le schĂ©ma. Les rĂ©cepteurs suivants ont Ă©tĂ© testĂ©s et fonctionnent:

FrSky ( https://www.frsky-rc.com/ ): R-XSR, XR4SB, X6R, X8R, R9 Slim et R9 Mini (les deux firmwares EU LBT 868 MHz et Universal 915 MHz).

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

TBS ( http://team-blacksheep.com/ ): Crossfire «complet» avec Nano Rx (Rx réglé sur le mode SBUS).

Soit dit en passant, ils parlent beaucoup du «SBUS inversé». En fait, SBUS n'est qu'un protocole de transfert de données en série que Futaba a inventé et que FrSky a copié. Il est à l'envers par rapport à l'UART «standard». Heureusement, l'Ardupilot Blue attend ce signal SBUS inversé, il n'y a donc pas besoin d'un inverseur de signal.

RĂ©cepteur GPS: la plupart des gens utilisent des rĂ©cepteurs u-blox, en particulier NEO-M8N et NEO-M8P. NEO-M8N est bon marchĂ© et abordable auprĂšs d'entreprises chinoises telles que HobbyKing, gĂ©nĂ©ralement sous forme de disque. IdĂ©alement, ils contiennent le rĂ©cepteur lui-mĂȘme, une trĂšs petite antenne patch en cĂ©ramique et comprennent souvent une boussole. Alors que BBBlue a dĂ©jĂ  une boussole intĂ©grĂ©e (AKM AK8963), ArduPilot peut ĂȘtre configurĂ© pour utiliser cette boussole «externe» au lieu de la sienne, pour Ă©viter les interfĂ©rences.

Une alternative (beaucoup) plus chÚre au NEO-M8N est le NEO-M8P. Ce récepteur prend en charge un mode de fonctionnement appelé «RTK», ou cinématique en temps réel, qui peut atteindre une précision de positionnement de quelques centimÚtres en temps réel. Cependant, ce type de présentation a un prix environ 10 fois plus cher que le NEO-M8N, et ceci sans station de base. Plus loin dans le manuel, je consacrerai une section spéciale au M8P.

Fichier de configuration 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 = IMU InvenSense MPU-9250 (Ă  bord), 0c = boussole AKM AK8963 (Ă  bord), 76 = baromĂštre Bosch BMP280 (Ă  bord).

 $ 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 = boussole Honeywell HMC5843 (externe) - souvent intégrée dans les modules GPS basés sur u-blox NEO-M8N.

Prise en main du logiciel Ground Control Station (GCS)


Téléchargez n'importe quel planificateur de mission (http://firmware.ardupilot.org/Tools/MissionPlanner/MissionPlanner-latest.msi) pour Windows ou QGroundControl (http://qgroundcontrol.com/) pour Linux et Windows. Ces deux programmes se connecteront aux flux de données MAVLink arrivant sur le réseau (par exemple, via le port UDP 14550) ou via les ports COM.

En option


Équiper votre bbblue basĂ© sur drone avec un haut-parleur Bluetooth peut ĂȘtre amusant, Ă  condition que les transmissions RF Bluetooth n'interfĂšrent pas avec d'autres systĂšmes. Il y a une tonne d'informations sur BlueZ / PulseAudio / ALSA, mais, heureusement, cela se rĂ©sume Ă  quelque chose d'assez simple.

a) installez d'abord le logiciel nécessaire (à l'aide de la console ou de l'image IoT):

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

b) Activer Bluetooth (si désactivé): sudo systemctl enable bb-wl18xx-bluetooth.service

c) Modifiez /etc/pulse/default.pa:
  ### Automatically suspend sinks/sources that become idle for too long # load-module module-suspend-on-idle 

d) Redémarrage: redémarrage sudo

e) AprÚs avoir chargé BBBlue, activez la colonne Bluetooth en mode connexion:

  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 

f) Enfin:

  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 

C'est tout! Soit dit en passant, si vous prévoyez d'utiliser un synthétiseur vocal, je recommande Festival.

Si vous voulez aider - veuillez m'Ă©crire dans le LAN ou VK , FB .

image habrastorage.org/webt/mt/lh/91/mtlh91x8jag1t-ibt_np3uayuke.jpeg

Merci d'avoir lu, demandez-nous et critiquez-nous complĂštement.

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


All Articles