Загрузить на Arduino из командной строки

8

Если у меня есть эскиз, скомпилированный в гекс, можно ли загрузить этот эскиз на плату Arduino, используя avrdude прямо из командной строки?

Пекка понял, что arduino ide выполняет следующую команду при загрузке скетча:

./hardware/tools/avrdude -Chardware/tools/avrdude.conf -pm328p -cstk500v1 -P/dev/ttyUSB0 -b57600 -D -Uflash:w:/home/pekka/sketchbook/Blink2/applet/Blink2.hex 
littlebirdceo
источник

Ответы:

5

IDE arduino сбрасывает подключенное arduino перед запуском avrdude. Он делает это, сообщая устройству FTDI пульсировать линию DTR, которая подключена к выводу сброса arduino. Пекка нашел пример кода Perl, который это сделал, и обновил ветку на форумах Arduino.

Для полноты вот команда, которую они использовали для загрузки файла .hex:

perl -MDevice::SerialPort -e 'Device::SerialPort->new("/dev/ttyUSB0")->pulse_dtr_on(1000)'; \
./hardware/tools/avrdude -Chardware/tools/avrdude.conf -q -q -pm328p -cstk500v1 -P/dev/ttyUSB0 -b57600 -D -Uflash:w:/home/pekka/sketchbook/Blink2/applet/Blink2.hex;

Существует также скрипт Python для сброса arduinos, который можно использовать вместо perl, если у вас возникли проблемы с его работой в вашей системе.

Адам
источник
Правильный URL-адрес для кода Python из Кентского университета: projects.cs.kent.ac.uk/projects/kroc/trac/browser/kroc/trunk/…
Дейв
Включил ваше предложение в ответ @ Adam; это будет обновлено в ближайшее время. Спасибо!
Boardbite
IIRC вы можете выполнить сброс, используя stty, без необходимости использования python или perl.
Крис Страттон