Arduino:Хакинг/Обновление прошивки Arduino WiFi Shield: различия между версиями
Myagkij (обсуждение | вклад) Нет описания правки |
Нет описания правки |
||
(не показаны 2 промежуточные версии 2 участников) | |||
Строка 3: | Строка 3: | ||
{{Myagkij-редактор}} | {{Myagkij-редактор}} | ||
=Обновление прошивки Arduino WiFi Shield<ref>[https://www.arduino.cc/en/Hacking/WiFiShieldFirmwareUpgrading www.arduino.cc - Upgrading the WiFi shield firmware]</ref>= | =Обновление прошивки Arduino WiFi Shield<ref>[https://www.arduino.cc/en/Hacking/WiFiShieldFirmwareUpgrading www.arduino.cc - Upgrading the WiFi shield firmware]</ref>= | ||
Строка 33: | Строка 33: | ||
Устанавливаем '''MacPorts''' согласно [https://www.macports.org/install.php#pkg этим инструкциям]. Установив, открываем терминал и пишем там: | Устанавливаем '''MacPorts''' согласно [https://www.macports.org/install.php#pkg этим инструкциям]. Установив, открываем терминал и пишем там: | ||
<syntaxhighlight lang="bash | <syntaxhighlight lang="bash"> | ||
sudo port install dfu-programmer | sudo port install dfu-programmer | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 39: | Строка 39: | ||
Чтобы обновить '''MacPorts''': | Чтобы обновить '''MacPorts''': | ||
<syntaxhighlight lang="bash | <syntaxhighlight lang="bash"> | ||
sudo port selfupdate | sudo port selfupdate | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 45: | Строка 45: | ||
Чтобы обновить '''dfu'''-programmer и другие порты до последней версии: | Чтобы обновить '''dfu'''-programmer и другие порты до последней версии: | ||
<syntaxhighlight lang="bash | <syntaxhighlight lang="bash"> | ||
sudo port upgrade outdated | sudo port upgrade outdated | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 57: | Строка 57: | ||
В командной строке пишем | В командной строке пишем | ||
<syntaxhighlight lang="bash | <syntaxhighlight lang="bash"> | ||
sudo apt-get install dfu-programme | sudo apt-get install dfu-programme | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 63: | Строка 63: | ||
или | или | ||
<syntaxhighlight lang="bash | <syntaxhighlight lang="bash"> | ||
sudo aptitude install dfu-programmer | sudo aptitude install dfu-programmer | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 79: | Строка 79: | ||
На '''Windows''' нужно установить [https://www.arduino.cc/en/uploads/Hacking/AVR32_USB_Driver.zip драйвер AVR 32]. Также нужно воспользоваться программой '''FLIP''' от '''Atmel''' – она позволяет программировать чип при помощи режима '''DFU''' (расшифровывается как '''«device firmware update»''', т.е. '''«обновление прошивки на устройстве»'''). Вместе с '''FLIP''' идет утилита '''batchisp''' – именно ее вы и будете использовать для апгрейда. Установив '''FLIP''', открываем командную строку и переходим к папке | На '''Windows''' нужно установить [https://www.arduino.cc/en/uploads/Hacking/AVR32_USB_Driver.zip драйвер AVR 32]. Также нужно воспользоваться программой '''FLIP''' от '''Atmel''' – она позволяет программировать чип при помощи режима '''DFU''' (расшифровывается как '''«device firmware update»''', т.е. '''«обновление прошивки на устройстве»'''). Вместе с '''FLIP''' идет утилита '''batchisp''' – именно ее вы и будете использовать для апгрейда. Установив '''FLIP''', открываем командную строку и переходим к папке | ||
<syntaxhighlight lang="dos | <syntaxhighlight lang="dos"> | ||
cd C:\Program Files (x86)\Atmel\Flip 3.4.5\bin | cd C:\Program Files (x86)\Atmel\Flip 3.4.5\bin | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 89: | Строка 89: | ||
Чтобы перевести '''«шилд»''' в режим '''DFU''', соединяем перемычку '''J3'''. Затем подключаем '''«шилд»''' к компьютеру через сокет '''mini USB'''. В командной строке пишем... | Чтобы перевести '''«шилд»''' в режим '''DFU''', соединяем перемычку '''J3'''. Затем подключаем '''«шилд»''' к компьютеру через сокет '''mini USB'''. В командной строке пишем... | ||
<syntaxhighlight lang="dos | <syntaxhighlight lang="dos"> | ||
batchisp.exe -device AT32UC3A1512 -hardware usb -operation erase f memory flash blankcheck loadbuffer /Arduino/hardware/avr/arduino/firmwares/wifishield/binary/wifi_dnld.elf program verify start reset 0 | batchisp.exe -device AT32UC3A1512 -hardware usb -operation erase f memory flash blankcheck loadbuffer /Arduino/hardware/avr/arduino/firmwares/wifishield/binary/wifi_dnld.elf program verify start reset 0 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 95: | Строка 95: | ||
...или... | ...или... | ||
<syntaxhighlight lang="dos | <syntaxhighlight lang="dos"> | ||
batchisp.exe -device AT32UC3A1256 -hardware usb -operation erase f memory flash blankcheck loadbuffer /Arduino/hardware/avr/arduino/firmwares/wifishield/binary/wifi_dnld.elf program verify start reset 0 | batchisp.exe -device AT32UC3A1256 -hardware usb -operation erase f memory flash blankcheck loadbuffer /Arduino/hardware/avr/arduino/firmwares/wifishield/binary/wifi_dnld.elf program verify start reset 0 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 103: | Строка 103: | ||
Чтобы загрузить прошивку модуля '''HDG204/HDG104''' на '''DataFlash''', пишем... | Чтобы загрузить прошивку модуля '''HDG204/HDG104''' на '''DataFlash''', пишем... | ||
<syntaxhighlight lang="dos | <syntaxhighlight lang="dos"> | ||
batchisp.exe -device AT32UC3A1512 -hardware usb -operation erase f memory flash blankcheck loadbuffer /Arduino/hardware/avr/arduino/firmwares/wifishield/binary/wifiHD.elf program verify start reset 0 | batchisp.exe -device AT32UC3A1512 -hardware usb -operation erase f memory flash blankcheck loadbuffer /Arduino/hardware/avr/arduino/firmwares/wifishield/binary/wifiHD.elf program verify start reset 0 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 109: | Строка 109: | ||
...или... | ...или... | ||
<syntaxhighlight lang="dos | <syntaxhighlight lang="dos"> | ||
batchisp.exe -device AT32UC3A1256 -hardware usb -operation erase f memory flash blankcheck loadbuffer /Arduino/hardware/avr/arduino/firmwares/wifishield/binary/wifiHD.elf program verify start reset 0 | batchisp.exe -device AT32UC3A1256 -hardware usb -operation erase f memory flash blankcheck loadbuffer /Arduino/hardware/avr/arduino/firmwares/wifishield/binary/wifiHD.elf program verify start reset 0 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 123: | Строка 123: | ||
Нужный скрипт находится в '''IDE Arduino''' по следующему пути: | Нужный скрипт находится в '''IDE Arduino''' по следующему пути: | ||
<syntaxhighlight lang="bash | <syntaxhighlight lang="bash"> | ||
~/arduino1.x.x/hardware/avr/arduino/firmwares/wifishield/scripts | ~/arduino1.x.x/hardware/avr/arduino/firmwares/wifishield/scripts | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 139: | Строка 139: | ||
При помощи параметра '''-a''' вы показываете скрипту путь к месту, куда установлена '''IDE Arduino'''. Например: | При помощи параметра '''-a''' вы показываете скрипту путь к месту, куда установлена '''IDE Arduino'''. Например: | ||
<syntaxhighlight lang="bash | <syntaxhighlight lang="bash"> | ||
/home/user/Coding | /home/user/Coding | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 156: | Строка 156: | ||
<references /> | <references /> | ||
{{Навигационная таблица/Портал/Arduino}} | |||
[[Категория:Хакинг]] | [[Категория:Хакинг]] | ||
[[Категория:Хакинг Arduino]] | [[Категория:Хакинг Arduino]] |
Текущая версия от 11:29, 8 июля 2023
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Обновление прошивки Arduino WiFi Shield[1]
«Шилд» Arduino WiFi Shield оснащен модулем HDG204 (или HDG104), который наделяет его функцией беспроводной связи через стандарт IEEE 802.11 b/g. Стек TCP/IP и API для библиотеки WiFi управляются при помощи чипа ATmega32UC3A1512 (или ATmega32UC3A1256), который также называют ATmega32UC3. Плата Arduino подключается к «шилду» при помощи интерфейса SPI и библиотеки WiFi.
Чип ATmega32UC3 и модуль HDG204/HDG104 работают при помощи прошивки, которую можно обновить через коннектор mini USB.
Это руководство как раз рассказывает о том, как сделать это обновление.
- Новая бинарная прошивка для HDG204/HDG104 выпускается производителем.
- Новую версию прошивки для ATmega32UC3 можно скачать на GitHub-репозитории Arduino. Кроме того, если вы эксперт по C, то можете видоизменить официальный исходный код и сделать собственную версию прошивки!
При обновлении прошивки WiFi Shield не должен быть подключен к плате Arduino.
Обновление прошивки на этих устройствах выполняется в два этапа:
- Прошивка для модуля HDG204/HDG104 называется «wifi_dnld.elf». У него нет статической памяти, поэтому прошивку сначала нужно будет загрузить на контроллер ATmega32UC3, после чего ATmega32UC3 передаст эту прошивку на выделенную flash-память модуля HDG204.
- Когда прошивка для HDG204/HDG104 будет загружена, можно будет загружать прошивку на ATmega32UC3. Она называется «wifiHD.elf».
Загрузка DFU-программатора
Для обновления кода на ATmega32UC3 понадобится дополнительное ПО.
Windows
Загружаем программу FLIP от Atmel отсюда.
Mac
Устанавливаем MacPorts согласно этим инструкциям. Установив, открываем терминал и пишем там:
sudo port install dfu-programmer
Чтобы обновить MacPorts:
sudo port selfupdate
Чтобы обновить dfu-programmer и другие порты до последней версии:
sudo port upgrade outdated
Убедитесь, что используете dfu-programmer версии 0.5.4 или новее.
Примечание: Если вы раньше никогда не пользовались sudo, система запросит у вас пароль. Используйте тот же пароль, которым логинитесь в Mac. Команда sudo позволяет запускать команды от лица администратора.
Linux
В командной строке пишем
sudo apt-get install dfu-programme
или
sudo aptitude install dfu-programmer
(в зависимости от дистрибутива).
Загружаем обновленную прошивку для ATmega32UC3A1256
Последнюю версию можно загрузить здесь. Выберите пункт «wifishield».
Прошивку также можно найти в IDE Arduino, в папке «/hardware/avr/arduino/firmwares/wifishield». На OSX, чтобы увидеть эту папку, кликните правой кнопкой (либо зажмите клавишу Command и кликните левой кнопкой мыши) по иконке IDE Arduino и выберите пункт «Показать содержимое пакета».
Процедура на Windows
На Windows нужно установить драйвер AVR 32. Также нужно воспользоваться программой FLIP от Atmel – она позволяет программировать чип при помощи режима DFU (расшифровывается как «device firmware update», т.е. «обновление прошивки на устройстве»). Вместе с FLIP идет утилита batchisp – именно ее вы и будете использовать для апгрейда. Установив FLIP, открываем командную строку и переходим к папке
cd C:\Program Files (x86)\Atmel\Flip 3.4.5\bin
, хотя ее месторасположение зависит от места, куда вы устанавливаете ПО от Atmel. Теперь можно приступать к загрузке прошивки на «шилд».
Примечание: Программе FLIP нужна 32-битная JRE. 64-битная JRE работать не будет.
Чтобы перевести «шилд» в режим DFU, соединяем перемычку J3. Затем подключаем «шилд» к компьютеру через сокет mini USB. В командной строке пишем...
batchisp.exe -device AT32UC3A1512 -hardware usb -operation erase f memory flash blankcheck loadbuffer /Arduino/hardware/avr/arduino/firmwares/wifishield/binary/wifi_dnld.elf program verify start reset 0
...или...
batchisp.exe -device AT32UC3A1256 -hardware usb -operation erase f memory flash blankcheck loadbuffer /Arduino/hardware/avr/arduino/firmwares/wifishield/binary/wifi_dnld.elf program verify start reset 0
Какой именно вариант использовать – зависит от чипа.
Чтобы загрузить прошивку модуля HDG204/HDG104 на DataFlash, пишем...
batchisp.exe -device AT32UC3A1512 -hardware usb -operation erase f memory flash blankcheck loadbuffer /Arduino/hardware/avr/arduino/firmwares/wifishield/binary/wifiHD.elf program verify start reset 0
...или...
batchisp.exe -device AT32UC3A1256 -hardware usb -operation erase f memory flash blankcheck loadbuffer /Arduino/hardware/avr/arduino/firmwares/wifishield/binary/wifiHD.elf program verify start reset 0
Какой именно вариант использовать – зависит от чипа.
Сделав апгрейд, снимаем перемычку J3 и перезапускаем «шилд». Теперь он готов к использованию. О том, как проверить, успешно ли прошел апгрейд, смотрите в разделе «Дополнительно», который находится в самом низу статьи.
Процедура на Linux и Mac
На этих платформах нужно использовать скрипт, служащий автоматизации процесса. Скрипт – это утилита командной строки, т.е. чтобы использовать его, вам нужно открыть на своей системе терминал.
Нужный скрипт находится в IDE Arduino по следующему пути:
~/arduino1.x.x/hardware/avr/arduino/firmwares/wifishield/scripts
Скрипту для обновления прошивки на WiFi Shield также требуется dfu-programmer. Установите его, прежде, чем начнете работать со скриптом, и убедитесь, что его версия – это 0.5.4 или выше.
Подключите перемычку к коннектору J3 – это переключит «шилд» в режим программирования. Затем подключите USB-кабель к сокету mini USB на «шилде».
Откройте терминал, перейдите к папке, куда сохранен скрипт, и впишите строку, указанную ниже. Не забудьте в конце флаг -h – он покажет справку.
- Mac:
./ArduinoWifiShield_upgrade.sh –h
- Linux:
sudo ./ArduinoWifiShield_upgrade.sh –h
На Linux этот скрипт нужно запускать от root-пользователя – чтобы получить правильный доступ к периферийным USB DFU устройствам.
При помощи параметра -a вы показываете скрипту путь к месту, куда установлена IDE Arduino. Например:
/home/user/Coding
При помощи параметра -f вы можете выбрать, какую именно прошивку устанавливать:
- shield обновляет только прошивку «шилда»
- all обновляет обе прошивки
Дополнительно
Чтобы проверить, обновилась ли прошивка на «шилде», нужно подключить к сокету адаптер FTDI, конвертирующий USB-данные в последовательные данные, открыть терминал и посмотреть, содержит ли стартовое сообщение обновленную дату. Об отладке через последовательную коммуникацию читайте на соответствующей странице.
См.также
Внешние ссылки
Arduino продукты | |
---|---|
Начальный уровень | Arduino Uno • Arduino Leonardo • Arduino 101 • Arduino Robot • Arduino Esplora • Arduino Micro • Arduino Nano • Arduino Mini • Arduino Starter Kit • Arduino Basic Kit • MKR2UNO • TFT-дисплей Arduino |
Продвинутые функции | Arduino Mega 2560 • Arduino Zero • Arduino Due • Arduino Mega ADK • Arduino Pro • Arduino Motor Shield • Arduino USB Host Shield • Arduino Proto Shield • MKR Proto Shield • MKR Proto Large Shield • Arduino ISP • Arduino USB 2 Serial Micro • Arduino Mini USB Serial Adapter |
Интернет вещей | Arduino Yun • Arduino Ethernet • Arduino MKR1000 • Arduino WiFi 101 Shield • Arduino GSM Shield V2 • Arduino WiFi Shield • Arduino Wireless SD Shield • Arduino Wireless Proto Shield • Arduino Ethernet Shield V2 • Arduino Yun Shield • Arduino MKR1000 Bundle |
Носимые устройства | Arduino Gemma • Lilypad Arduino Simple • Lilypad Arduino Main Board • Lilypad Arduino USB • LilyPad Arduino SimpleSnap |
3D-печать | Arduino Materia 101 |
Устаревшие устройства | - |
Примеры Arduino | |
---|---|
Стандартные функции | |
Основы |
|
Цифровой сигнал |
|
Аналоговый сигнал |
|
Связь |
|
Управляющие структуры |
|
Датчики |
|
Дисплей |
Примеры, объясняющие основы управления дисплеем:
|
Строки |
|
USB (для Leonardo, Micro и Due плат) |
В этой секции имеют место примеры, которые демонстрируют использование библиотек, уникальных для плат Leonardo, Micro и Due.
|
Клавиатура |
|
Мышь |
|
Разное |