11.05.2022г. ВНИМАНИЕ! Если у вас не отображаются иллюстрации к статьям, для просмотра сайта используйте TOR браузер
Часто можно слышать отзывы об Arduino, что это дорого, неэффективно, профанация идеи и т.п. Если задуматься, то окажется, что во многом эта критика справедлива. Одним Arduino сыт не будешь. Если мне требуется микроконтроллер для чего-то простого, например: дисплей и пара кнопок, то использование для такой тривиальной задачи Arduino, действительно можно сравнить с забиванием гвоздей электронным микроскопом. Но если отбросить эмоции и подумать, что наиболее ценное в Arduino-проектах? На мой взгляд, это колоссальный объем открытого кода написанного под различные проекты. Называя вещи своими именами, я не хочу писать с нуля программу для работы микроконтроллера с дисплеем, я хочу использовать уже готовую библиотеку, которую я использовал для Arduino. И не потому что мне "слабо", а потому что я не вижу смысла в изобретении еще одного велосипеда.
О портировании проектов Arduino для “младшего” семейства микроконтроллеров AVR ATtiny пойдет речь в этом посте.
Несколько ссылок:
1) Страница проекта реализующая данную возможность: arduino-tinyИз литератуты рекомендую почитать книгу: Андрей Евстифеев "Микроконтроллеры AVR семейства Tiny"
Arduino использует старшее семейство микроконтроллеров ATmega. Портируя программы на ATtiny придется отказаться от некоторых плюшек. Что мы теряем кроме меньшей памяти и меньшего количества ног? Отказаться придется от UART и I2C интерфейсов(ATtiny2313 это по сути не совсем ATtiny). Если вас это не пугает, то идем дальше.
$ cd sketchbookПолучаем папку tiny в которой лежит файл README. Открываем его вашим любимым текстовым редактором и внимательно читаем секцию INSTALLATION/УСТАНОВКА
$ mkdir hardware
$ cd hardware
$ wget http://arduino-tiny.googlecode.com/files/arduino-tiny-0100-0018.zip
$ unzip ./arduino-tiny-0100-0018.zip
из всего этого следует только одна команда:* Create a new file named "boards.txt" in the tiny directory. Following from the examples above, the file would be here... C:\Projects\Arduino\hardware\tiny\boards.txt * Open the "boards.txt" file and the "Prospective Boards.txt" file using your favourite text editor. * Copy board entries of interest from "Prospective Boards.txt" to "boards.txt" (or copy the entire contents of "Prospective Boards.txt" to "boards.txt"). Board entries are delineated by a long line of pound-signs. * In the "boards.txt" file, change the "upload.using" entries to the appropriate value for your setup. * Save and close "boards.txt". Close "Prospective Boards.txt".
$ cp -v 'Prospective Boards.txt' ./boards.txtпосле чего можно запускать Arduino IDE
$ arduino
Здесь, пожалуй, сразу следует пояснить. oscillator - генератор тактовой частоты. Если вы купили микроконтроллер и еще не успели поменять fuse-биты, то генератор должен быть встроенным и работать на частоте 1MГц. Что будет, если ошибешься с частотой? Работать будет, но или медленнее или быстрее.
BOD - детектор пониженного питания ака Brown-out Detection. Датчик позволяющий определить пониженный уровень питания и “мягко” выключить чип предотвратив дребезг питания. Дело в том, что выключение питания, процесс не мгновенный, чип доли секунды работает при не достаточном питании. В таком состоянии, программа зашитая в нем, начинает выполняться с произвольных адресов т.е. работать хаотически. Это чревато чем? Если ваша программа пишет в EEPROM, то в этом состоянии она запишет туда кашу.
int led=13исправте на
int led =0К Pin0 (пятый контакт ИС) подключите подтягивающий резистор, на другой конец резистора анод светодиода, катод которого соедините с землей.
please define PAGEL and BS2 signals in the configuration file for partВашим любимым текстовым редактором откройте файл
$ nano /opt/arduino/hardware/tools/avrdude.confнайдите секцию со своим микроконтроллером и добавьте в нее две строки
pagel = 0x01; bs2 = 0x01;Попробуйте перепрошить микроконтроллер, предупреждение должно исчезнуть. Подробнее смотрите по четвертой ссылке