Приложение PSLab для Android
Репозиторий Android-приложения PSLab для проведения экспериментов с открытой аппаратной платформой Pocket Science Lab.
В этом репозитории хранится приложение Android для проведения экспериментов с PSLab. PSLab — это крошечная карманная научная лаборатория, в которой имеется множество оборудования для проведения научных и инженерных экспериментов. Он может функционировать как осциллограф, генератор сигналов, частотомер, программируемый источник напряжения и тока, а также как регистратор данных. Наш сайт находится по адресу https://pslab.io.
Подпишитесь на последние обновления и тестируйте новые функции заранее, присоединившись к нашей бета-программе здесь.
Купить
- Вы можете приобрести устройство Pocket Science Lab в магазине FOSSASIA.
- Другие реселлеры перечислены на веб-сайте PSLab.
Коммуникация
- Канал чата PSLab находится на Gitter.
- Пожалуйста, также присоединяйтесь к нам в списке рассылки PSLab.
Дорожная карта
Скриншоты
Видео Демо
- Обзор приложения PSLab для Android.
- Наблюдение звуковых волн с помощью устройства PSLab.
- Регистрация данных датчиков в реальном времени с использованием Pocket Science Lab.
- Генерация и наблюдение сигналов с помощью Pocket Science Lab.
Функции
Особенность | Описание | Статус |
---|
Главный экран | Показать статус и версию устройства PSLab | ✔️ |
Инструменты | Предоставляет доступ к инструментам PSLab, таким как осциллограф и т. д. | ✔️ |
осциллограф | Показывает изменение аналоговых сигналов | ✔️ |
Мультиметр | Измеряет напряжение, ток, сопротивление и емкость | ✔️ |
Логический анализатор | Захватывает и отображает сигналы цифровой системы | ✔️ |
Генератор волн | Генерирует произвольные аналоговые и цифровые сигналы | ✔️ |
Источник питания | Генерирует программируемое напряжение и ток | ✔️ |
Люксметр | Измеряет интенсивность окружающего света | ✔️ |
Барометр | Измеряет давление | ✔️ |
Акселерометр | Измеряет ускорение устройства | ✔️ |
Гирометр | Измеряет скорость вращения | ✔️ |
Компас | Измеряет абсолютное вращение относительно магнитных полюсов земли. | ✔️ |
Термометр | Измеряет температуру окружающей среды | ✔️ |
Датчик газа | Обнаруживает газы, включая NH3, NOx, спирт, бензол, дым и CO2. | ✔️ |
Контроллер роботизированной руки | Позволяет независимо управлять четырьмя серводвигателями роботизированной руки. | ✔️ |
Как настроить приложение Android в вашей среде разработки
Варианты применения
Существует 2 варианта (варианта сборки) приложения PSLab для Android.
Аромат Play Store
- Версия Play Store использует Карты Google для отображения местоположения, сохраненного в журналах, в регистраторе данных.
Fdroid ароматы
- Версия Fdroid использует карты Open Street Maps для отображения местоположения, сохраненного в журналах, в регистраторе данных.
Настройка разработки
Прежде чем начать, у вас уже должен быть загружен и правильно настроен Android Studio SDK. Вы можете найти руководство о том, как это сделать, здесь: Настройка Android Studio.
Настройка Android-проекта
Для настройки проекта PSLab Android вы можете использовать любой из двух методов, перечисленных ниже, то есть вы можете загрузить zip-файл репозитория или напрямую клонировать репозиторий в Android Studio.
Загрузив zip-файл
Загрузите исходный код проекта pslab-android . Вы можете сделать это либо путем разветвления и клонирования репозитория (рекомендуется, если вы планируете вносить изменения), либо загрузив его в виде ZIP-файла и распаковав.
Откройте Android Studio, вы увидите окно «Добро пожаловать в Android» . В разделе «Быстрый запуск» выберите «Импортировать проект (Eclipse ADT, Gradle и т. д.). Для отладки через Wi-Fi выполните действия, описанные в этом блоге.
- Примечание. Если вы создали собственное оборудование, измените VendorID и/или ProductID в CommunicationHandler.java.
Путем прямого клонирования
- Откройте Android Studio, вы увидите окно «Добро пожаловать в Android» . В разделе «Быстрый старт» выберите «Извлечь проект из системы контроля версий».
- Выберите git в появившемся раскрывающемся меню.
- Перейдите в репозиторий и нажмите кнопку «Клонировать» или «Загрузить».
- Из появившегося раскрывающегося списка скопируйте ссылку.
- Вставьте URL-адрес, который вы скопировали, и нажмите «Клонировать».
- Теперь студия Android должна начать создание проекта с помощью gradle.
- После завершения этого процесса и открытия Android Studio проверьте консоль на наличие ошибок сборки.
- Примечание. Если вы получаете сообщение об ошибке синхронизации Gradle с названием «Не удалось найти...», вам следует щелкнуть ссылку под сообщением об ошибке (если доступно), в которой говорится: «Установите отсутствующие платформы и синхронизируйте проект и разрешите студии Android принести тебе то, чего не хватает.
- После устранения всех ошибок сборки можно приступить к сборке приложения и его тестированию.
- Чтобы создать приложение, выберите «Сборка» > «Создать проект» (или нажмите значок «Создать проект» на панели инструментов).
- Если приложение было создано успешно, вы можете протестировать его, запустив его на реальном или эмулируемом устройстве, выбрав «Выполнить»> «Запустить приложение» или нажав значок «Выполнить» на панели инструментов.
Если вы хотите построить только apk, перейдите в раздел «Сборка»> «Создать apk», и Android Studio будет запрашивать каталог, в котором создается apk.
Отладить обычным способом невозможно, так как устройство PSLab подключается к порту micro-USB через кабель OTG. Таким образом, устройство Android не подключено к ПК через USB-кабель.
Для отладки через Wi-Fi выполните действия, описанные в этом блоге.
- Примечание. Если вы создали собственное оборудование, измените VendorID и/или ProductID в CommunicationHandler.java.
Требуются разрешения
- Record_Audio: необходимо, чтобы осциллограф принимал входные сигналы от встроенного микрофона телефона. Вы можете найти его реализацию в AudioJack.java.
- Access_Fine_Location и Интернет: требуется для использования люксметра и компаса для получения координат для маркировки данных на карте. Вы можете найти его реализацию в GPSLogger.java.
- Write_External_Storage: требуется для хранения файлов журналов приборов, которые можно передать для будущего анализа.
- Read_External_Storage: при записи журналов в хранилище CSVLogger.java сначала проверяет, существует ли какой-либо каталог CSVLogger или нет, требующий этого разрешения на чтение.
Настройка для использования PSLab с приложением Android
Чтобы использовать устройство PSLab с Android, вам просто нужен кабель OTG, устройство Android с включенной функцией USB-хоста (большинство современных телефонов имеют поддержку OTG) и приложение PSLab Android. Подключите устройство PSLab к телефону Android через кабель OTG. Остальное обрабатывается самим приложением.
Рекомендации по сбору взносов
Кодекс практики
Пожалуйста, помогите нам следовать передовому опыту, чтобы облегчить работу как рецензенту, так и автору. Мы хотим сосредоточиться на качестве кода больше, чем на управлении этикой запросов на включение.
- Одиночный коммит на каждый запрос на включение.
- Ссылайтесь на номера проблем в сообщении о фиксации. Следуйте шаблону
Fixes #<issue number> <commit message>
- Следуйте единым практикам проектирования. Язык дизайна должен быть единообразным во всем приложении.
- Запрос на включение не будет объединен до тех пор, пока коммиты не будут сжаты. В случае, если в PR есть несколько коммитов, их должен сжать автор коммита, а не сопровождающие, выбирающие и объединяющие сквош.
- Если PR связан с каким-либо изменением внешнего интерфейса, прикрепите соответствующие скриншоты к описанию запроса на включение.
Как git squash
?
Совет для новых разработчиков, которым сложно объединить коммиты в один: в вашем запросе на включение может появиться несколько коммитов, главным образом по следующим причинам.
- Намеренное добавление нескольких сообщений о фиксации после каждого изменения без
git add
. - Обновление текущей ветки с помощью удаленной, чтобы произошла фиксация слияния.
Независимо от причины, следуйте инструкциям ниже, чтобы объединить все коммиты в один, следуя нашим лучшим практикам.
- Настройте удаленный доступ к восходящей ветке, если это не было установлено ранее
$ git remote add upstream https://github.com/fossasia/pslab-android.git
- Зайдите в ветку, связанную с запросом на включение
$ git checkout <branch-name>
- Выполните программный сброс, чтобы сохранить изменения, удалив при этом все детали фиксации.
$ git reset --soft upstream/development
- Добавьте файлы в промежуточную область
$ git add <file paths or "." to add everything>
- Создайте новый коммит с соответствующим сообщением, следуя рекомендациям по сообщениям о коммите.
$ git commit -m "tag: commit message"
- Если вы уже сделали запрос на включение
$ git push -f origin <branch-name>
Политика филиала
У нас есть следующие филиалы
- развитие Вся разработка происходит в этой ветке. Если вы вносите свой вклад, вы должны сделать запрос на внесение изменений в разработку . Убедитесь, что он прошел проверку сборки на Трэвисе.
- master Содержит стабильный код. После того, как в разработке накопились существенные функции/исправления, мы переносим ее в мастер.
- apk Эта ветка содержит автоматически сгенерированный APK-файл для тестирования.
Стиль кода
Пожалуйста, старайтесь следовать указанным рекомендациям при написании и отправке кода, поскольку это облегчит понимание рецензенту и другим разработчикам.
- При присвоении имен файлам макета убедитесь, что соблюдается соглашение (активность/фрагмент) _ (имя).xml, например
activity_oscilloscope.xml
, fragment_control_main.xml
. - Назовите представления и виджеты, определенные в файлах макета, как (тип представления/виджет) _ (имя фрагмента/действия) _ (номер в файле), например
spinner_channel_select_la1
, button_activity_oscilloscope1
. - Имя файла активности/фрагмента, соответствующее файлам макета, должно называться (имя активности/фрагмента)(активность/фрагмент).java, например
ChannelsParameterFragment.java
соответствующее файлу макета fragment_channels_parameter.xml
. - Соответствующие виджеты для кнопок, текстовых полей, флажков и т. д. в файлах действий должны называться (тип представления/виджет) (имя фрагмента/действия) (номер в файле), например,
spinnerChannelSelect1
соответствующий spinner_channel_select1
.
Разработчики
Мейнтейнеры
Проект поддерживается
- Падмал (@CloudyPadmal)
- Марио Белинг (@mariobehling)
- Лоренц Гербер (@lorenzgerber)
- Вэй Тат (@cweitat)
- Вай Ги (@woshikie)
Выпускники
- Нил Триведи (@neel1998)
- Акаршан Гандотра (@akarshan96)
- Аситава Саркар (@asitava1998)
- Вивек Сингх Бхадаурия (@viveksb007)
- Авжит (@Avjeet)
- Абхинав (@abhinavraj23)
- Суровый (@harsh-2711)
- Ятри (@yatri1609)
Лицензия
В настоящее время этот проект распространяется под лицензией Apache License 2.0. Копия ЛИЦЕНЗИИ должна присутствовать вместе с исходным кодом. Чтобы получить программное обеспечение по другой лицензии, свяжитесь с FOSSASIA.