Сообщество - Arduino & Pi

Arduino & Pi

1 493 поста 20 825 подписчиков

Популярные теги в сообществе:

65

ESP8266 на девборде NodeMCU v3 и прошивка интерпретатора JS Espruino.

Доброго всем времени суток. Вчера мне пришел девборд NodeMCU v3 с 4мб флеш памяти от китайского продавана (ссылка будет в конце поста). Предустановленный на данный девборд интерпретатор LUA меня совсем не устраивал и я решил поставить интерпретатор JS Espruino.

Сначала пройдемся немного по характеристикам самого NodeMcu v3.

поддержка WiFi протоколов 802.11 b/g/n

Wi-Fi Direct (P2P), soft-AP

встроенный стек TCP/IP

встроенный TR переключатель, balun, LNA, усилитель мощности и соответствие сети

встроенный PLL, регуляторы, и система управления питанием

выходная мощность +20.5 дБм в режиме 802.11b

поддержка диверсити антенн

SDIO 2.0, SPI, UART

STBC, 1×1 MIMO, 2×1 MIMO

A-MPDU & A-MSDU aggregation & 0.4μs guard interval

4 мегабайта Flash памяти

пробуждение и отправка пакетов за время до 22 мс

Номинальное напряжение: 3,3 В

Входное напряжение: 3,7–20 В

Максимальный потребляемый ток: 220 мА


Модуль имеет 11 портов ввода-вывода общего назначения.

Некоторые из портов имеют дополнительные функции:

D9, D10 — UART

D1, D2 — I²C/TWI

D5–D8 — SPI

D1–D10 — выходы с ШИМ (PWM)

A0 — аналоговый вход с АЦП


Размеры платы 58х32мм.


А теперь перейдем к черной магии, т.е. к прошивке Espruino.

Для начала нам понадобится установить несколько полезных программ на наш компьютер.

Git - https://git-scm.com/download/win/

Python 2.7 - https://www.python.org/downloads/windows/

При установке Python не забудьте поставить галочку "Add python.exe to PATH"

Поискать свежую прошивку под нашу ESP8266 в ветке форума от юзера с ником tve - http://forum.espruino.com/conversations/279176/ (на данный момент самая свежая это 1v86 прошивка).

Советую положить распакованную папку с прошивкой на рабочий стол и переименовать ее например в espruino.


Подготовительная работа закончена. Начинаем работать с терминалом (при условии что Git и Питон вы уже установили). Все команды для терминала под Windows.


> cd desktop

> git clone https://github.com/pyserial/pyserial

> cd pyserial

> python setup.py install


Этими командами мы перейдем на рабочий стол и клонируем репозиторий pyserial на него. Потом переходим в папку pyserial и запускаем сетап.


> cd ../

> git clone https://github.com/themadinventor/esptool

> cd esptool

> python setup.py install


Качаем esptool на рабочий стол, заходим и запускаем сетап.


Далее заходим в Диспетчер устройств и находим на каком COM порте у нас висит устройство. В моем случае это COM5.

Порт мы узнали значит пришло время прошить девборд.


Заходим в папку с прошивкой из терминала


> cd espruino


И прежде чем шить очистим флеш память устройства от старой прошивки. И затем уже прошить!


> python "../esptool/esptool.py" --port COM5 erase_flash

> python "../esptool/esptool.py" --port COM5 --baud 115200 write_flash --flash_freq 80m --flash_mode qio --flash_size 32m 0x0000 boot_v1.5.bin 0x1000 espruino_esp8266_user1.bin 0x3FC000 esp_init_data_default.bin 0x3FE000 blank.bin


Не забудьте указать свой ком порт для устройства и версию бутлоадера из папки с прошивкой (в данном случае boot_v1.5.bin)!!!


После последней команды консоль будет некоторое время работать (если все правильно конечно) и отвечать примерно следующее:


Connecting...

Erasing flash...

Wrote 3072 bytes at 0x00000000 in 0.3 seconds (79.8 kbit/s)...

Erasing flash...

Wrote 438272 bytes at 0x00001000 in 43.4 seconds (80.7 kbit/s)...

Erasing flash...

Wrote 1024 bytes at 0x003fc000 in 0.1 seconds (83.6 kbit/s)...

Erasing flash...

Wrote 4096 bytes at 0x003fe000 in 0.4 seconds (83.4 kbit/s)...

Leaving...


Если все так то у вас прошит интерпретатор JS! Поздравляю! Можно запилить первый скетч.


Для этого нам понадобится Espruino Web IDE для Хрома - https://chrome.google.com/webstore/detail/espruino-web-ide/b...


Открываем IDE и коннектимся к нашему девборду.

Пишем простенький блинк в правой части IDE.


var on = false;

setInterval(function() {

digitalWrite(D2,on = !on);

}, 500);


И прошиваем все это дело в энергозависимую память.

Если все сделано правильно то светодиод синего цвета на плате будет включаться/выключаться с периодичностью раз в 500мс.

Более подробно ознакомится с интерпретатором можно тут - http://www.espruino.com/Reference


C самим языком и правилами хорошего тона можно познакомиться на старом добром ресурсе - http://javascript.ru/


А купить NodeMCU v3 всего за 2.8$ можно по этой ссылке - http://ru.aliexpress.com/item/V3-Wireless-module-NodeMcu-4M-...


Всем удачных компиляций и быстрых доставок с али!


З.Ы. Будет комплект постов про этот девайс и сборку одного подарка на его основе.


Подписывайтесь на "Сообщество Arduino" на Пикабу. Вас ждет масса интересной, полезной и познавательной информации. http://pikabu.ru/community/arduino

Показать полностью 7

Сжимаем проекты или как запрограммировать AtTiny85/45/25 с UNO

В этой статье я постараюсь подробно осветить все моменты, касающиеся прошивки Attiny85 в среде ArduinoIDE, и рассказать и некоторых граблях и трюках, через которые я прошел.



Основная цель затеи - "сжать" проекты, особенно там, где атмега328 является мощным оверкиллом - например не так много кода, или используется не более пяти выводов. Ну и сэкономить место и продлить работу от батареи (но о последним в следующих статьях).


Отличия attiny25 от 45 и 85 - объем памяти: 2, 4, 8 кб соответственно. Так же есть 13, 1 кб.

Из функций - пара независимых таймеров для ШИМ, 5(6) портов ввода вывода (6 потому что RESET тоже можно настроить, как порт ввода вывода, но для сброса понадобится специальное устройство), и самое приятное - внутренний кварц на 128 кГц, 1, 8 или 16 МГц, то есть внешний резонатор не нужен, а частоту работы можно изменить прямо в студии ардуино. Так же есть BOD-детектор (вырубает чип, если напряжение питания ниже определенного).


Порезал картинку, чтобы не получить по голове от неразглядевших. Оригинал

Итак, вы урвали у жадных китайцев себе пяток тинек85, надо их проверить, а то вдруг наебали. Не стушевавшись, втыкаем в бредборд и ищем первую ногу - она помечена точкой. Это сброс или ресет, соединяем ее с 10 портом UNO, ищем четвертую ногу, цепляем к земле, 5, 6, 7 цепляем последовательно к 11, 12, 13 портам. 8 к +5В. Поздравляю, сетап готов. Можно ещё воткнуть конденсатор между RESET и GND у уны, но (меня сейчас закидают) у меня все работает и так. Предполагаю, что кондей - защита от наводок.


Теперь пора навести порядок в студии - зайти в менеджер плат и набрать "attiny", после чего скачать среднюю позицию (больше вариантов и настроек, плюс впитала в себя другие варианты):

Установили, теперь надо залить в уно скетч из примеров под названием ArduinoISP, после чего уже можно начинать настраивать нашу тиньку к работе:

С завода все тиньки идут прошитыми на 8 МГц, для того чтобы поменять эту частоту на 16, или изменить что-либо из списка - надо перезаписать загрузчик, обычно занимает секунд 10. После перезаписи можно залить обычный Blink для проверки работоспособности и верности выбранной частоты, только надо поменять номер 13 пина на 3 или 4, поскольку остальные заняты.


Но при перепрошивке очередной тиньки каждый раз городить на бредборде кашу из проводов? Не, я думаю, что есть вариант получше: можно сделать шилд для программирования тинек:

Пайка говно, сам знаю - все никак не могу собраться купить нормальный паяльник с тонким жалом, а не работать ректальным советским криптоанализатором. Светодиод на 3 пине нужен для быстрой проверки точности настроек и рабочести самого микроконтроллера. Так же при пайке шилда (да и вообще любых сокетов) рекомендую использовать с такими зажимами:

Поскольку круглые (на фото ниже) могут плохо держать или терять контакт, хотя за своими такого не замечал пока.

Остальные содинения точно такие же, как в начале статьи, единственное - светодиод + 220 Ом резистор на 3 пине.

Показать полностью 7
17

UDP в MIT App Inventor 2 на примере программы управления роботом

В некоторых ситуациях приложениях чувствительных ко времени, на пример управление роботом (особенно быстрым), предпочтительно пренебречь надежностью доставки пакета по сети, чем его задержка.

Для таких целей существует протокол UDP, но для людей мало знакомых с android studio и прочими средами разработки android приложений, использующих визуальное программирование на пример в MIT App Inventor 2 от google, нет возможности использовать преимущество протокола UDP из визуального редактора. Но выход есть и для них - использовать возможность вызова служб и приложений в android.

На пример установив приложение UDP Sender из Play market, в android появится служба отправки UDP пакетов, которую можно вызвать из другого приложения, даже "написанного" в визуальном редакторе.

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

Для UDP Sender приведу пример отправки UDP пакета с содержимым "send" на IP адрес 192.168.1.200 и порт 8888 из визуального редактора MIT App Inventor2.

Тут при нажатии "Кнопка2" пакет уйдет.

Более подробно, в том числе о скетче для arduino IDE для приема пакетов и исполнении команд смотрим в видео https://www.youtube.com/watch?v=QoNQS12oFFY

P.S. привожу ссылку на видео, по скольку прикрепить видос к посту не хватает кармы))

Показать полностью 3
5

Сноуборд в виртуальной реальности с Arduino и Google Cardboard

Хотите попасть на горнолыжные склоны, не испытывая холода? Создайте свою виртуальную реальность! :-)

http://edurobots.ru/project/snoubord-virtualnoj-realnosti-ar...

Показать полностью 2
57

Wi-Fi машинка на NodeMCU, своими руками

В этом видео собрана ДУ машинка, которая основана на плате nodeMCU управляется с android устройства по Wi-Fi.


Скетч для Arduino IDE и Android приложение: https://yadi.sk/d/MOTB9OBVtGmYQ


ESP8266 прошивка, программирование в Arduino IDE:

http://pikabu.ru/story/esp8266_proshivka_programmirovanie_v_...


Видео взято из канала "ARDUINO это просто":

https://www.youtube.com/channel/UC5Mq-PGM7Ww4Nt0EyUFJo3g

Wi-Fi машинка на NodeMCU, своими руками
Показать полностью 1
152

Мужик подключил телевизор к мозгу, используя чип из игры Звездные Войны

Созданные шлем позволяет переключать каналы на ТВ и выключать его питание, просто путем сосредоточения мыслей.Пульт от телевизора больше не нужен. Все что нужно сделать - это подумать о смене канала.  Нейроинтерфейс своими руками.

В проекте использован чип из игры Star Wars Force Trainer (Звездные войны), выпущенной в 2009 году. Если вы когда-нибудь мечтали переключать каналы телевизора, просто думая, об этом, то этот arduino-проект - ваша удача. Не только системы "умный дом", но и магия становятся реальностью. Более того, некоторые проекты мейкеров доказывают, что фантастические трюки можно сделать самому, затратив при этом не много средств.

Дэниел Дэвис в домашних условиях разработал контролируемый сознанием пульт от телевизора, используя старую игру Star Wars Force Trainer (Звездные войны) и Arduino.


Игра была выпущена еще в 2009 году. Она включает в себя гарнитуру, способную обнаруживать электрические поля разума (по аналогии с ЭЭГ). Сигналы ретранслируются и вентилятор поднимает мяч, находящийся в трубе, в воздух. Иллюзия левитации. Сила работы вентилятора зависит от мыслей пользователя.


Мейкер разобрал игру и обнаружили чип NeuroSky ЭЭГ, встроенный в гарнитуру, который он решил подключить к Arduino Uno (ATmega328), чтобы собирать и преобразовывать исходные данные ЭЭГ на компьютере. В проекте также были использованы ИК-приемник и ИК-передатчик от старого видеомагнитофона.


Чтобы посмотреть какие сигналы передает пульт дистанционного управления на ИК-приемник при нажатии кнопок достаточно воспользоваться Serial-монитором, предварительно загрузив в arduino простую программу. Код кнопки нужно записать для последующего использования.


Совсем немного строк кода https://github.com/kitschpatrol/brain/releases


Источник: http://edurobots.ru/project/upravlyaj-televizorom-siloj-mysl...

Показать полностью 2 1
Отличная работа, все прочитано!