| 1 | = Les minidrones de Parrot = |
| 2 | |
| 3 | Il existe différentes version. |
| 4 | |
| 5 | Au labo on a: |
| 6 | * minidrones blaze |
| 7 | * minidrones mars |
| 8 | * minidrones swat |
| 9 | * mambo fly |
| 10 | * swing (convertible) |
| 11 | |
| 12 | les minidrones semblent identiques et de "1ère" génération (a voir si le rolling spider n'est pas encore plus ancien et différent). |
| 13 | |
| 14 | Le mambo fly (et le swing?) est plus récent, il semble le seul compatible avec matlab (cf JDM). Voir notament https://github.com/Parrot-Developers/RollingSpiderEdu |
| 15 | |
| 16 | Quelques liens intéressants: |
| 17 | |
| 18 | http://wiki.paparazziuav.org/wiki/Ap.parrot_minidrone |
| 19 | |
| 20 | https://iot.goffinet.org/labs_mini-drone_controller.html |
| 21 | |
| 22 | |
| 23 | == les minidrones (blaze, mars et swat) |
| 24 | |
| 25 | une fois branchés en usb, appuyer 4 fois sur le bouton pour monter un réseau via usb (ip drone 192.168.2.1) |
| 26 | (ne semble marcher que sur le blaze!) |
| 27 | |
| 28 | |
| 29 | * ram 32Mo |
| 30 | * flash 128Mo |
| 31 | * cpu ARM926EJ-S 200MHz |
| 32 | * noyau 2.6.36 |
| 33 | * mpu6050: 3 acc et 3 gyros (i2c) |
| 34 | * capteur pression MS5607 (i2c) |
| 35 | * magneto akm8963?? (listé dans /dev) mais pas sur que le capteur soit la |
| 36 | * ultra son |
| 37 | |
| 38 | Se présente comme une clé usb par défaut. Les données sont dans /data/usb_disk.img |
| 39 | |
| 40 | |
| 41 | Lorsque l'on appuie 4 fois sur le bouton, se présente comme une clé usb, un eth et un port série. Les données sont dans /data/usb_debug_disk.img |
| 42 | |
| 43 | |
| 44 | === remonter / en rw === |
| 45 | |
| 46 | pour faire des modifs sur le rootfs: |
| 47 | |
| 48 | {{{ |
| 49 | mount -o remount,rw / |
| 50 | }}} |
| 51 | |
| 52 | === montages usb === |
| 53 | |
| 54 | * Voir [http://linux-sunxi.org/USB_Gadget/Mass_storage ici] pour la doc sur le montage usb |
| 55 | |
| 56 | * changer la taille des montages usb: |
| 57 | {{{ |
| 58 | vi /bin/delos_shell.sh |
| 59 | }}} |
| 60 | et redémarrer le drone |
| 61 | |
| 62 | * monter localement un fichier image |
| 63 | {{{ |
| 64 | mount -o loop /data/usb_disk.img /data/hds/usb/ |
| 65 | }}} |
| 66 | |
| 67 | === récuperer un rootfs custom === |
| 68 | |
| 69 | en vue d'en faire un chroot |
| 70 | |
| 71 | procédure complexe (à cause du peu de flash dispo), à voir si simplifiable |
| 72 | |
| 73 | * régler la taille du usb_disk.img pour mettre le rootfs |
| 74 | {{{ |
| 75 | mount -o remount,rw / |
| 76 | vi /bin/delos_shell.sh |
| 77 | }}} |
| 78 | * mettre le tar.gz sur la clé usb |
| 79 | * appuyer 4 fois sur le bouton |
| 80 | * libérer de la mémoire (pour le tmpfs) |
| 81 | {{{ |
| 82 | kk |
| 83 | killall BLEproxy |
| 84 | }}} |
| 85 | * faire un tmpfs |
| 86 | {{{ |
| 87 | mount -t tmpfs -o size=32M tmpfs /data/hds/tmp |
| 88 | }}} |
| 89 | * monter localement le fichier image |
| 90 | {{{ |
| 91 | mount -o loop /data/usb_disk.img /data/hds/usb/ |
| 92 | }}} |
| 93 | * copier le tar.gz sur le tmpfs |
| 94 | * effacer le disk.img pour gagner de la place |
| 95 | * décompresser le tar.gz |
| 96 | * régler la taille du usb_disk.img à une valeur faible |
| 97 | {{{ |
| 98 | vi /bin/delos_shell.sh |
| 99 | }}} |
| 100 | |
| 101 | === lancer le chroot === |
| 102 | |
| 103 | et un serveur ssh |
| 104 | {{{ |
| 105 | #kk |
| 106 | |
| 107 | #shutdown camera, dragon-prog uses too much cpu for optical flow |
| 108 | echo 0 > /sys/devices/platform/user_gpio/HRESET_CAM/value |
| 109 | |
| 110 | mount -o bind /dev /data/hds/rootfs/dev/ |
| 111 | mount -t sysfs sys /data/hds/rootfs/sys/ |
| 112 | mount -t proc proc /data/hds/rootfs/proc/ |
| 113 | |
| 114 | mount devpts /data/hds/rootfs/dev/pts -t devpts |
| 115 | |
| 116 | unset LD_PRELOAD |
| 117 | chroot /data/hds/rootfs/ /etc/init.d/dropbear start |
| 118 | }}} |
| 119 | |
| 120 | === bluetooth === |
| 121 | |
| 122 | voir [https://github.com/Parrot-Developers/RollingSpiderEdu/blob/master/Parrot_customFirmware/rollingspider.edu_quick_start.pdf ici] |
| 123 | |
| 124 | === lancer automatiquement un programme au démarrage === |
| 125 | Les minidrones (en tout cas le mambo) utilisent comme système de démarrage "boxinit". Probablement un développement maison parrot. |
| 126 | |
| 127 | Pour démarrer notre système automatiquement en fin de démarrage il faut |
| 128 | * créer le fichier 99-hds.rc qui contient |
| 129 | {{{ |
| 130 | service hds /data/hds/start.sh |
| 131 | disabled |
| 132 | oneshot |
| 133 | |
| 134 | on boot |
| 135 | start hds |
| 136 | }}} |
| 137 | * créer /data/hds/start.sh avec le contenu |
| 138 | {{{ |
| 139 | #!/bin/sh |
| 140 | /data/hds/chroot.sh > /data/hds/start.log |
| 141 | }}} |
| 142 | * rendre le script exécutable |
| 143 | {{{ |
| 144 | chmod +x /data/hds/start.sh |
| 145 | }}} |
| 146 | |
| 147 | On peut donc ensuite récupérer le log dans /data/hds/start.log |
| 148 | |
| 149 | == Mambo == |
| 150 | |
| 151 | * ram 64Mo |
| 152 | |
| 153 | Nécessite un custom firmware pour avoir le réseau sur bluetooth et le telnet: |
| 154 | https://github.com/Parrot-Developers/MinidronesEdu |
| 155 | |
| 156 | placer le fichier à la racine de la clé usb |
| 157 | (testé avec un firmware original en 2.6.6) |