|
|
|
AR.Drone квадрокоптер. Программирование на java и С
|
|||
|---|---|---|---|
|
#18+
Пишем приложение на java с использованием библиотеки на С, для android Есть существенная разница между компиляторами языков java и С. Компилятор java делает код понятный для виртуальной java машины, которая преобразует его в код конкретной платформы, то есть в машинный код. Компилятор языка С сразу делает машинный код, то есть для каждой платформы у языка должен быть свой компилятор. Систематического руководства по этой задаче не нашел. Английский мой - нулевой. Погрузился в "поток сознания" русского сегмента. Как говорится - аллах акбар. Эту проблему для приложений на android решает пакет NDK. В общем надо его скачать, он существует в виде архива и распаковать в любое удобное место. Кроме NDK все советуют использовать пакет Sequoyah Чтобы его установить делаем в eclipse : Help - Install New Software, далее в поле Work with определяем адрес сетевой сервера откуда скачиваем пакет - Indigo repository - http://download.eclipse.org/releases/indigo/ Внизу появляется список, раскрываем пакет - Mobile and Device Development, и в нем выбираем "Sequoyah Android Native Code Support". Я не стал разбираться и отметил все позиции со словом Sequoyah Говорят, что eclipse использует для компиляции и сборки команду make и типа под windows можно сделать эмулятор linux c помощью cygwin. Сходил на сайт cygwin.com и установил его. Потренировался в создании библиотек и написании make-файлов Надо задать NDK location. Для этого в главном меню eclipse выбираем команду window - Preferences. Потом в диалоге Android - Native Development и NDK Собственно из приготовительных работ все. В качестве шаблона проекта использовал "hello-jni" из папки samples в NDK Сборка проекта. Создал проект hello-jni, скопировал туда файлы из шаблона. Выполнил операцию Add Native Support. Чтобы ее выполнить выделяем корневую папку проекта в окне "Project Explorer" eclipse, затем вызываем контекстное меню, правой кнопкой мыши, далее в списке команд ищем "Add Native Support", у меня их там две , выбираем ту которая со зеленным значком слева от текста. Теперь смотрим за изменениями в составе проекта. Оказывается появилась новая папка - "jni". В ней два файла - текст библиотеки на С и make-файл Amdroid.mk Кроме того если повезет появится еще папка include и в ней список путей к папкам.c заголовочными файлами Я говорю так потому что у меня eclipse на двух машинах. На одной после операции создается папка include и в нее помещаются каталоги с заголовочными файлами, а на другой нет. Почему так происходит - не знаю. Если не повезло придется самому писать пути. Делается это так. Выделяем корневую папку проекта, потом вызываем контекстное меню и там команду Properties. Выбираем C/C++ General - Paths and Symbols У меня к этому проекты определенны такие пути к include : D:/dev/android/android-ndk-r8b/platforms/android-14/arch-mips/usr/include D:/dev/android/android-ndk-r8b/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/lib/gcc/arm-linux-androideabi/4.6.x-google/include D:/dev/android/android-ndk-r8b/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/lib/gcc/arm-linux-androideabi/4.6.x-google/include-fixed D:/dev/android/android-ndk-r8b/sources/cxx-stl/system/include Теперь берем из шаблона NDK содержимое для файла библиотеки hello-jni. Далее надо создать заголовочный файл для HelloJni.class. Для этого определяем значение classpath и выполняем создание заголовка с помощью javah. Я делаю это в командной строке Far. Получается две команды >set classpath=d:\dev\android\workspaces\hello-jni\bin\classes;d:\android-16\* >javah -jni com.example.hellojni.HelloJni После чего имеем в текущей папке файл com_example_hellojni_HelloJni.h. Копируем его в папку jni проекта. Для вставки выделяю папку jni в "Project Explorer" eclipse Собственно все. Осталось создать динамическую библиотеку. Тут тоже несколько путей. Как вариант - в среде Far делаю текущим каталог проекта и выполняю команду ndk-build.cmd После этого запускаю проект - Run. Все ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2012, 07:47 |
|
||
|
AR.Drone квадрокоптер. Программирование на java и С
|
|||
|---|---|---|---|
|
#18+
эт чо? инструкция для себя, чтобы не забыть что ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2012, 10:01 |
|
||
|
AR.Drone квадрокоптер. Программирование на java и С
|
|||
|---|---|---|---|
|
#18+
Купил wifi адаптер и подсоединил его к своему PC Включил AR.Drone В списке беспроводных сетей нашел сеть drone и подключился к ней Вот ссылка на программу https://projects.ardrone.org/attachments/194/ARDrone.java После того как eclipse создал класс идем в Far, выбираем каталог в котором находится класс и в командной строку Far пишем java ARDrone 192.168.1.1 AT*CONFIG=605,\"leds:leds_anim\",\"3,1073741824,2\" Выполняем и получаем иллюминацию светодиодами drone ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2012, 10:30 |
|
||
|
AR.Drone квадрокоптер. Программирование на java и С
|
|||
|---|---|---|---|
|
#18+
Аргументы команды пишутся после знака "равно". Их три. Первый - порядковый номер команды, собственно важно чтобы он был больше номера предыдущей команды. Правила использования порядкового номера описаны в пункте 6.2 руководства к использованию. SDK Второй аргумент команды - это строка, опция указывающая на конкретное содержание команды Третий аргумент - это строка состоящая из трех чисел, разделенных запятой. Первое число - это номер анимации в списке из файла ARDroneLib/Soft/Common/led_animation.h Второй аргумент это частота, выраженная в форме числа с плавающей запятой Третий аргумент это длительность анимации ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2012, 10:34 |
|
||
|
AR.Drone квадрокоптер. Программирование на java и С
|
|||
|---|---|---|---|
|
#18+
А вот тут можно посмотреть способы анимации по именам http://gauth.fr/2011/09/control-the-ar-drone-leds/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2012, 11:42 |
|
||
|
AR.Drone квадрокоптер. Программирование на java и С
|
|||
|---|---|---|---|
|
#18+
Алгоритм получения данных с ARDrone. Например : заряд аккумулятора, скорость, высота и так далее 1. Отправляем 4 байта {0x01, 0x00, 0x00, 0x00} на порт 5554 2. Отправляем команду AT*CONFIG=" + 1 + ",\"general:navdata_demo\",\"TRUE\" на порт 5556 3. Принимаем данные и выбираем из них нужные. Данные структурированы Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. В этой теме есть обсуждение принимаемых данных https://projects.ardrone.org/boards/1/topics/show/4805 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2012, 06:22 |
|
||
|
AR.Drone квадрокоптер. Программирование на java и С
|
|||
|---|---|---|---|
|
#18+
erbolg, StringBuffer sb = new StringBuffer(); // в этом месте лучше StringBuilder sb.append("0"); // лучше sb.append('0'); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2012, 09:58 |
|
||
|
AR.Drone квадрокоптер. Программирование на java и С
|
|||
|---|---|---|---|
|
#18+
Ага, спасибо посмотрю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2012, 10:36 |
|
||
|
AR.Drone квадрокоптер. Программирование на java и С
|
|||
|---|---|---|---|
|
#18+
Есть два случая когда счетчик номера команд (sequence counter) должен быть сброшен клиентом drone 1. drone не получает трафика в течение более 50 мс, будет установлен бит ARDRONE_COM_WATCHDOG_MASK в поле ardrone_state (2-е поле) пакета navdata. Чтобы выйти из этого режима, клиент должен послать AT-команду AT * COMWDG. 2. drone не получает трафика более чем 2000 мс, будет остановлена связь с клиентом, и установлен бит ARDRONE_COM_LOST_MASK. Клиент должен повторно инициализировать связь с drone. ARDrone_Developer_Guide, стр. 40 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2012, 16:09 |
|
||
|
AR.Drone квадрокоптер. Программирование на java и С
|
|||
|---|---|---|---|
|
#18+
О чем это? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2012, 16:14 |
|
||
|
AR.Drone квадрокоптер. Программирование на java и С
|
|||
|---|---|---|---|
|
#18+
LeonidvО чем это?типа блог насколько я понимаю ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2012, 16:41 |
|
||
|
AR.Drone квадрокоптер. Программирование на java и С
|
|||
|---|---|---|---|
|
#18+
Хочу принимать данные в вертолета и потом обрабатывать их. Типа тюнинг ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2012, 06:27 |
|
||
|
AR.Drone квадрокоптер. Программирование на java и С
|
|||
|---|---|---|---|
|
#18+
erbolgХочу принимать данные в вертолета и потом обрабатывать их. Типа тюнинг тоже думал об этой задаче думал о связке Arduino (на борту птички) и программы на Processing (фреймфорк Java) на компе который данные собирает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2012, 09:22 |
|
||
|
AR.Drone квадрокоптер. Программирование на java и С
|
|||
|---|---|---|---|
|
#18+
Вот эта программа умеет принимать данные и летать Осталось джойстик добавить для android Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. 256. 257. 258. 259. 260. 261. 262. 263. 264. 265. 266. 267. 268. 269. 270. 271. 272. 273. 274. 275. 276. 277. 278. 279. 280. 281. 282. 283. 284. 285. 286. 287. 288. 289. 290. 291. 292. 293. 294. 295. 296. 297. 298. 299. 300. 301. 302. 303. 304. 305. 306. 307. 308. 309. 310. 311. 312. 313. 314. 315. 316. 317. 318. 319. 320. 321. 322. 323. 324. 325. 326. 327. 328. 329. 330. 331. 332. 333. 334. 335. 336. 337. 338. 339. 340. 341. 342. 343. 344. 345. 346. 347. 348. 349. 350. 351. 352. 353. 354. 355. 356. 357. 358. 359. 360. 361. 362. 363. 364. 365. 366. 367. 368. 369. 370. 371. 372. 373. 374. 375. 376. 377. 378. 379. 380. 381. 382. 383. 384. 385. 386. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2012, 16:25 |
|
||
|
AR.Drone квадрокоптер. Программирование на java и С
|
|||
|---|---|---|---|
|
#18+
Author: MAPGPS, я только немного отредактировал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2012, 16:27 |
|
||
|
AR.Drone квадрокоптер. Программирование на java и С
|
|||
|---|---|---|---|
|
#18+
erbolgВот эта программа умеет принимать данные и летатьа ты не мог бы этот код в спойлер убирать? а то я читаю с интересом только русские твои слова а эти вот буквы на этом языке достали уже ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2012, 17:04 |
|
||
|
AR.Drone квадрокоптер. Программирование на java и С
|
|||
|---|---|---|---|
|
#18+
Извиняюсь. В следующий раз уберу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2012, 17:56 |
|
||
|
AR.Drone квадрокоптер. Программирование на java и С
|
|||
|---|---|---|---|
|
#18+
Перед рисованием джойстика надо сделать попробовать поработать сделать не консольное приложение на ПК, а приложение на android Программа Взлет/посадка состоит из 2 -х классов. На форме (activity) расположим две кнопки Вот оформление из файла activity_main.xml Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. Файл формы (activity) Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. А это класс с помощью которого взаимодействуем с drone Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2012, 21:58 |
|
||
|
AR.Drone квадрокоптер. Программирование на java и С
|
|||
|---|---|---|---|
|
#18+
erbolg, Ты там пиши код осторожнее, ходют слухи что четыре квадрокоптера в КРОК уже разбили, смотри как бы по результатам конкурса еще должен не остался. Какой бы миниатюрный нибыл, всё таки вертолёт, стоит недешево. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2012, 17:36 |
|
||
|
AR.Drone квадрокоптер. Программирование на java и С
|
|||
|---|---|---|---|
|
#18+
Ага, спасибо за информацию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2012, 06:20 |
|
||
|
AR.Drone квадрокоптер. Программирование на java и С
|
|||
|---|---|---|---|
|
#18+
Надо команду создать, а денежки пополам ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2012, 06:34 |
|
||
|
AR.Drone квадрокоптер. Программирование на java и С
|
|||
|---|---|---|---|
|
#18+
Сегодня работал над своей программой по управлению drone. Выполнил команду взлет-Take Off , вертолет поднялся на 0,8 метра, потому говорю посадка-Landing, он не реагирует. Еще раз попробовал взлет-посадка не реагирует - висит в воздухе и тихонько сдвигается к дивану. Вышел из программы, мысль пронеслась, что при прекращении связи с вертолетом, он сам сядет, типа - умный. Нет, висит в воздухе и потихоньку дрейфует к дивану. Адреналин начинает заполнять сознание, не могу сосредоточится, руки дрожат. Стал отталкивать его ракеткой от дивана. Зря, он еще сильнее двигается к дивану. Ракеткой стал подталкивать его вверх. Защитного корпуса не надел, поэтому боялся попасть под винты. В результате вертолет поднялся к потолку и стал буровить винтами потолочную плитку. Уже от бессилия сильно подтолкнул его ракеткой , он резанул винтом плитку потолочную и резко спланировал кувырком на пол. Шок. Потитоньку отходил минут десять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2012, 18:11 |
|
||
|
AR.Drone квадрокоптер. Программирование на java и С
|
|||
|---|---|---|---|
|
#18+
блин, круто!! ) а чо видео не снял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2012, 18:25 |
|
||
|
AR.Drone квадрокоптер. Программирование на java и С
|
|||
|---|---|---|---|
|
#18+
Не до видео было. Как будто ушел за "горизонт событий" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2012, 18:36 |
|
||
|
AR.Drone квадрокоптер. Программирование на java и С
|
|||
|---|---|---|---|
|
#18+
erbolgНе до видео было. Как будто ушел за "горизонт событий"чето набрёл случайно http://habrahabr.ru/post/149282/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2012, 18:38 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38004816&tid=2127794]: |
0ms |
get settings: |
4ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
33ms |
get topic data: |
7ms |
get forum data: |
1ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 192ms |
| total: | 300ms |

| 0 / 0 |
