Оглавление:

Планшет / телефон как экран Arduino и осциллограф за 2 доллара: 4 шага
Планшет / телефон как экран Arduino и осциллограф за 2 доллара: 4 шага

Видео: Планшет / телефон как экран Arduino и осциллограф за 2 доллара: 4 шага

Видео: Планшет / телефон как экран Arduino и осциллограф за 2 доллара: 4 шага
Видео: Осциллограф за 2$... С помощью микроконтроллера и телефона на базе Android 2024, Ноябрь
Anonim
Планшет / телефон как экран Arduino и осциллограф за 2 доллара
Планшет / телефон как экран Arduino и осциллограф за 2 доллара
Планшет / телефон как экран Arduino и осциллограф за 2 доллара
Планшет / телефон как экран Arduino и осциллограф за 2 доллара
Планшет / телефон как экран Arduino и осциллограф за 2 доллара
Планшет / телефон как экран Arduino и осциллограф за 2 доллара

Хотя для проекта на базе Arduino можно купить дешевый сенсорный ЖК-экран 320x240, может быть удобнее - особенно для создания прототипа и тестирования эскиза - использовать планшет или телефон как в качестве сенсорного экрана, так и в качестве источника питания для компьютера. проект. У вас может быть гораздо более высокое разрешение и более красивый дисплей на вашем устройстве Android (например, все ваши строки будут сглажены).

Экран на базе Android можно подключить через USB-порт, Bluetooth или Wi-Fi (например, ESP8266).

С этой целью я написал VectorDisplay (источник здесь), приложение для Android, которое сочетается с библиотекой Arduino, которая реализует большую часть интерфейса Adafruit GFX. Вы можете написать код, который затем можно будет легко перенести на автономный экран, или продолжать использовать эскиз с дисплеем на базе Android. И вы можете отправлять команды из приложения Android для управления эскизом Arduino. Библиотека Arduino в значительной степени не зависит от платы: она должна работать с любой платой, которая предоставляет объект последовательного порта USB с именем Serial или с ESP8266 через Wi-Fi или с Bluetooth (сначала выполните сопряжение платы).

В качестве доказательства применения концепции я портировал простой проект STM32-O-Scope для использования VectorDisplay вместо дисплея ILI9341. В результате получился портативный (грубоватый) портативный осциллограф с питанием от батареи 1,7 МС / с, для которого требуется всего лишь плата STM32F103C за 2 доллара (с использованием ядра Arduino на основе libmaple), два провода, кабель USB OTG и устройство Android.. Конечно, все, что вы получаете с этим, - это диапазон от 0 до примерно 3,3 В.

Шаг 1. Установите программное обеспечение

Я предполагаю, что у вас есть Arduino IDE, настроенная для вашей любимой платы, и что ваша любимая плата имеет последовательный интерфейс USB.

Перейти к эскизу | Включить библиотеку | Управляйте библиотеками. Поместите «VectorDisplay» в область поиска и нажмите «Установить», как только он будет найден.

Загрузите архив библиотеки отсюда.

Разархивируйте в папку внутри папки Arduino / libraries.

Загрузите VectorDisplay из Google Play и установите его на свое устройство Android. Возможно, вам потребуется включить установку из неизвестных источников на вашем устройстве Android. Приложение Android использует библиотеку UsbSerial, и отправной точкой было одно из примеров приложений для библиотеки.

Шаг 2: демонстрационный эскиз

Демо-эскиз
Демо-эскиз
Демо-эскиз
Демо-эскиз
Демо-эскиз
Демо-эскиз
Демо-эскиз
Демо-эскиз

Подключите вашу доску (при необходимости в режиме загрузки) к компьютеру и перейдите в Файл | Примеры | VectorDisplay | круги в вашей Arduino IDE. Нажмите кнопку загрузки (стрелка вправо).

Запустите приложение VectorDisplay на своем устройстве Android. Подключите плату к устройству Android через кабель USB OTG. (Если на вашей плате есть микро-порт USB, убедитесь, что сторона хоста USB OTG подключена к устройству Android). Теперь вы должны получить запрос разрешения для VectorDisplay. Нажмите ОК.

Если все пойдет хорошо, VectorDisplay теперь покажет две кнопки в левой части экрана: круг и цвет. Нажатие кнопки «Круг» рисует на экране случайный круг, а «Цвет» меняет цвет на случайный цвет перед следующим кругом.

Если вы посмотрите на эскиз кругов в среде IDE, вы увидите, что серийный векторный дисплей объявлен с помощью:

SerialDisplayClass Display;

а затем инициализируется в setup () с помощью:

Display.begin ();

Затем командные кнопки запрашиваются с помощью Display.addButton (). Затем loop () вызывает Display.readMessage () для поиска команд, отправляемых через командные кнопки.

По умолчанию система координат для дисплея 240x320. Однако линии и текст рисуются с использованием полного разрешения экрана вашего устройства Android со сглаживанием для хорошего внешнего вида. Вот почему приложение называется Vector Display.

Шаг 3: API

API в библиотеке находится в файле VectorDisplay.h. Вам необходимо сначала инициализировать объект Display. Для использования USB сделайте это с помощью:

SerialDisplayClass Display;

Инициализируйте соединение с помощью Display.begin ().

В объекте SerialDisplayClass доступны два набора методов: один набор использует 32-битный цвет (включая альфа-канал) и команды, которые довольно близки к последовательному протоколу USB, который использует мое приложение VectorDisplay, а другой набор является подмножеством стандарта. Методы библиотеки Adafruit GFX, использующие 16-битный цвет. По большей части вы можете свободно смешивать два набора команд, за исключением того, что если вы используете методы, совместимые с Adafruit, вы должны использовать 16-битные цветовые команды, имена которых заканчиваются на 565, вместо 32-битных.

Вы можете установить систему координат с помощью Display.coordinates (ширина, высота). По умолчанию ширина = 240, а высота = 320. Если вы хотите имитировать дисплей с неквадратными пикселями, вы можете использовать Display.pixelAspectRatio (ratio).

Некоторые методы, включая pixelAspectRatio (), принимают аргумент FixedPoint32. Это 32-битное целое число, представляющее число с плавающей запятой, где 65536 представляет 1,0. Чтобы преобразовать число x с плавающей запятой в FixedPoint32, выполните: (FixedPoint32) (65536. * X) (или просто TO_FP32 (x)).

Помимо возможности отправлять команды с кнопок Android, события касания экрана также отправляются в MCU.

Для использования Wi-Fi см. Пример circle_esp8266. Вам нужно будет нажать кнопку USB в приложении, чтобы переключиться в режим Wi-Fi.

Для Bluetooth вы должны уметь:

SerialDisplayClass Display (MyBluetoothSerial);

… MyBluetoothSerial.begin (115200); Display.begin ();

а затем действуйте так же, как в случае последовательного порта USB, где MyBluetoothSerial - это любой объект Stream (например, Serial2), подключенный к вашему адаптеру Bluetooth.

Шаг 4: осциллограф за 2 доллара

Осциллограф за 2 доллара
Осциллограф за 2 доллара
Осциллограф за 2 доллара
Осциллограф за 2 доллара
Осциллограф за 2 доллара
Осциллограф за 2 доллара

Для быстрого и грязного осциллографа вам понадобится синяя или черная (с которой легче иметь дело) плата для таблеток STM32F103C8, которую вы можете купить на Aliexpress менее чем за 2 доллара. Я описываю, как подготовить плату к использованию со средой Arduino для нее, и установить здесь скетчи.

Загрузите этот эскиз на доску, который представляет собой модифицированную версию эскиза STM32-O-Scope от Pingumacpenguin. Отредактируйте строку #define BOARD_LED, чтобы она соответствовала вашей плате. Я использую черную таблетку со светодиодом PB12. Синие таблетки (и некоторые черные таблетки с такой же распиновкой, что и синяя таблетка) имеют светодиод на PC13.

Подключите один провод - заземляющий щуп - к земле платы, а другой провод - к контакту B0 платы. Подключите плату к устройству Android с запущенным VectorDisplay, и вы получите портативный осциллограф с батарейным питанием.

На фото у меня осциллограф, подключенный к фототранзистору. След на экране - от инфракрасного пульта ДУ телевизора.

Рекомендуемые: