Управление щаговым двигателем из Delphi XE1

Rix1970
Offline
Зарегистрирован: 16.06.2022

Мне требуется осуществить управление шаговым двигателем из Windows-программы, написанной на Embarcadero Delphi XE1 на одноплатном компьютере 110991412 Odyssey Blue, который работает под Windows 10. Мне сказали, что на одноплатном компьютере 110991412 Odyssey Blue можно поднять (или он там встроен) Arduino.
Знакомый специалист поделился следующим:

Там интересная ситуация - к процессору подключен микроконтроллер прошитый и биос завязан с ним, то есть аппаратно они работают в некой связке. далее можно написать прошивку для работы микроконтроллера в том режиме,котором нам удобнее. помнишь я тебе показывал команды для управления GPIO - вот они подключены к этому микроконтроллеру. Насчет поднять ардуино-совершенно точно,сейчас увидел что через Arduino IDE можно его прошивать. шикарная вещь. https://wiki.seeedstudio.com/ODYSSEY-X86J4105/#arduino-ide-doesnt-recogn... тут выложены модели, мануал и драйвера для платы.

Для примера можно использовать драйвер шагового двигателя https://3d-diy.ru/wiki/arduino-moduli/drajver-shagovogo-dvigatelya-a4988/
Вопрос от чайника: как обратиться из Windows-программы, написанной на Delphi, к плате управления шаговым двигателем через Arduino (например, через команды "количество шагов" и "направление вращения").
Как можно подружить на одноплатном компьютере программу на Delphi XE1 и Arduino на одноплатном компьютере?

 

kalapanga
Offline
Зарегистрирован: 23.10.2016

Судя по тому, что я видел в интернете, та ардуина, что там сидит на плате, отзывается как обычно по какому-то ком-порту.

Поэтому отдельно пишете/находите скетч управления шаговым двигателем через такой драйвер. Загружаете его в эту ардуину.

А общаться с этой ардуинкой из любой программы хоть на дельфи писаной, хоть на чём, проще всего так же через ком порт. Для дельфей можно готовый компонент для работы с ком-портом найти.

Короче есть две задачи, решаемые по отдельности. Подключение шаговика к ардуино через драйвер и взаимодействие ПК с ардуино. Для обеих несложно найти примеры в сети.

p.s. Уточню, что я в основном ориентировался вот на этот попавшийся мне обзор: https://cnx-software.ru/2020/07/27/obzor-odyssey-x86j4105-sbc-na-baze-gemini-lake-i-arduino-s-windows-10-enterprise/

Если у автора вопроса какая-то другая модель, то естественно могут быть нюансы.

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

Мне кажется, если вы задаете такие вопросы, то для вас это будет непосильная задача, ну а по сути:
судя по описанию 110991412 Odyssey Blue, там два процессора, один из которых ARM Cortex + Raspberry Pi 40pin стандартный, как этот процессор связан на плате с Celeron читайте документацию производителя. Я бы сделал на Linux открытый UDP сетевой сокет, в который программа на Windows бы пинала команды, а уже программа на Linux рулила бы GPIO двигателя.

Rix1970
Offline
Зарегистрирован: 16.06.2022

А в Delphi адаптировать скетчи для Arduino нельзя?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Rix1970 пишет:

А в Delphi адаптировать скетчи для Arduino нельзя?

можно, если можете напрямую GPIO портами управлять, почему жеж нет

b707
Offline
Зарегистрирован: 26.05.2017

Rix1970 пишет:

А в Delphi адаптировать скетчи для Arduino нельзя?

похоже вы вообще ничего не поняли.

повторяю - у вас на плате два процессора - для одного программы пишутся в Дельфи. а для другого - в ардуино. Это два разных проца, понимаете?

Поэтому "адаптировать скетчи ардуино для дельфи", даже если бы это было возможно - не имеет смысла.

Rix1970
Offline
Зарегистрирован: 16.06.2022

В описании написано, что ODYSSEY - X86J4105 содержит Integrated Arduino Coprocessor ATSAMD21 ARM® Cortex®-M0+. Его использовать нельзя для управления шаговым двигателем и как это можно сделать?

Rix1970
Offline
Зарегистрирован: 16.06.2022

Извините, но из одного процессора (Windows 10) обратиться к другому (Arduino) возможно? И как это сделать?

b707
Offline
Зарегистрирован: 26.05.2017

Rix1970 пишет:

Извините, но из одного процессора (Windows 10) обратиться к другому (Arduino) возможно? И как это сделать?

возможно, иначе эта сборка из двух процев не имела бы смысла.

А вот как - изучайте доки к своему Одиссею...

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Млин, проще все же как выше писали через COM-порт, если так все «сложно» у тс.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

BOOM пишет:

Млин, проще все же как выше писали через COM-порт, если так все «сложно» у тс.

из под LINUX пины доступны, а вот как обстоят дела с виндою, загадка, по идее должны быть видны, так как инициализируются в биосе

TC покажи ка нам Диспетчер устройств!

sadman41
Offline
Зарегистрирован: 19.10.2016

Вот так программироваешь ардуину встроенную: https://wiki.seeedstudio.com/ODYSSEY-X86J4105/#using-the-arduino-core-at...
Я думаю, что тудыть надобно залить какой-нить grbl, подключить через 28pin header дривер шагового и метать с Дельфи в ком-порт команды грбл-у. Он пусть уже мотор крутит.

Пинаут: https://wiki.seeedstudio.com/ODYSSEY-X86J4105/#pinout-diagram

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

sadman41 пишет:
Вот так программироваешь ардуину встроенную: https://wiki.seeedstudio.com/ODYSSEY-X86J4105/#using-the-arduino-core-at... Я думаю, что тудыть надобно залить какой-нить grbl, подключить через 28pin header дривер шагового и метать с Дельфи в ком-порт команды грбл-у. Он пусть уже мотор крутит. Пинаут: https://wiki.seeedstudio.com/ODYSSEY-X86J4105/#pinout-diagram

что-то ты ТСу хочешь сильно жизнь упростить )))

kalapanga
Offline
Зарегистрирован: 23.10.2016

Да даже и без grbl гугл по запросу "arduino A4988" тучу уроков и примеров выдаёт. Главное уяснить, что программирование на этой плате по сути принципиально не будет отличаться от "обычного", когда есть отдельно ПК и отдельно ардуино.

Rix1970
Offline
Зарегистрирован: 16.06.2022

Специалисты, к которым я обращался, рекомендуют обращаться из процессора Intel® Celeron® J4105 в процессор Arduino Core coprocessor (ATSAMD21G18) через com-порт. Как можно это сделать? Можете привести листинги программ для Intel® Celeron® J4105 (например. на Delphi) и для Arduino Core coprocessor (ATSAMD21G18)?

Rix1970
Offline
Зарегистрирован: 16.06.2022

Спасибо. Мне нужно иметь две вещи: работа на Delphi с Ардуино на обычном компьютере видимо через com-порт и работа на Delphi с Ардуино на одноплатном компьютере ODYSSEY - X86J4105.

b707
Offline
Зарегистрирован: 26.05.2017

Rix1970 пишет:

Спасибо. Мне нужно иметь две вещи....

вы ошиблись в одной букве: вам нужно _уметь_  две вещи...  Научится этому вы можете только сами. Не думаю, что кто-то тут станет рыть за вас документацию, чтобы разобраться, как на вашей плате обратится к МК через ком-порт...

 

b707
Offline
Зарегистрирован: 26.05.2017

Rix1970 пишет:

Специалисты рекомендуют обращаться к Arduino Core coprocessor (ATSAMD21G18) через com-порт. Как можно это сделать?

судя по этому вопросу, знания у вас на эту тему чуть менее чем нулевые. Читать вам курс компьютерной грамотности никто не будет, так что готовьтесь рыть исходники сами.

Начните с запроса к гуглю что-то типа "arduino delphi comport" - получите кучу ссылок, так как тема эта поднимается постоянно и примеров кода в инете куча

Вот хотя бы даже на нашем сайте  https://arduino.ru/forum/programmirovanie/com-port-kak-svyaz-programmy-na-delphi-s-arduino

Rix1970
Offline
Зарегистрирован: 16.06.2022

sadman41 пишет:
Вот так программироваешь ардуину встроенную: https://wiki.seeedstudio.com/ODYSSEY-X86J4105/#using-the-arduino-core-at... Я думаю, что тудыть надобно залить какой-нить grbl, подключить через 28pin header дривер шагового и метать с Дельфи в ком-порт команды грбл-у. Он пусть уже мотор крутит. Пинаут: https://wiki.seeedstudio.com/ODYSSEY-X86J4105/#pinout-diagram

Прошу прощения, забыл сказать: мне с компьютера нужно управлять тремя шаговыми двигателями. Для этого нужна какая-то шина?

b707
Offline
Зарегистрирован: 26.05.2017

Rix1970 пишет:

Прошу прощения, забыл сказать: мне с компьютера нужно управлять тремя шаговыми двигателями. Для этого нужна какая-то шина?

смотря какие двигатели и через какие драйвера включаются

Rix1970
Offline
Зарегистрирован: 16.06.2022

b707 пишет:

Rix1970 пишет:

Прошу прощения, забыл сказать: мне с компьютера нужно управлять тремя шаговыми двигателями. Для этого нужна какая-то шина?

смотря какие двигатели и через какие драйвера включаются

Например, этими: https://3d-diy.ru/wiki/arduino-moduli/drajver-shagovogo-dvigatelya-a4988/

rkit
Offline
Зарегистрирован: 23.11.2016

У человека, видимо, какое-то патологическое отторжение к чтению инструкций.

sadman41
Offline
Зарегистрирован: 19.10.2016

Rix1970 пишет:

Прошу прощения, забыл сказать: мне с компьютера нужно управлять тремя шаговыми двигателями. Для этого нужна какая-то шина?


Думаю, что вам нужно посидеть и хорошо подумать над тем, что ещё забыто. Нарисовать общую схему и т.д. и только после этого интересоваться конкретикой.
На абстрактный вопрос о возможности управления я ответил. Разрабатывать за вас ваше устройство будут в разделе "Ищу исполнителя".

b707
Offline
Зарегистрирован: 26.05.2017

Rix1970 пишет:

Прошу прощения, забыл сказать: мне с компьютера нужно управлять тремя шаговыми двигателями. Для этого нужна какая-то шина?

Например, этими: https://3d-diy.ru/wiki/arduino-moduli/drajver-shagovogo-dvigatelya-a4988/

для "например этих" никакая "шина" не нужна, они управляются непосредственно через пины МК

Но я полностью согласен с Садманом41 - судя по вопросам, у вас пока никакого плана работы нет, а значит тратить время на обьяснение вам каких-то конкретных моментов смысла мало - у вас это все еще 100 раз поменяется и сведения не пригодятся...

Более того, может вы еще вообще откажетесь от этой затеи....:)  так для чего на вас время тратить

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

ТС ищет халявы (

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

а плата мне понравиласиь, ТС ! Высылай плату, помогу разобраться, получится практически безвозмездно

ЗЫ а чё, только одному СКИФУ можно )))