Программное обеспечение для обработки сигнала с твердомеров 7 PRO, построенное на Python с пользовательским интерфейсом на базе Kivy. Соединение с твердомером по bluetooth осуществляется при помощи различных классов, написанных для разных платформ.
Подготовка OrangePi и установка проекта на него Orangepi3-lts_3.0.8_ubuntu_jammy_desktop_xfce_linux5.16.17
Для начала нужно по отдельности купить компоненты:
- Orange Pi 3 LTS (www.orangepi.org/html/hardWare/computerAndMicrocontrollers/details/orange-pi-3-LTS.html - вкладка Aliexpress Store Buy - выберите самый дешевый по доставке)
- Micro SD. Нужна быстрая - выбирайте с маркировкой U1 или выше (https://www.kingston.com/ru/blog/personal-storage/memory-card-speed-classes). 32GB хватит с головой.
- Экран с HDMI подключением. Пока не выбирал какой и использовал Odroid VU8C, можно например (https://aliexpress.ru/item/1005005793215961.html)
Чтобы подготовить ОС на Orange Pi нужно на странице Orange pi 3 lts выбрать вкладку Download - Debian Image (или Ubuntu Image) - Downloads.
На открывшейся странице скачать самую свежую версию DESKTOP XFCE. На 05.10.2023 это Orangepi3-lts_3.0.8_debian_bullseye_desktop_xfce_linux5.16.17
Распаковать Архив.
Установить SD карту в SD-usb переходник (у меня на рабочем месте рабочий - красно-черный) и вставить.
Проверить, что на карте один раздел NTFS (если записывали на нее другой образ, то обязательно) и исправить если это не так. Чтобы
исправить на Windows нажмите на иконку поиска (возле Start) и введите Управление компьютером > Управление дисками.
Там должно быть видно SD-карту в подключенных устройствах и сколько на нем разделов. Если несколько, или один неполный - клик правой кнопкой
и удалить том. Когда Вся память SD-карты не распределена, правой кнопкой -> создать простой том и прокликать все далее.
Когда чистая флешка подключена к компьютеру и образ скачан, нужно установить Balena Etcher (https://etcher.balena.io/) - ПО для записи образа.
В Balena выбираем скачанный распакованный образ, SD карту и записываем. Карта готова к использованию, можно вставить в слот OrangePi и проверить что ОС запускается. Первая загрузка будет долгой - перераспределяется том на флеш-памяти.
Подключите устройство к интернету (есть встроенный вайфай). Работа с ОС чаще всего ведется через терминал, чтобы его открыть нужно на рабочем столе
выбрать Applications > Terminal Emulator, команды которые нужно писать в терминале здесь помечены знаком $ (его писать не надо).
Иногда может запрашивать пароль - orangepi. Если спрашивает продолжить [Y/n]?, нужно отвечать да: $ Y
Обновляем систему:
$ sudo apt-get update ### на ubuntu нельзя
$ sudo apt-get upgrade ### на ubuntu нельзя
$ sudo apt-get -y install python3-pip
(опционально) установить экранную клавиатуру: $ sudo apt-get install -y onboard
Теперь надо скачать сам проект. По умолчанию терминал открывается в home директории (сокращенно помечается как ~). В ней можно посмотреть
текущие папки командой ls. Если там нет директории Projects, то создаем командой mkdir Projects.
Переходим в папку с проектами cd Projects. Склонируем проект командой:
$ git clone https://github.com/seventil/device_data_analyzer.git
Заходим в папку $ cd device_data_analyzer
$ pip3 install -r requirements.txt
garden - библиотека киви, которая позволяет встраивать сторонние библиотеки в киви. Установим библиотеку для прорисовки графиков: сначала найдем расположение garden после установки:
$ pip3 show kivy_garden
В строке Location будет указан путь к garden, например, /home/orangepi/.local/lib/python3.10/site-packages.
Используем этот адрес для установки дополнительной библиотеки $ python3 <path to garden> install matplotlib.
Сам .bat файл garden находится в соседней папке, поэтому команда полностью выглядит так:
$ python3 /home/orangepi/.local/bin/garden install matplotlib
https://www.reddit.com/r/kivy/comments/ssotuv/comment/hx2jmr4/ https://kivy-garden.github.io/
Настройки для работы приложения находятся в файле config.ini в корне проекта.
Эта опция позволяет выбрать нужный класс для блютуз подключения. Разные опции подходят для различных платформ. На текущий момент есть следующие опции:
Simulation: для разработки и тестирования, реальное подключение к чему либо отсутствует. Работает на любой платформе и просто загружает данные из списка.
- В командной строке из папки проекта запустите команду
python async_app.py
Для начала работы скопируйте проект из https://github.com/seventil/device_data_analyzer.git
-
Скачайте с сайта python.org и установите последнюю версию python (3.8+). Если установщик выдает ошибку "не подходит для типа процессора", на сайте найдите версию для ARM64. При установке поставьте галочку "добавить python.exe в PATH"
-
Откройте командную строку (или PowerShell) в папке проекта (можно октрыть набрав cmd в поиске и перейти в нужную папку командами
cd имя_папки) и запустить команды:python -m pip install -r requirements.txtgarden install matplotlib
На андроиде получалось собирать и запускать киви и еще отдельно проверять работу с блютузом. Но нет гарантий что готовый проект для другой платформы соберет интерфейс на 100% так как ожидается, и нет гарантии что блютуз будет взеде работать. Чтобы допилить для андроида нужно отдельно разбираться. Из того что у меня осталось по записям:
adb shell -x logcat python:V *:S
используется пакет программ buildozer и конфигурационный файл buildozer.spec
https://blog.logrocket.com/build-android-application-kivy-python-framework/