Программирование микроконтроллеров в Delphi
Я искал некоторую информацию о программировании микроконтроллера, но информация, которую я нахожу, либо слишком высока, либо, кажется, не существует. Я ищу что-то, что легче переварить! Я относительно новичок в программировании и пришел из базы данных SQL DBA и решил, что мне будет легче выучить некоторые основы программирования, а затем научить себя Delphi, чем реализовать некоторые изменения с помощью системы безумных изменений в моей компании! После пары лет программирования на Delphi я могу без особых проблем заняться написанием приложений для баз данных и хочу перейти на новый уровень. Мы используем микроконтроллеры PIC на наших печатных платах; в основном семейство PIC18F. Программное обеспечение на PICS написано на C, но есть значения параметров, которые записываются приложением Delphi, которое взаимодействует с PIC с помощью элемента управления ActiveX. В основном, база данных SQL содержит информацию о параметрах, клиентское приложение Delphi извлекает эти значения, передает их контроллеру ActiveX, который выполняет все низкоуровневые операции на PIC. Например, внутренняя EEPROM будет иметь карту, и в пределах любого конкретного адреса будет сохраняться значение для включения или выключения чего-либо или для хранения целочисленного значения и т. Д. Я получил набор MPLAB, который имеет устройство ICD2, которое может читать и записать значения во внутреннюю EEPROM, и я понимаю, как изменить эти шестнадцатеричные значения с помощью программного обеспечения MPLAB. Я не надеюсь изучать программирование встроенных микроконтроллеров; скорее, я могу написать приложение Delphi, которое будет делать что-то похожее на программное обеспечение MPLAB. Например, чтение и запись значений по определенным адресам памяти в EEPROM. Я был бы очень признателен, если бы кто-нибудь мог указать мне правильное направление любых библиотек или компонентов, которые уже могут существовать, для преодоления этого разрыва между простым приложением Delphi-формы и написанием низкоуровневой PIC EEPROM. Я сомневаюсь, что такой простой интерфейс существует, но я решил спросить. Подводя итог, я хочу иметь возможность иметь простое приложение для форм, с некоторыми полями для редактирования, которые пользователь вводит или выбирает из выпадающих списков, значений параметров, чтобы нажимать на кнопки и назначать эти значения параметров конкретным адресам памяти EEPROM. Спасибо за чтение, и любые комментарии будут с благодарностью приняты.
С уважением
KD
5 ответов
Обновлено 2015 Ответ:
Почему бы не Raspberry Pi с FreePascal и Lazarus? По состоянию на эту дату платы стоят от 5 до 25 долларов США, а средства разработки бесплатны.
Оригинальный ответ 2012 года: Если вы хотите использовать Pascal, вы можете найти Free Pascal полезным для небольших встроенных систем, но я полагаю, что минимум, на котором он может компилироваться, - это встроенная система ARM на основе Linux. Тот факт, что вы используете паскаль с обеих сторон, вряд ли поможет вам выполнить что-то важное.
Если вы хотите пройти весь путь до самых маленьких микроконтроллеров PIC, вы обнаружите, что это почти всегда вариант C, который вы будете использовать. Честно говоря, на этом уровне различий не так много. Если вы можете написать Паскаль, вы можете выучить достаточно C за день, чтобы использовать его с микроконтроллерами.
Не бойтесь использовать родной язык, который поддерживает большинство микроконтроллеров. Мои личные фавориты - микроконтроллеры Rabbit, ранее из Z-World, а теперь из digi - я думаю, что я заплатил около 100 долларов США за первую плату и инструментарий для разработки.
Взаимодействие такого приложения с delphi довольно просто, обычно в наши дни я бы взаимодействовал с использованием TCP/IP через проводной Ethernet или беспроводной (Wifi). Но если вы действительно хотите, вы можете использовать последовательные соединения RS-232 или RS-485. (Преимущество RS-485 в том, что вы можете подключить его до 5 миль в длину.) Если бы я использовал последовательную связь, я бы, вероятно, реализовал что-то вроде Modbus с обеих сторон, если бы я просто хотел отправить некоторые числовые данные обратно и В-четвертых, и если бы я занимался чем-то текстовым, я бы написал мини-веб-сервер HTTP на встроенном контроллере, и в наши дни большинство плат поставляются с достаточным количеством демонстраций HTTP-сервера, чтобы упростить эту работу.
Я большой поклонник MikroElectronika и с большим успехом использовал их инструменты Pascal для MCU серии pic16 (интерфейсы с сенсорным экраном, ZigBee,...). http://www.mikroe.com/
Если у вас есть исходный код вашего микроконтроллера pic, вы можете реализовать код на C для чтения из Serial, USB или другого интерфейса, доступного на вашем оборудовании, и записи его в eeprom. Таким образом, легко написать приложение на любом языке высокого уровня, например, Delphi, C++ и т. Д.
Или вы можете написать свое PIC-приложение, используя mikropascal-компилятор из mikroeletronika, который очень хорош, и я давно его использую, но, как вы можете видеть, вам придется реализовать некоторый механизм для чтения из интерфейса и записи в свой eeprom. как я уже говорил ранее.
Этот компилятор поставляется с большим количеством библиотек для работы со многими устройствами. Вы должны взглянуть на это, это не бесплатно, но цена низкая, и на их сайте вы можете найти образцы и образцы плат для тестирования.
Если вы хотите, чтобы простой интерфейс записывал данные в EEPROM PIC, можно использовать утилиту командной строки ICD. К сожалению, он недоступен для ICD2, но PICkit 2 и 3 (которые дешевы), ICD3 и RealICE имеют утилиты командной строки, которые дают вам возможность записи в EEPROM (google pk2cmd). В Delphi вы можете просто обернуть очень простой набор вызовов командной строки в pk2cmd.
Delphi выводит собственные приложения Win32 и Win64, вы можете написать программное обеспечение, которое может взаимодействовать с определенными устройствами, если на печатной плате установлена последовательная связь, или I2C, вы можете написать программное обеспечение, которое в Delphi будет взаимодействовать с физическим устройством.
Но если вы хотите запрограммировать устройства самостоятельно, напишите программное обеспечение, которое будет работать на этих устройствах, вы не сможете сделать это в Delphi. Я предлагаю вам купить Arduino, это отличная среда для начинающих в программировании микроконтроллеров.