2016-11-08 2 views
0

Есть ли способ скомпилировать и загрузить программу C, сгенерированную с помощью программы C#, в плату arduino.Как скомпилировать и загрузить в Arduino из приложения C#

В основном, я создал небольшое приложение C#, которое генерирует код C, зависящий от параметров somes, выбранных в окне. Теперь вам нужно скопировать и вставить код внутри вашего интерфейса ardunio для компиляции и загрузки программы.

Я хочу автоматизировать эту задачу и отправить непосредственно код C, встроенный в плату arduino, без использования программы arduino или чего-либо еще. только мой оконный интерфейс. Является ли это возможным ?

Программа картина: enter image description here

ответ

1

Вы не загружать код C, но вы используете AVR-GCC для компиляции в машинный код. Кроме того, Arduino IDE делает некоторую подготовку для получения .cpp файла из файла .ino (генерировать прототипы функций, добавить включаемые файлы) Затем утилита AVRDUDE используется для закачать получившиеся .HEX файла

Посмотрите на расширенном вывода при компиляции и выгрузке.

В целом это возможно, но, как вы просите, я сомневаюсь, что вы добьетесь успеха. Как вы работаете с C#, ищите плагин VisualStudio для компиляции и загрузки в Arduino из VisualStudio (поиск VisualMicro). Возможно, это интересно для вас ...

+0

Спасибо за ответ. Я смотрю о VisualMicro. мне кажется, это трудно использовать! Спасибо, парень – user2305302

+0

Вы можете начать с IDE, а затем импортировать эскиз в проект VS. Внутри VS вы можете редактировать (гораздо лучше поддерживать intellisense), компилировать и загружать. Конечно, это совершенно другой подход, чем ваш вопрос/идея, но это так же просто, как использование Arduino IDE – datafiddler

1

Как указывает datafiddler в своем ответе, сначала необходимо позвонить avr-gcc (чтобы скомпилировать вашу программу).

В качестве альтернативы для второго этапа (процесс загрузки) вы можете использовать ArduinoSketchUploader, родную библиотеку C# для загрузки бинарного файла HEX в Arduino через его загрузчик. Таким образом, вам не нужно отправлять/обменивать avrdude с кодом.

Отказ от ответственности: это библиотека, которую я лично написал.

После NuGet пакет ссылки, результирующий код будет выглядеть следующим образом:

var uploader = new ArduinoSketchUploader(
    new ArduinoSketchUploaderOptions() 
    { 
     FileName = @"C:\MyHexFiles\UnoHexFile.ino.hex", 
     PortName = "COM3", 
     ArduinoModel = ArduinoModel.UnoR3 
    }); 
uploader.UploadSketch(); 
+0

ChristopheR, что может быть решением, поэтому мне нужно найти решение для создания .ino.hex раньше. Я никогда не изучал эту часть C#, но я думаю, что это приемлемый способ для меня. Спасибо. – user2305302

Смежные вопросы