Разработка Автономного графического контроллера Arduino

Я довольно новичок в использовании Arduino. В рамках своих исследований в области химии на уровне аспирантуры я пытаюсь продолжить разработку дешевой системы шприцевого насоса для химии с открытым исходным кодом для DIY.

Устройство использует шаговые двигатели, платы управления шаговыми двигателями, Arduino Uno и 3D-печатную рамку насоса. Простой код был ранее разработан с использованием Arduino IDE. Я немного расширил это, чтобы обеспечить дополнительную настройку (в основном размер шприца). Ограничение здесь заключается в том, что входы последовательного монитора будут облагаться налогом для пользователей. Мне нужно разработать простой графический интерфейс, который позволяет для всех входных данных мне нужно (размер шприц, поток (шага) ставки, запуска и остановки функции и т. д.). Мне нужен этот интерфейс, чтобы быть автономным приложением, которое может быть легко разделены (не нужно ничего скачивать дополнительные, никакой установки, развертывания и в состоянии, по крайней мере на Win и Mac).

Цель наших лабораторий-разработать простую в использовании и распространении систему, снижающую затраты, связанные с использованием химии потока. У меня есть приличное понимание Arduino IDE, и я готов изучить все, что мне нужно, чтобы это сработало.

Я видел несколько вещей о Python и "Обработке", но они, похоже, требуют одновременного использования Arduino IDE, что сделало бы развертывание слишком сложным.

Как я должен подойти к этому? Какой язык мне нужно выучить? Какой у вас есть совет?

, 👍2

Обсуждение

как вы собираетесь отображать графический интерфейс?, @jsotola

Я планирую, чтобы графический интерфейс отображался на мониторе моего компьютера., @EzE

тогда какая часть вашего вопроса на самом деле связана с Arduino?, @jsotola

Я ищу указатели на разработку автономной портативной программы для управления оборудованием Arduino. Аппаратное обеспечение Arduino и Arduino IDE понятны. Однако я не нашел ни одного примера, в котором использовалась бы автономная программа для управления Arduino, не требующая использования Arduino IDE на стороне. Проясняет ли это мою цель?, @EzE

Я использую Java. Единственная часть "Arduino" - это последовательная связь для передачи команд и данных (в чем мы можем вам помочь), но графический интерфейс не имеет никакого отношения к Arduino., @Majenko

Итак, отправляясь в это путешествие, должен ли я сначала научиться разрабатывать графический интерфейс с использованием Java или другого языка? Затем узнайте, как включить последовательную связь для управления Arduino?, @EzE

вы не правы насчет этого ... - Python и "Обработка", но они, похоже, требуют одновременного использования Arduino IDE ... google обработка arduino serial, @jsotola

IDE обработки-это тот, который Arduino "украл", чтобы использовать для Arduino IDE. Он выглядит похожим, но выполняет совершенно другую работу. Вы должны выучить язык программирования, прежде чем начнете думать о том, как интегрировать его с Arduino., @Majenko

Теперь я знаю, что делать, чтобы начать работу. Спасибо вам всем!, @EzE


2 ответа


1

Uno подключается к ПК с помощью последовательного интерфейса (эмулируется через USB). Программа на ПК видит только последовательный интерфейс. Не важно, действительно ли на другом конце есть Arduino. Почти каждый язык программирования может быть использован для взаимодействия с последовательным интерфейсом, каждый из которых имеет свои преимущества и недостатки. Но у вас не будет ни одного переносного программного файла, который вы могли бы запустить на разных ОС без какой-либо установки. Либо вам нужно скомпилировать программу для каждой ОС индивидуально, либо вы можете использовать переносимый язык программирования, где вам сначала нужно установить его фреймворк на ОС (например, python).

Я бы предложил другое решение (над которым я в настоящее время также работаю): в зависимости от вашей лабораторной ситуации вы можете расширить свой проект с помощью сетевого интерфейса, либо Wi-Fi, либо локальной сети. Затем вы можете представить веб-интерфейс пользователю. При написании веб-сайтов на HTML/javascript их легко корректно отображать в большинстве браузеров.

Таким образом, графический интерфейс действительно независим от операционной системы. Для добавления сетевого подключения вы можете использовать экран локальной сети, экран Wi-Fi или напрямую сменить микроконтроллер с Arduino Uno на плату ESP, которая встроена в Wi-Fi, а также обладает большей вычислительной мощностью и памятью.

Веб-интерфейс может быть интерактивным с помощью javascript (так как вы не можете запускать php или что-то подобное на Arduino или ESP).

Хотите ли вы использовать сопутствующее приложение, которое вы пишете для ПК, или веб-интерфейс, зависит от вас и зависит от вашей конкретной лабораторной ситуации.

,

+1 для интернета. это путь для Windows и Mac. если вы просто предоставляете командные интерфейсы в сокете, вы можете создать настолько сложную веб-страницу gui, насколько захотите, размещенную в другом месте или на компьютере. если хостинг на arduino, держите его простым. создавая программу командного ответа на сокет, вы, по сути, выполняете работу php (на стороне сервера)., @Abel

языки: C (или C++) для arduino, html и javascript для графического интерфейса, @Abel


0

У меня впереди аналогичный проект. Хотя возможность считывать выходные напряжения с помощью Arduino вполне очевидна, мне было интересно, можем ли мы создать файл Python, который будет сохранен как исполняемый файл, но иметь в нем код, который запустит исходный файл arduino cc для считать усредненные напряжения с выводов. Я пробовал использовать pyqt5 и/или tkinter, но у меня возникли проблемы с потоками: графический интерфейс зависает через несколько секунд активности. (Здесь я использовал библиотеку pyserial) Будет очень полезно, если кто-нибудь сможет мне помочь.

,

Это не дает ответа на вопрос. Чтобы задать еще один вопрос, просто нажмите [Задать вопрос](https://arduinoprosto.ru/q/ask) выше. Если хотите, добавьте ссылку на этот вопрос, чтобы обеспечить контекст., @sempaiscuba

Это на самом деле не отвечает на вопрос. Если у вас есть другой вопрос, вы можете задать его, нажав [Задать вопрос](https://arduinoprosto.ru/q/ask). Чтобы получить уведомление, когда на этот вопрос появятся новые ответы, вы можете [подписаться на этот вопрос](https://meta.stackexchange.com/q/345661). Как только у вас будет достаточно [репутации](https://arduino.stackexchange.com/help/whats-reputation), вы также можете [добавить награду](https://arduino.stackexchange.com/help/privileges/set- награды), чтобы привлечь больше внимания к этому вопросу. - [Из обзора](/review/late-ответы/70602), @VE7JRO