Может быть, не совсем адресу, а к дельфийцам надо.
Значит, есть Мега2560. Есть модуль rs485-ttl на микросхеме max485, есть модуль rs485-usb для подключения к ПК.
Мне нужно сделать минипрограмму на делфи: форма с кнопкой и с полем ввода. Кнопка отправляет несколько байт ардуине, ардуина отвечает своим пакетом. Выводим ответ ардуины в поле ввода программы на ПК.
Задача пока на уровне абстракции в поисках исполнителя
Arduin4ik если признаете что все не просто, да денех много дадите то наверное сделают….
а то заказов таких нет в большом количестве что бы делать дешево…
я например могу на языке GO сделать программу - это фактически тот же язык что и у ардуино, ооочень похож
у других свои способы для графического интерфейса… а сделать такой веб сервер вовсе многие смогут….
вам именно на делфи все же ? или любой графический интерфейс ? и сколько денег за проект ?
Приоткрою завесу. Основная задача для меня - научиться общаться с ПК через rs485. Почему делфи, я на нём работал, мне в нём многое знакомо.
Общая задача, на которой я хочу научиться: отправляем с ПК запрос в ардуину, получаем на ПК значение температуры с датчика dht22. Всë. Заимев исходник, разберусь.
и зачем тогда тащить сюда rs485 конверторы?
Мега2560 прекрасно общается с ПК по USB-COM преобразователю который имеет на борту.
то есть научившись общаться компом с мегой по COM порту, потом ставите USB->COM->RS485 на стороне компа и COM->RS485 на стороне меги и просто ничего не меняете в программной части.
для программиста универсала это роскошь, он может изучать только то на что есть спрос, и оплата чуть больше чем едой))) я как то не застал его востребованность, и вовсе не знаю что это, но если позволяет, почему нет…. даже на питоне можно… главное дрова или логику там не писать стараться))) но зато питон может вообще все!
import serial, time
PORT = "/dev/ttyUSB1"
BAUD = 9600
ser = serial.Serial(PORT, BAUD, timeout=1)
ser.reset_input_buffer()
def read_reply():
deadline = time.time() + 2.0
while time.time() < deadline:
line = ser.readline()
if not line:
continue
s = line.decode("utf-8", errors="replace").strip()
if s.startswith("OK:"):
return s
# иначе это эхо или мусор — игнорируем
return "<timeout>"
print("Enter text, empty line to exit.")
while True:
s = input("> ")
if not s:
break
ser.reset_input_buffer() # выкинуть хвост перед запросом
ser.write((s + "\n").encode())
print("<", read_reply())
ser.close()
важный момент: USB свисток, включенный по двух проводной схеме слышат сам себя, поэтому нужно любым способом отличать эхо от приема. То есть на нем ТЫ ВСЕГВА примешь эхо… или топологией (4 провода ), если устройств много или протоколом это надо решать… Вот тут просто жду строчку, начинающуюся с OK. это для иллюстрации.
видео скину позже, когда на вашем ?%№ рутубе модерация пройдет.
ЗЫ: в душе не понимаю, что они там модерируют…
485 самая отличная штука для всяких сетей железок в доме, в машине, в корабле. Раньше на флоте она стандартом была, но медленная и пароходы перешли на CAN. Но по цене модули КАН дороже прилично, а модули 485 для ардуино стоят копейки. и свисток в комп, если надо. Видео не особо интересно - там просто как всё выглядит и как программка на Лазарусе (это в Линуксе Дельфи так называется).
Код на Лазарусе я не стану публиковать - ДетСимен хотел пару копеек на кашу гречневую (с тушенкой) заработать!
Слушайте, я немного в шоке от того, что сдешняя верхушка не только обсуждает тему, но ещё и нашли время накидать, снять видос!Чаще всего: “эй, ты, желторотик, пшлнх”, а тут вон чего.
Да, свисток 2х проводной с переключалкой между rs232 и rs485. Сформулирую Деду задачу без лишнего всего. Вникну, а там сам уже.
Когда будешь дописывать “лишнее”, имей в виду разницу в длине типов данных Arduino/AVR и Delphi. Как показывает статистика, для людей которые пытаются передавать данные между Arduino и Delphi, это самая частая ошибка.