[Перше підключення пристрою USB CDC до Android]
Для підключення до порту USB Android якогось пристрою USB Вам знадобиться спеціальний кабель USB OTG. Його можна недорого купити в магазині або на ринку, або виготовити самому [4]. Якщо у Вас вже встановлені якісь програми, що підтримують послідовне з'єднання через USB (наприклад, якісь програми, розглянуті у виразках нижче), то при першому підключенні пристрою до порту USB OTG операційна система Android видасть запрошення запустити для роботи з пристроєм якусь небудь з встановлених програм, див. скріншот нижче.
Якщо Ви зробите на цьому екрані свій вибір, то відразу запуститься обрана програма, і їй буде надано дозвіл працювати з підключеним пристроєм USB. Якщо Ви нічого не виберете (просто натиснете на кнопку "Назад"), то дозвіл на доступ до пристрою буде запитано пізніше, коли в програмі Ви спробуєте підключитися до пристрою USB CDC:
Якщо на цьому екрані вибрати "Так", то програма зможе працювати з Вашим пристроєм USB CDC. Якщо ще при цьому встановити галочку "Використовувати за замовчуванням для цього USB-пристрою", то при кожному підключенні пристрою USB CDC до порту USB OTG буде автоматично запускатися ця програма, і їй будуть відразу автоматично дано дозвіл на доступ до пристрою.
[Термінальні клієнти, що підтримують USB OTG serial]
Готові програмні клієнти під Android, які дозволяють організувати текстову консоль для прийому / передачі текстової інформації через віртуальний COM-порт USB, позбавляють Вас від необхідності писати управляє програмне забезпечення, коли Ви хочете через Android управляти будь-небудь електронною апаратурою.
Нижче представлений короткий огляд декількох таких утиліт.
Вельми придатна програма. Можна підключати пристрої USB CDC на чіпах Silicon Laboratories CP210X, FTDI FT232 (ARDUINO) і Prolific PL2303 (це популярні мікросхеми моста USB-CDC / ACM - TTL UART). Так само можна використовувати бездротову систему Zigbee Chip TI CC2531 (USB-Enabled SOC Solution for 2.4-GHz IEEE 802.15.4).
[Створення кнопок управління]
5. Натисніть на кнопку з зеленим плюсом, введіть ім'я для кнопки і вміст даних для відправки.
6. Натисніть кнопку "Save". Кнопка управління буде додана на панель.
Якщо клікнути на цю кнопку, то програма відправить дані в пристрій. Прийняті від пристрою дані будуть відображені в текстовому вікні консолі.
Формат даних для кнопок управління. Можна вводити двійкові дані, як це показано нижче - в шістнадцятковому (hex), довічним (binary) або десятковому (decimal) вигляді:
- Decimal: @ + 3 цифри (0..255), наприклад CR: @ 013
- Hex: # + 2 hex-цифри, наприклад CR: # 0D
- Binary: + 8 двійкових цифр, наприклад CR: 00001101
Escape-символи @, #, можна вводити, якщо їх вказати двічі, тоді будуть передані відповідно @, #, .
Між переданими даними можна вводити затримку. Затримка вказується в мілісекундах, приклад:
Тут закодована наступна послідовність дій:
1. Відправлення "up".
2. Затримка (sleep) на 1 секунду.
3. Відправлення "down".
4. Затримка на 2 секунди.
5. Відправлення "left"
6. Затримка на 3 секунди.
7. Відправлення "right"
1. З Bluetooth (модулі HC-05, HC-06, будь-який Bluetooth-Serial адаптер).
2. З адаптерами USB OTG і мікросхемами моста USB-TTL UART:
Silicon Laboratories CP210X
FTDI FT232
Prolific PL2303
Arduino
CDC / ACM
Для адаптерів USB-TTL UART підтримуються настройки:
Baud Rate: 1200. 250000
Data Bits. 5, 6, 7 або 8
Stop Bits 1 або 2
Parity Bit: none, even або odd
Вибір порту підключення та налаштування параметрів:
Запит на підтвердження користувачем дозволу для підключення до пристрою USB CDC (USB-TTL UART плати Arduino):
Загальний вигляд на головне вікно програми в відключеному і підключеному стані з'єднання з пристроєм USB CDC:
Можна налаштовувати параметри послідовного з'єднання - Baud rate, Data bits, Parity, Stop bits, також підтримуються опції режиму управління потоком даних (Handshaking Mode setting). Доступно ведення логу для прийнятих даних, для файлу лога потрібно вказати шлях на зразок "[External Storage Root] / USBTerminal / YYMMDD_hhmmss.log".
[Опис кнопок і функцій головного вікна]
Передані дані за замовчуванням передаються як рядки символів. Але можна вводити дані і в інших форматах:
- Decimal: @ + 3 цифри (0..255), наприклад CR: @ 013
- Hex: # + 2 hex-цифри, наприклад CR: # 0D
- Binary: + 8 двійкових цифр, наприклад CR: 00001101
Escape-символи @, #, можна вводити, якщо їх вказати двічі, тоді будуть передані відповідно @, #, .
- Кнопка передачі (у вигляді правої стрілки): запускає передачу даних в пристрій USB.
- Кнопки макросів 1. 7: запускають макроси (можна застосовувати для часто використовуваних передач).
- Кнопка редагування макросів (з іконкою олівця): відкриється вікно редагування макросу.
- Settings: відкриється вікно налаштувань параметрів з'єднання (Serial Communication Settings).
- USB Descriptions: відкриється вікно з описом підключеного обладнання USB.
- Edit Macro: відкриється вікно редагування макросу.
- ASCII Code Table: відкриється вікно кодової таблиці символів ASCII. Тут можна вибрати потрібний код, він автоматично вставиться в рядок введення переданого тексту.
- Help: система допомоги.
Коли з'єднуєтеся з пристроєм CDC-ACM, виберіть у меню пункт Open Device.
За допомогою цієї програми Ви можете, наприклад, обмінюватися даними між Android і платою Arduino UNO. І якщо на Вашому електронному пристрої варто адаптер FTDI USB-Serial (FT232RL), то будь-який мікроконтролер можна з'єднати з пристроєм на Android.
Q: Чи можна отримати двійковий або вихідний код програми?
A: Так, програма з відкритим вихідним кодом, див. Сторінку на github.
1. Auto - працює як "справжній" термінал, без спеціального поля введення для підготовки даних, що відправляються. Символи відправляються в послідовне пристрій у міру їх введення, відповідно до натисканням кнопок на клавіатурі. Це режим за замовчуванням.
2. За допомогою виділеного поля введення - введення з клавіатури спочатку потрапляє в спеціальне текстове поле, і відправляється в пристрій тільки після натискання на кнопку "Send".
• Підтримка відправки керуючих символів (наприклад Ctrl-C).
• Підтримка управління вихідними рівнями DTR і CTS.
• Запис сесій в лог-файли. Потім ці логи можуть бути проаналізовані, відправлені по email і т. П.
• Великий буфер прокрутки (його розмір конфигурируется).
• Миготливий курсор, який показує поточну позицію на екрані.
• Рядок стану (status line). Показує статус з'єднання і повідомлення про помилки.
• Вбудована система допомоги (help). Немає необхідності підключатися до Інтернету для отримання довідки.
• Не потрібно права root.
Обмеження: немає підтримки escape-послідовностей для переміщення курсора, управління кольором тексту і т. П. Це означає, що немає емуляції VT100, і такі програми Unix, як vi, emacs, top, і т. Д. Не підтримуються.
Підтримуються пристрої USB: Arduino на основі чіпів FTDI (наприклад оригінальний Arduino Uno), на основі класу CDC (наприклад Arduino Uno R3) і на основі чіпа CH340 (наприклад дешеві клони Arduino). Також підтримуються будь-які пристрої, які використовують мікросхему FTDI FT232R.
Примітка: пристрої Prolific (наприклад, засновані на кристалі PL2303) зараз не підтримуються.
Компанія ECYPH LLC анонсує повне програмне і апаратне рішення для підтримки терміналу на Android. Разом з кабелем йде безкоштовна програма терміналу FTDI UART Terminal, і це дозволяє отримати повноцінну підтримку RS232 Serial Port. Ця програма може працювати з будь-якими чіпами компанії FTDI.
На мій погляд у цієї програми є головна перевага - функція, якої немає ні в одній іншій програми - можливість передавати файли по протоколу XMODEM (і іншим популярним комунікаційним протоколам). Це дуже зручно для оновлення програмного забезпечення радіоапаратури і для обміну інформацією у вигляді файлів.
Вимоги до операційної системи і пристрою Android: Android OS 3.2 або більш свіжа, і апаратна підтримка порту хоста USB.
• Додаток запуститься автоматично, коли Ви підключите до Android пристрій USB на чіпі FTDI: FT232R, FT245R, FT232H, FT2232D, FT2232H, FT4232H, FT230X, FT231X.
• Підтримується USB TTL Serial, USB RS232 і високошвидкісні кабелі USB.
• Підтримує основний функціонал терміналу UART; легко адаптується до функції консолі.
• Підтримує сигнали управління потоком CTS / RTS, DTR / DSR і XOFF / XON.
• Підтримує швидкості 300. 921600 бод.
• Може зберігати (приймати) файл і відправляти файл по протоколам XModem, YModem і ZModem.
• Повністю сумісна з USB 2.0 Full Speed.
Висновки: на жаль, тільки одна програма показала хорошу стійкість при прийомі великої безперервного потоку даних - USB Serial Monitor Lite. Всі інші протестовані програми або в таких умовах відмовлялися працювати, або занадто гальмували.
[Бібліотеки для написання програм під Android]