Arduino:Хакинг: различия между версиями
Myagkij (обсуждение | вклад) |
Myagkij (обсуждение | вклад) Нет описания правки |
||
Строка 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]] - Файл настроек [[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:Хакинг/Программатор|Программатор]] - Здесь объясняется, как использовать [[IDE Arduino]] вместе с аппаратным [[программатор]]ом (это устраняет необходимость в использовании программного загрузчика и экономит программную память на чипе). | ||
* [[Arduino:Хакинг/Обновление прошивки ATmega8U2 и ATmega16U2|Обновление прошивки ATmega8U2 и ATmega16U2]] - Обновление прошивки на чипе | * [[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]] - Чип | * [[Arduino:Хакинг/Обновление прошивки Arduino WiFi Shield|Обновление прошивки Arduino WiFi Shield]] - Чип [[ATmega32UC3A1256]] обеспечивает [[стек TCP/IP]] и коммуницирует с WiFi-модулем [[HDG104]]. Обновление прошивки может улучшить или изменить поведение этого чипа. | ||
* [[Arduino:Хакинг/Обновление прошивки ATmega16u2 на Arduino Due|Обновление прошивки ATmega16u2 на Arduino Due]] - Чип | * [[Arduino:Хакинг/Обновление прошивки ATmega16u2 на Arduino Due|Обновление прошивки ATmega16u2 на Arduino Due]] - Чип [[ATmega16u2]] на [[Arduino:Продукты/Продукты Arduino/Плата Arduino Due|Arduino Due]] подключен к порту для программирования и действует как конвертер, преобразующий USB-данные в последовательные данные. Когда для этого чипа выходит новая прошивка, ее следует обновить. | ||
* [https://github.com/arduino/Arduino/ Исходный код] - | * [https://github.com/arduino/Arduino/ Исходный код] - GitHub-репозиторий с исходным кодом [[Arduino]] (внешняя ссылка). | ||
* [https://github.com/arduino/Arduino/issues Баги] - Текущий список планируемых улучшений и багов в | * [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:Хакинг/Распиновка|Распиновка]] - Рисунок, показывающий соотношение между контактами на плате | * [[Arduino:Хакинг/Распиновка|Распиновка]] - Рисунок, показывающий соотношение между контактами на плате [[Arduino]] и портами на [[микроконтроллер]]е [[Arduino:Хакинг/Распиновка между ATmega8 и Arduino|ATmega8]] или [[Arduino:Хакинг/Распиновка между ATmega168 и Arduino|ATmega168]] | ||
* [[Arduino:Хакинг/Добавление последовательных интерфейсов (SERCOM’ов) на SAMD-плату Arduino|Добавление последовательных интерфейсов (SERCOM’ов) на SAMD-плату Arduino]] - Руководство по созданию на платах с микроконтроллерами | * [[Arduino:Хакинг/Добавление последовательных интерфейсов (SERCOM’ов) на SAMD-плату Arduino|Добавление последовательных интерфейсов (SERCOM’ов) на SAMD-плату Arduino]] - Руководство по созданию на платах с микроконтроллерами [[SAMD]] дополнительных аппаратных последовательных портов, работающими по протоколам [[I2C]], [[SPI]] и [[UART]]. | ||
* [[Arduino:Хакинг/Добавление автоматического сброса на Arduino NG|Добавление автоматического сброса на Arduino NG]] - Как модифицировать | * [[Arduino:Хакинг/Добавление автоматического сброса на Arduino NG|Добавление автоматического сброса на Arduino NG]] - Как модифицировать [[Arduino NG]], чтобы загружать скетчи без необходимости вручную нажимать на кнопку сброса на плате. | ||
* [[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:Хакинг/«Шилд» своими руками (вариант 2)|«Шилд» своими руками (вариант 2)]] - Эта статья рассказывает о том, как спроектировать и вытравить собственный шилд для платы | * [[Arduino:Хакинг/«Шилд» своими руками (вариант 2)|«Шилд» своими руками (вариант 2)]] - Эта статья рассказывает о том, как спроектировать и вытравить собственный шилд для [[платы Arduino]]. | ||
== Другие ресурсы == | == Другие ресурсы == | ||
Строка 46: | Строка 44: | ||
=См.также= | =См.также= | ||
{{ads}} | |||
=Внешние ссылки= | =Внешние ссылки= | ||
<references /> | <references /> | ||
[[Категория:Хакинг]] | [[Категория:Хакинг]] | ||
[[Категория:Хакинг Arduino]] | [[Категория:Хакинг Arduino]] |
Версия от 18:42, 15 декабря 2021
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Хакинг: как устроена Arduino и как расширить ее возможности [1]
Arduino разработана таким образом, чтобы пользователь мог без особого труда расширить ее возможности, используя для этого стандартные, но мощные компоненты. В этом разделе описывается, как работает Arduino и как, используя эти знания, адаптировать ее функциональность под свои нужды.
ПО
- Написание примера - Написание скетчей-примеров для Arduino, которые будут понятны и начинающим, и продвинутым пользователям.
- Написание библиотеки - Создание библиотеки, расширяющей функциональность Arduino. Пошаговое описание процесса создания библиотеки из скетча.
- Настройки Arduino - Файл настроек IDE Arduino дает множество опций для изменения того, как IDE Arduino компилирует и загружает скетчи.
- Процесс сборки скетча - Здесь рассказывается о шагах, которые ваш скетч проходит перед загрузкой на плату Arduino.
- Загрузчик - Загрузчик – это небольшой код, позволяющий загружать скетчи на плату Arduino. Он предварительно записывается на микроконтроллеры, которыми оснащаются Arduino. Дополнительные инструкции по записи загрузчика на Arduino Mini читайте тут
- Программатор - Здесь объясняется, как использовать IDE Arduino вместе с аппаратным программатором (это устраняет необходимость в использовании программного загрузчика и экономит программную память на чипе).
- Обновление прошивки ATmega8U2 и ATmega16U2 - Обновление прошивки на чипе ATmega8u2/Atmega16u2, которым оснащается Uno и Mega 2560. Этот чип служит конвертером, преобразующим USB-данные в последовательные данные, и его прошивка может быть обновлена через USB.
- Обновление прошивки Arduino WiFi Shield - Чип ATmega32UC3A1256 обеспечивает стек TCP/IP и коммуницирует с WiFi-модулем HDG104. Обновление прошивки может улучшить или изменить поведение этого чипа.
- Обновление прошивки ATmega16u2 на Arduino Due - Чип ATmega16u2 на Arduino Due подключен к порту для программирования и действует как конвертер, преобразующий USB-данные в последовательные данные. Когда для этого чипа выходит новая прошивка, ее следует обновить.
- Исходный код - GitHub-репозиторий с исходным кодом Arduino (внешняя ссылка).
- Баги - Текущий список планируемых улучшений и багов в ПО для Arduino
- Почему в работе с Arduino необязательно всегда использовать функцию delay()
«Железо»
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 и портами на микроконтроллере ATmega8 или ATmega168
- Добавление последовательных интерфейсов (SERCOM’ов) на SAMD-плату Arduino - Руководство по созданию на платах с микроконтроллерами SAMD дополнительных аппаратных последовательных портов, работающими по протоколам I2C, SPI и UART.
- Добавление автоматического сброса на Arduino NG - Как модифицировать Arduino NG, чтобы загружать скетчи без необходимости вручную нажимать на кнопку сброса на плате.
- Программатор с параллельным портом - Здесь рассказывается, как сделать простое и дешевое устройство, позволяющее записать загрузчик на плату Arduino или загружать на плату скетчи без использования загрузчика (работает только для компьютеров с параллельным портом).
- Схема Arduino на макетной плате - Здесь рассказывается, как воссоздать схему платы Arduino на макетной плате.
- Как переключиться с 5-вольтовой логики на 3,3-вольтовую
Еще руководства для расширения Arduino
- «Шилд» своими руками - Здесь рассказывается, как собрать собственный шилд из макетной платы, чтобы затем его можно было подключить к плате Arduino.
- «Шилд» своими руками (вариант 2) - Эта статья рассказывает о том, как спроектировать и вытравить собственный шилд для платы Arduino.
Другие ресурсы
- Калькулятор AVR-фьюзов - Используется, когда нужно найти правильные настройки фьюз-битов для плат, созданных по собственным проектам.
- Сборка Minty Boost - Этот материал не о микроконтроллерах, но он хорошо объясняет, как собрать проект – от идеи до готового продукта.