Shell на Arduino

Bitlash — командная оболочка (shell) для Arduino. Шелл запускается на контроллере Arduino и поддерживает некоторые функции Arduino:

 bitlash here! v2.0 RC4 (c) 2011 Bill Roy -type HELP- 1017 bytes free > print "Hello from cxem.net!" Hello from cxem.net! > 

Оболочка Bitlash поддерживает большинство плат Arduino и их клоны: Arduino Diecimila, Duemilanove, UNO, Stickduino, Sparkfun Wee, Pro Mini, Sanguino и др. платы.

Особенностью Bitlash является то, что он поддерживает функции. Само Bitlash-приложение хранится в EEPROM контроллера. В последних версиях Bitlash возможно хранение функций на SD-карте. В случае, если нужно исполнение нативного Си кода, к примеру для доступа к периферии или для обеспечения высокой скорости работы, то возможно совмещение Си кода с Bitlash функциями при помощи пользовательских функций (см. раздел User Function)

Кстати, последняя версия Bitlash поддерживает Arduino 1.0 Beta!

Начать работать с оболочкой Bitlash очень просто. Для начала, необходимо скачать последнюю версию с сайта Bitlash Online.
Затем, разархивируйте архив в папку Librariesbitlash. Должно получиться что-то воде этого:

Дерево каталогов для библиотеки Bitlash

Перезапустите среду разработки Arduino. Проверьте, чтобы в меню Sketch->Import Library и в File->Examples появилось bitlash. Если не появилось, то проверяйте пути.

Теперь загрузите в среду разработки пример File->Examples->bitlash->bitlashdemo и загрузите скетч в контроллер.

Теперь можно открыть Serial Monitor или любой другой терминал. Если будете использовать стандартный Serial Monitor то не забудьте внизу окошка переключить возврат каретки на Both NL & CR и скорость передачи на 57600 Baud.

Я предпочитаю использовать терминальный клиент PuTTy. Перед тем, как запустить терминал, вы должны узнать COM-порт на котором у вас висит Arduino. Это можно посмотреть в среде разработки Arduino: Tools->Serial Port. К примеру у меня это COM12. Итак мои настройки PuTTy:

Настройки PuTTy для соединения с Arduino

Чтобы каждый раз не вводить настройки COM-порта я их сохранил. Теперь, двойной щелчок по сессии Arduino сразу же открывает терминал и начинает соединение:

Окно терминала

Если соединение с Arduino прошло успешно, то появится окно, как на рисунке выше. Теперь вы можете вводить команды. К примеру:

 bitlash here! v2.0 RC4 (c) 2011 Bill Roy -type HELP- 1017 bytes free > print "Привет от cxem.net" Привет от cxem.net > print 5*5+2 27 > print free() 1013 > print millis() 317175 > print random(100) 78 

Как было сказано выше, bitlash поддерживает работу с функциями. Разберем простой скрипт bitlash:

 > function toggle13 {d13 = !d13;}; saved > function startup {pinmode(13,1); run toggle13,1000;} saved > startup > boot bitlash here! v2.0 RC4 (c) 2011 Bill Roy -type HELP- 1017 bytes free > ls function toggle13 {d13 = !d13;}; function startup {pinmode(13,1); run toggle13,1000;}; > ps 0: toggle13 

Строка function toggle13 {d13 = !d13;}; записывает в EEPROM функцию toggle13, которая инвертирует цифровой выход d13.
Строка function startup {pinmode(13,1); run toggle13,1000;} определяет специальную функцию startup, которая запускается каждый раз при рестарте контроллера. Здесь, данная функция во первых определяет выход 13 и каждые 1000 мс запускает функцию toggle13.
Команда ls просматривает список функций в памяти.
Команда ps просматривает список выполняющихся функций.

Более подробная документация находится на официальном сайте: Bitlash Online