26.07.2010

Arduino 1.0

Вот, оказывается, с чем связан более чем полугодовой перерыв в выпуске ArduinoIDE - полным ходом идет подготовка к версии ArduinoIDE 1.0. Полный список предлагаемых изменений можно посмотреть в google Code. Авторы упоминают, что есть досадные раздражающие мелочи, которые они давно хотели "подчистить", но на самом деле некоторые из них мелочами вовсе и не выглядят. Мало того, в ближайшей перспективе нам грозит потеря 100%-ой совместимости синтаксиса (что вообщем-то не смертельно). 

Итак, вот что планируется по поводу самой IDE:
  • сменить расширение файла '.pde', доставшееся по наследству от Processing, чтобы наконец внести ясность и перестать в них путаться;
  • облагородить тулбар, перерисовав иконки;
  • добавить возможность загружать скетчи и через ISP-программатор (пока так можно только зашивать бутлоадер), а также из командной строки;
  • сделать автоопределение последовательного порта и причесать не совсем логичное (а зато - какое привычное ;) меню выбора платы;
  • возможность добавлять, линковать и распространять с проектом HTML-документацию;
  • улучшенная диагностика, если плату все-таки перепутали (выбрали одну, а подключили другую).
Грядущие изменения языка:
  • добавить функцию sleep() для приложений, вынужденных экономить энергию (я и сам подумывал о подобном, поскольку расточительное потребление холостого loop категорические несовместимо с батарейным питанием);
  • оптимизировать digitalWrite() - споры про это идут давно; в общем случае, она отвечает за трансляцию номера пина Arduino в конкретный порт и пин ATmega;
  • новое API для работы с временем - hour(), second(), minute() и т.п;
  • добавить новые функции для манипулирования аппаратными таймерами - пока что таймеры распределяются под тики и pwm и это полностью скрыто от скетчеписателя;
  • переименовать analogWrite() в pwm();
  • добавить специальные функции для отключения / подключения подтягивающих резисторов типа pullup() / noPullup();
  • добавить функции чтения / записи порта целиком portWrite() / portRead() (правда, не совсем понимаю - зачем, такая возможность заложена в самом avr-gcc);
  • возможность callback-функций для последовательного порта - наподобие serialEvent() в Processing, сделать write() неблокирующим.
Ну и по поводу библиотек:
  • добавить в Ethernet поддержку DHCP и DNS;
  • добавить библиотеку SPI;
  • переименовать LiquidCrystal в LCD;
  • переименовать Wire в что-то другое ;)
  • вынести Sprite и Matrix из ядра;
  • сделать автовычисление зависимостей между библиотеками.
На этот список еще пока можно повлиять, если есть такое желание - подпишитесь на список рассылки разработчиков и внесите свои 5 копеек ;) ибо сила сообщества суммируется из усилий каждого его участника ;) 

1 комментарий:

  1. "отключения / подключения нагрузочных" - наверно все таки "подтягивающих" резисторов ;)

    ОтветитьУдалить