Arduino:Хакинг: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
 
Нет описания правки
Строка 2: Строка 2:
{{Перевод от Сubewriter}}
{{Перевод от Сubewriter}}
{{Myagkij-редактор}}
{{Myagkij-редактор}}
{{Черновик}}


=Хакинг: как устроена Arduino и как расширить ее возможности <ref>[https://www.arduino.cc/en/Hacking/HomePage www.arduino.cc - Hacking Arduino: Extending and Developing it]</ref>=
=Хакинг: как устроена Arduino и как расширить ее возможности <ref>[https://www.arduino.cc/en/Hacking/HomePage www.arduino.cc - Hacking Arduino: Extending and Developing it]</ref>=


'''Arduino''' разработана таким образом, чтобы пользователь мог без особого труда расширить ее возможности, используя для этого стандартные, но мощные компоненты. В этом разделе описывается, как работает Arduino и как, используя эти знания, адаптировать ее функциональность под свои нужды.
[[Arduino]] разработана таким образом, чтобы пользователь мог без особого труда расширить ее возможности, используя для этого стандартные, но мощные компоненты. В этом разделе описывается, как работает [[Arduino]] и как, используя эти знания, адаптировать ее функциональность под свои нужды.


== ПО ==
== ПО ==


* [[Arduino:Хакинг/Написание примера|Написание примера]] - Написание скетчей-примеров для '''Arduino''', которые будут понятны и начинающим, и продвинутым пользователям.
* [[Arduino:Хакинг/Написание примера|Написание примера]] - Написание [[скетч]]ей-примеров для [[Arduino]], которые будут понятны и начинающим, и продвинутым пользователям.
* [[Arduino:Хакинг/Написание библиотеки|Написание библиотеки]] - Создание библиотеки, расширяющей функциональность '''Arduino'''. Пошаговое описание процесса создания библиотеки из скетча.
* [[Arduino:Хакинг/Написание библиотеки|Написание библиотеки]] - Создание библиотеки, расширяющей функциональность [[Arduino]]. Пошаговое описание процесса создания библиотеки из скетча.
* [[Arduino:Хакинг/Настройки Arduino|Настройки Arduino]] - Файл настроек '''IDE Arduino''' дает множество опций для изменения того, как '''IDE Arduino''' компилирует и загружает скетчи.
* [[Arduino:Хакинг/Настройки Arduino|Настройки Arduino]] - Файл настроек [[IDE Arduino]] дает множество опций для изменения того, как [[IDE Arduino]] компилирует и загружает скетчи.
* [[Arduino:Хакинг/Процесс сборки скетча|Процесс сборки скетча]] - Здесь рассказывается о шагах, которые ваш скетч проходит перед загрузкой на плату '''Arduino'''.
* [[Arduino:Хакинг/Процесс сборки скетча|Процесс сборки скетча]] - Здесь рассказывается о шагах, которые ваш [[скетч]] проходит перед загрузкой на [[плату Arduino]].
* [[Arduino:Хакинг/Загрузчик|Загрузчик]] - Загрузчик – это небольшой код, позволяющий загружать скетчи на плату '''Arduino'''. Он предварительно записывается на микроконтроллеры, которыми оснащаются '''Arduino'''. Дополнительные инструкции по записи загрузчика на [[Arduino:Продукты/Продукты Arduino/Плата Arduino Mini|Arduino Mini]] читайте [https://www.arduino.cc/en/Hacking/MiniBootloader тут]
* [[Arduino:Хакинг/Загрузчик|Загрузчик]] - Загрузчик – это небольшой код, позволяющий загружать скетчи на плату Arduino. Он предварительно записывается на [[микроконтроллер]]ы, которыми оснащаются [[Arduino]]. Дополнительные инструкции по записи загрузчика на [[Arduino:Продукты/Продукты Arduino/Плата Arduino Mini|Arduino Mini]] читайте [https://www.arduino.cc/en/Hacking/MiniBootloader тут]
* [[Arduino:Хакинг/Программатор|Программатор]] - Здесь объясняется, как использовать '''IDE Arduino''' вместе с аппаратным программатором (это устраняет необходимость в использовании программного загрузчика и экономит программную память на чипе).
* [[Arduino:Хакинг/Программатор|Программатор]] - Здесь объясняется, как использовать [[IDE Arduino]] вместе с аппаратным [[программатор]]ом (это устраняет необходимость в использовании программного загрузчика и экономит программную память на чипе).
* [[Arduino:Хакинг/Обновление прошивки ATmega8U2 и ATmega16U2|Обновление прошивки ATmega8U2 и ATmega16U2]] - Обновление прошивки на чипе '''ATmega8u2/Atmega16u2''', которым оснащается [[Arduino:Продукты/Продукты Arduino/Плата Arduino Uno|Uno]] и [[Arduino:Продукты/Продукты Arduino/Плата Arduino Mega 2560|Mega 2560]]. Этот чип служит конвертером, преобразующим '''USB'''-данные в последовательные данные, и его прошивка может быть обновлена через '''USB'''.
* [[Arduino:Хакинг/Обновление прошивки ATmega8U2 и ATmega16U2|Обновление прошивки ATmega8U2 и ATmega16U2]] - Обновление прошивки на чипе [[ATmega8u2]]/[[Atmega16u2]], которым оснащается [[Arduino:Продукты/Продукты Arduino/Плата Arduino Uno|Uno]] и [[Arduino:Продукты/Продукты Arduino/Плата Arduino Mega 2560|Mega 2560]]. Этот чип служит конвертером, преобразующим USB-данные в последовательные данные, и его прошивка может быть обновлена через [[USB]].
* [[Arduino:Хакинг/Обновление прошивки Arduino WiFi Shield|Обновление прошивки Arduino WiFi Shield]] -  Чип '''ATmega32UC3A1256''' обеспечивает стек '''TCP/IP''' и коммуницирует с '''WiFi'''-модулем '''HDG104'''. Обновление прошивки может улучшить или изменить поведение этого чипа.
* [[Arduino:Хакинг/Обновление прошивки Arduino WiFi Shield|Обновление прошивки Arduino WiFi Shield]] -  Чип [[ATmega32UC3A1256]] обеспечивает [[стек TCP/IP]] и коммуницирует с WiFi-модулем [[HDG104]]. Обновление прошивки может улучшить или изменить поведение этого чипа.
* [[Arduino:Хакинг/Обновление прошивки ATmega16u2 на Arduino Due|Обновление прошивки ATmega16u2 на Arduino Due]] - Чип '''ATmega16u2''' на [[Arduino:Продукты/Продукты Arduino/Плата Arduino Due|Arduino Due]] подключен к порту для программирования и действует как конвертер, преобразующий '''USB'''-данные в последовательные данные. Когда для этого чипа выходит новая прошивка, ее следует обновить.
* [[Arduino:Хакинг/Обновление прошивки ATmega16u2 на Arduino Due|Обновление прошивки ATmega16u2 на Arduino Due]] - Чип [[ATmega16u2]] на [[Arduino:Продукты/Продукты Arduino/Плата Arduino Due|Arduino Due]] подключен к порту для программирования и действует как конвертер, преобразующий USB-данные в последовательные данные. Когда для этого чипа выходит новая прошивка, ее следует обновить.
* [https://github.com/arduino/Arduino/ Исходный код] - '''GitHub'''-репозиторий с исходным кодом '''Arduino''' (внешняя ссылка).
* [https://github.com/arduino/Arduino/ Исходный код] - GitHub-репозиторий с исходным кодом [[Arduino]] (внешняя ссылка).
* [https://github.com/arduino/Arduino/issues Баги] - Текущий список планируемых улучшений и багов в '''ПО''' для '''Arduino'''
* [https://github.com/arduino/Arduino/issues Баги] - Текущий список планируемых улучшений и багов в [[ПО]] для [[Arduino]]
* [[Arduino:Хакинг/Почему в работе с Arduino необязательно всегда использовать функцию delay()|Почему в работе с Arduino необязательно всегда использовать функцию delay()]]
* [[Arduino:Хакинг/Почему в работе с Arduino необязательно всегда использовать функцию delay()|Почему в работе с Arduino необязательно всегда использовать функцию delay()]]


== «Железо» ==
== «Железо» ==


'''Arduino''' базируется на [http://www.atmel.com/products/microcontrollers/avr/ микроконтроллерах AVR от Atmel], а особенно – на [http://www.atmel.com/dyn/products/product_card.asp?part_id=2004 ATmega8], [http://www.atmel.com/devices/ATMEGA168.aspx ATmega168], [http://www.atmel.com/devices/atmega328.aspx ATmega328], [http://www.atmel.com/devices/ATMEGA1280.aspx ATmega1280] и [http://www.atmel.com/products/microcontrollers/arm/sam-d.aspx SAMD21]. [[Arduino:Основы/Sketch(Скетч)|Скетчи Arduino]] базируются на '''C/C++''', компилируются при помощи компилятора [http://www.avrfreaks.net/ avr-gcc] (распространяется по принципу «open-source») и слинкованы с библиотекой [http://www.nongnu.org/avr-libc/ AVR Libc] (тоже распространяется по '''«open-source»'''). Язык '''Arduino''' наследует у [http://wiring.org.co/ Wiring]. Среда разработки '''IDE Arduino''' основана на [http://processing.org/ Processing] и включает в себя модификации, сделанные '''Wiring'''.
Arduino базируется на [http://www.atmel.com/products/microcontrollers/avr/ микроконтроллерах AVR от Atmel], а особенно – на [http://www.atmel.com/dyn/products/product_card.asp?part_id=2004 ATmega8], [http://www.atmel.com/devices/ATMEGA168.aspx ATmega168], [http://www.atmel.com/devices/atmega328.aspx ATmega328], [http://www.atmel.com/devices/ATMEGA1280.aspx ATmega1280] и [http://www.atmel.com/products/microcontrollers/arm/sam-d.aspx SAMD21]. [[Arduino:Основы/Sketch(Скетч)|Скетчи Arduino]] базируются на [[C]]/[[C++]], компилируются при помощи [[компилятор]]а [http://www.avrfreaks.net/ avr-gcc] (распространяется по принципу ''«open-source»'') и слинкованы с библиотекой [http://www.nongnu.org/avr-libc/ AVR Libc] (тоже распространяется по «open-source»). Язык [[Arduino]] наследует у [http://wiring.org.co/ Wiring]. Среда разработки [[IDE Arduino]] основана на [http://processing.org/ Processing] и включает в себя модификации, сделанные [[Wiring]].


* [[Arduino:Хакинг/Распиновка|Распиновка]] - Рисунок, показывающий соотношение между контактами на плате '''Arduino''' и портами на микроконтроллере [[Arduino:Хакинг/Распиновка между ATmega8 и Arduino|ATmega8]] или [[Arduino:Хакинг/Распиновка между ATmega168 и Arduino|ATmega168]]
* [[Arduino:Хакинг/Распиновка|Распиновка]] - Рисунок, показывающий соотношение между контактами на плате [[Arduino]] и портами на [[микроконтроллер]]е [[Arduino:Хакинг/Распиновка между ATmega8 и Arduino|ATmega8]] или [[Arduino:Хакинг/Распиновка между ATmega168 и Arduino|ATmega168]]
* [[Arduino:Хакинг/Добавление последовательных интерфейсов (SERCOM’ов) на SAMD-плату Arduino|Добавление последовательных интерфейсов (SERCOM’ов) на SAMD-плату Arduino]] - Руководство по созданию на платах с микроконтроллерами '''SAMD''' дополнительных аппаратных последовательных портов, работающими по протоколам '''I2C''', '''SPI''' и '''UART'''.
* [[Arduino:Хакинг/Добавление последовательных интерфейсов (SERCOM’ов) на SAMD-плату Arduino|Добавление последовательных интерфейсов (SERCOM’ов) на SAMD-плату Arduino]] - Руководство по созданию на платах с микроконтроллерами [[SAMD]] дополнительных аппаратных последовательных портов, работающими по протоколам [[I2C]], [[SPI]] и [[UART]].
* [[Arduino:Хакинг/Добавление автоматического сброса на Arduino NG|Добавление автоматического сброса на Arduino NG]] - Как модифицировать '''Arduino NG''', чтобы загружать скетчи без необходимости вручную нажимать на кнопку сброса на плате.
* [[Arduino:Хакинг/Добавление автоматического сброса на Arduino NG|Добавление автоматического сброса на Arduino NG]] - Как модифицировать [[Arduino NG]], чтобы загружать скетчи без необходимости вручную нажимать на кнопку сброса на плате.
* [[Arduino:Хакинг/Программатор с параллельным портом|Программатор с параллельным портом]] - Здесь рассказывается, как сделать простое и дешевое устройство, позволяющее записать загрузчик на плату '''Arduino''' или загружать на плату скетчи без использования загрузчика (работает только для компьютеров с параллельным портом).
* [[Arduino:Хакинг/Программатор с параллельным портом|Программатор с параллельным портом]] - Здесь рассказывается, как сделать простое и дешевое устройство, позволяющее записать загрузчик на плату [[Arduino]] или загружать на плату скетчи без использования загрузчика (работает только для компьютеров с параллельным портом).
* [[Arduino:Хакинг/Схема Arduino на макетной плате|Схема Arduino на макетной плате]] - Здесь рассказывается, как воссоздать схему платы '''Arduino''' на макетной плате.
* [[Arduino:Хакинг/Схема Arduino на макетной плате|Схема Arduino на макетной плате]] - Здесь рассказывается, как воссоздать схему [[платы Arduino]] на [[макетной плате]].
* [[Arduino:Хакинг/Как переключиться с 5-вольтовой логики на 3,3-вольтовую|Как переключиться с 5-вольтовой логики на 3,3-вольтовую]]
* [[Arduino:Хакинг/Как переключиться с 5-вольтовой логики на 3,3-вольтовую|Как переключиться с 5-вольтовой логики на 3,3-вольтовую]]


== Еще руководства для расширения Arduino ==
== Еще руководства для расширения Arduino ==


* [[Arduino:Хакинг/«Шилд» своими руками|«Шилд» своими руками]] - Здесь рассказывается, как собрать собственный шилд из макетной платы, чтобы затем его можно было подключить к плате '''Arduino'''.
* [[Arduino:Хакинг/«Шилд» своими руками|«Шилд» своими руками]] - Здесь рассказывается, как собрать собственный шилд из макетной платы, чтобы затем его можно было подключить к плате [[Arduino]].
* [[Arduino:Хакинг/«Шилд» своими руками (вариант 2)|«Шилд» своими руками (вариант 2)]] - Эта статья рассказывает о том, как спроектировать и вытравить собственный шилд для платы '''Arduino'''.
* [[Arduino:Хакинг/«Шилд» своими руками (вариант 2)|«Шилд» своими руками (вариант 2)]] - Эта статья рассказывает о том, как спроектировать и вытравить собственный шилд для [[платы Arduino]].


== Другие ресурсы ==
== Другие ресурсы ==
Строка 46: Строка 44:


=См.также=
=См.также=
{{ads}}


=Внешние ссылки=
=Внешние ссылки=


<references />
<references />
{|style="border-spacing:8px; margin:0 auto;"
|class="MainPageBG" style="-moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; width: 55%; border: 3px solid #cef2e0; vertical-align: top; background-color: white;"|
{|width="100%" cellpadding="2" cellspacing="5" style="vertical-align:top;"
!В процессе создания ∩༼˵☯‿☯˵༽つ¤=[]:::::>
|-
|[[File:nokia3310.gif|center]]
|}


[[Категория:Хакинг]]
[[Категория:Хакинг]]
[[Категория:Хакинг Arduino]]
[[Категория:Хакинг Arduino]]

Версия от 18:42, 15 декабря 2021

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Хакинг: как устроена Arduino и как расширить ее возможности [1]

Arduino разработана таким образом, чтобы пользователь мог без особого труда расширить ее возможности, используя для этого стандартные, но мощные компоненты. В этом разделе описывается, как работает Arduino и как, используя эти знания, адаптировать ее функциональность под свои нужды.

ПО

«Железо»

Arduino базируется на микроконтроллерах AVR от Atmel, а особенно – на ATmega8, ATmega168, ATmega328, ATmega1280 и SAMD21. Скетчи Arduino базируются на C/C++, компилируются при помощи компилятора avr-gcc (распространяется по принципу «open-source») и слинкованы с библиотекой AVR Libc (тоже распространяется по «open-source»). Язык Arduino наследует у Wiring. Среда разработки IDE Arduino основана на Processing и включает в себя модификации, сделанные Wiring.

Еще руководства для расширения Arduino

Другие ресурсы

  • Калькулятор AVR-фьюзов - Используется, когда нужно найти правильные настройки фьюз-битов для плат, созданных по собственным проектам.
  • Сборка Minty Boost - Этот материал не о микроконтроллерах, но он хорошо объясняет, как собрать проект – от идеи до готового продукта.

См.также

Внешние ссылки