Прожив на свете не один десяток лет, я вдруг стал увлекаться разными штуками, которые в моем детстве или юности либо отсутствовали вовсе, либо были недоступны. А именно — программированием контроллеров.
Далее много букв и фотографий…
Так распорядились обстоятельства, что в какой-то период, у меня образовалось немного времени на себя и я стал изучать ардуино. Купил самый полный комплект от Апмерки и пошло поехало — UNO NANO PRO… Следующей платформой стала ESP8266 в виде WEMOS D1 MINI — очень удачный вариант для поиграться изучить и даже построить что-то рабочее. Например, я сделал систему контроля температуры, влажности и качества воздуха (СО2) с возможностью получения данных не только локально, но и через Телеграм. В итоге у меня в квартире живет несколько таких систем и я теперь знаю, когда надо идти и проветривать детскую, например. Что, согласитесь — очень полезно! Т.е.
произошла та самая смычка города с деревней, о которой так мечтали большевики — хобби стало служить на благо здоровья моей семьи.
И вот однажды, случилось так, что мне прислали одну платку под обещание ее протестировать и написать об этом некий отчет, свои впечатления, с размещением на различных ресурсах по моему усмотрению. Т.к. речь шла об устройстве основанном на камне от компании RealTek, которому все прочат большое будущее, то я согласился не раздумывая.
Тем более, когда мне еще предложат что либо протестировать задармо?...
Итак, посылка получена, сфотографирована и вскрыта.
Посылка изнутри.
И что мы видим внутри? А видим мы там аскетичный набор начинающего тестировщика состоящий из платки, кабеля и нескольких перемычек (с ними я так и не разобрался еще).
Arduino UNO vs RAK Creator PRO
Сама платка представляет собой классическую девборду форм фактора Ардуино.
Arduino UNO vs RAK Creator PRO (внизу)
Как видите, размеры совпадают до миллиметра, что не может не радовать, ибо позволяет использовать весь зоо парк готовых модулей Ардуино.
Распаковав и рассмотрев красивую и качественно собранную платку, я полез в инет смотреть что за зверь мне достался.
А зверь оказался таким:
Производит это устройство компания RAK (http://www.rakwireless.com/en/) Делает она не только готовые устройства (хотя девборда не совсем готовое), но и модули. Например, в нашем случае, основой контроллера является IoT модуль RAK473, который, в свою очередь, базируется на камне RTL8711AM.
IoT модуль RAK473
Сам модуль может многое, как пишет производитель — RAK473 — это полное соответствие стандарту EEE 802.11b/g/n в сочетании с ARM-CM3. RAK473 имеет внутреннюю интеграцию стека TCP/IP, поддержка множества протоколов, таких как — ARP, IP, ICMP, TCP, UDP, DHCP CLIENT, DHCP SERVER, DNS и т.д… Поддержка AP mode и Station mode. Также поддерживается расширенный набор AT команд для всех типов приложений. Модуль имеет встроенный Web server, поддерживает беспроводную настройку и OTA. Еще поддерживаются функции WPS и EasyConfig (как в роутерах). В части приложений — HTTP, MQTT, MDNS и SSL — так же поддерживаются.
Модуль имеет настраиваемые GPIO (до 20!), которые могут быть сконфигурированы, как SPI, UART, I2C, I2S, PWM, для различных приложений и систем управления. RAK473 имеет на борту 2M SRAM и 512KB DRAM, плюс 2MB flash, что обеспечивает функционирование WIFI.
Из приглянувшегося, еще могу добавить, что есть возможность подключения антенны NFC напрямую к модулю. Вот распиновка платы:
RAK Creator PRO
Полная версия описания модуля здесь:
www.rakwireless.com/en/module/uart_spi/mqtt-wifi-module
С сердцем платки мы разобрались, теперь давайте попробуем запустить все это хозяйство и, конечно же — помигать светодиодом!
(а куда без этого? Я вообще думаю, что пройдут годы и, например, при приеме в первый класс, детей будут тестировать не только на знание алфавита и простого счета, но и на умение помигать светодиодом, причем своим :-))
Первое, что надо сделать, это установить драйвер. Если Вы до этого работали с Arduino или ESP, то установленные драйвера не подойдут, ибо мы имеем дело с совершенно другим классом устройств.
Итак, идем сюда
developer.mbed.org/handbook/Windows-serial-configuration (либо, вот есть прямая ссылка на сам драйвер:
developer.mbed.org/media/downloads/drivers/mbedWinSerial_16466.exe), скачиваем и устанавливаем.
Затем нам понадобится немного поколдовать с Ардуино ИДЕ на предмет добавления новой платформы. (предполагается, что сама Arduino IDE у Вас уже стоит и версия не ниже 1.6.5)
Идем в настройки и в менеджере плат добавляем ссылку:
github.com/Ameba8195/Arduino/raw/master/release/package_realtek.com_ameba_index.json
и секунд через 10-20 (все зависит от скорости интернета) мы сможем найти то, что нам нужно. А нужно нам (вот сюрприз) «Realtek Ameba Boards”.
После того, как мы все нашли, кликаем “Установить” и через какое то время уже видим у себя в списке плат две новых — »Arduino Ameba RTL8195A" и «Arduino Ameba RTL8710» — нам нужна первая!
Вот полное описание установки и настройки устройства:
passport.rakwireless.com/stat/en/Wis%20Creator%20Pro/Software%20Development/CREATOR%20Development%20environment%20.pdf
А теперь, после того, как все настроено, давайте мигнем светодиодом.
Для этого нам понадобится открыть скетч (Blink) из прилагаемых примеров и слегка его модифицировать. Зачем? А вот зачем — Вы, наверное, как и я, несколько ленивые люди и лишние телодвижения Вас напрягают, поэтому мы не пойдем стандартным путем, который описан в мануале к этой платке, а — своим. Мы не станем рыться в ящике своего стола в поисках какого нибудь завалящего светодиода и резистора к нему, мы просто возьмем и используем один из уже установленных на самой плате светодиодов! Таких, доступных нам из среды Ардуино ИДЕ, светодиодов, два. Один висит на D2 и называется Link, второй висит на D6 и называется Status. По правде сказать, есть еще несколько штук, но боюсь, что они нам не доступны, т.к. подключены не к основному действующему лицу — RAK473, а к LPC11U35FHI33/501. Если мы глянем в дата шит, то выяснится, что это — Микроконтроллер 32 бита, ARM Cortex-M0, 50 МГц, 64 КБ, 12 КБ, 33 вывода… Т.е. это полноценный микроконтроллер, который используется, как интерфейс между USB (компьютером) и RAK473.
Я могу предположить, что девборда RAK CREATOR PRO являет собой законченное устройство несущее на борту, как RTL8711AM, который в свою очередь заключен в RAK473, так и программатор всего этого хозяйства в виде LPC11U35FHI33/501. Знающие люди — поправьте меня, если что.
Так вот, давайте уже мигать светодиодом — внесем изменения в код скетча:
#define LED_PIN 2
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_PIN, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_PIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED_PIN, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
Хочу обратить Ваше внимание на одну особенность — при определении пина мы указали только его цифровой номер. В нашем случае — 2:
#define LED_PIN 2
Не D2, как это бы сработало в случае с ESP, например, а просто цифру 2.
Жмем кнопку Проверить, затем — Загрузить.
И… Вуаля — наш светодиод Link мигает раз в секунду!
Теперь у нас открывается широкое поле для творчества, главное, что первоначальный этап подключения платы и ее проверки на работоспособность, мы прошли.
Спасибо всем за внимание!
Товар предоставлен для написания обзора магазином. Обзор опубликован в соответствии с п.18 Правил сайта.
мигать светодиодом на плате с влан? как-то не катит на тест
стоит плата дороже есп12, но есп глючные и на смену им пришел есп32
аэ та плата чем лучше по цене есп32?
тема насчет халявных уроков программирования, которые обычно начинаются с объяснения циклов и условий и заканчиваются хуловорлдом или миганием светодиода
это максимум на что хватает авторов бесплатного
интересно, если автору этого обзора магазин еще бы и заплатил, то стал бы он делать более продвинутый обзор?
и только потом пускают в эфир
я сначала думал, что это делается автоматом, но потом сказали, что для этого есть специальный человек
вместо того, чтобы просто меня тупо забанить — выделили человека!!1
Здесь же, совпали интересы — производителю нужно как-то продвигать свой товар. Мне же было интересно заполучить изделие на рилтековском камне, т.к. много сейчас говорят, что это на голову выше чем есп.
К тому же, производитель вроде пока адекватный, интересуется — сложно ли его устройство в освоении, каков порог вхождения в части навыков у юзера и т.д.
А мигание — да, вы правы — это как бы традиция от которой я не хотел отступать. Тем более, что мигание, обычно, времени много не занимает и показывает, что девайс, в первом приближении, работает. Тут ведь еще было интересно, как он поведет себя в среде ардуино…
если цепь питания на соплях, то просадка по питанию вызовет зависание или перезагрузку, что и бывает, но малозаметна
если прошивка простая, типа помигать светодиодом, то ничего страшного
стоит только дать ей выдавать хтмл и работать со строками или джейсоном, как сразу перестает хватать озу, срыв стека, зависон или перезагрузка
опять же если несколько соединений, то те же симптомы
ну и зависит конечно от глючности библиотек и кривости основного кода
Выдача html вроде без проблем. Использую, например, esphttpd. Выгружаю кучу всего с jquery, css и прочим. Принимаю/отправляю json без перезагрузок.
Предполагаю, что проблема не в самом модуле, а в коде или чём-то другом.
я говорю, что нужно очень хорошо делать питание и не допускать просадки и пульсаций
я как-то подключал один из первых умтс усб модемов к бп от сканера старого, так при передаче там выходные дроссели издавали звук, а через 5 минут работы у меня внутри черепа начинались неприятные ощущения
поэтому те модемы подключались через двойной короткий усб кабель
кстати от работы есп модулей тоже в глазе неприятные ощущения, если модуль в 20см лежит
может быть сейчас вышли мс с исправленными косяками, может сдк исправили и уже глючат не так люто, но первые вообще бывало жрали сами по себе много или приходили уже дохлые
Обычно esp8266 идут экранированными и я слабо представляю как они могут так сильно фонить при правильном подключении.
т.е. ее нельзя рассматривать отдельно от сдк и сторонних библиотек
они не фонят, они излучают на частоте микроволновки
С питанием вроде всё понятно и «глючность чип+софт» к этому не имеет отношения.
Про перезапуск я тоже не очень понял. Если много проектов работает без проблем, то похоже, что проблема только в самом софте и его глючности. Это не вина «esp», а больше разработчика.
Вроде ведь не постоянно и не на польной мощности.
Тот же самый Realtek в статье тоже ведь на 2.4GHz вещает. Там есть такая существенная разница?
сейчас много выпускают всякого железа годного, а вот софт к нему кривой
это касается всех этих копеечных оранжей, бананов и малин, где есть примеры мигания светодиодом, а копни глубже и все глючное или вообще не работает
мощность постоянная, передает короткими импульсами
а он не может работать на другой частоте, 2.4 это безлицензионный диапазон с ограничением мощности
для молекулы днк разницы вообще нет, все эти частоты одинаково хорошо нарушают механизм репликации днк
Верно, это же часть стандарта.
Я просто выбираю контроллеры для своего проекта и было интересно, так как тут явно говорилось, что «esp глючная».
Но получается, что почти всё зависит от разработчика.
Тогда выходит, что «esp» не особо глючнее, чем этот RAK.
Все эти критерии можно отнести к любой разработке на любом железе.
вот есп32 только набирает обороты, на днях была статья на хабре и там были показаны преимущества ее по сравнению с 8266
например все эти режимы энергосбережения они вроде как и есть, но все сырое
да и ошибки в даташитах бывают
Преимущества esp32 на бумаге — это не тоже самое что и в деле.
Ему надо время что бы SDK был более-менее допилен для нормальной работы.
Меня во всём esp8266 устраивает пока.
ему там задали вопрос по стабильности и вот ответ
youtu.be/Mc82MuTZ0h8?t=1709
для дома пойдет
за жизньпо поводу ценообразования, где, в качестве отправной точки, я приводил уровень есп8266. Но, видимо, отдел маркетинга у них смотрит на все по своему…Присутствует NFC на борту!
Да и один только авторитет Realtek говорит сам за себя. В итоге камень гораздо более стабильный.
В коментах пишут что не натыкались на глюки с espressif ( esp8266) видимо просто повторяли что то готовотое, вылизанное. А попробуй свой проектик собрать, квест превращается в хождение по минному полю.
Вобщем, пару лет пока все перейдут на телефоны с nfc и за rtl будет будущее ..)
у есп8266 есть свой открытый фреймворк и вроде библиотеки тоже открыты и ртос есть
пока с этим авторитетом как-то уныло все
я как раз изучаю сейчас есп и боле менее там стабильно и куча примеров на разных языках
вот только ардуиновская иде у меня ошибку выдает, но это скорей всего из-за битой памяти у меня, браузер тоже падает иногда
так что я еще даже не скомпилил нормально пример какой
Работа архитектуры проца, на сколько я понял, тоже держится под грифом.
Ртос там очень относительно работает.
Примеры работают стабильно, пока не добавляешь чего то к этому примеру, или не пытаешься из трех четырех примеров слепить одно более менее вменяемое решение.
Ардуиновская среда для esp достаточно стабильно работает исходя из моего опыта, но все равно минное поле.
Вы еще пример не скомпилили, а уже беретесь о стабильности говорить?)
Позвольте поинтересоваться, что с авторитетом Realtek не так. Их сетевые камушки применяются в массовом производстве персональных компьютеров, гаджетов. Опыт у них поувесистей эспрессифа будет.
Расскажите, что с ними не так?)
С уважением.
отсюда и глюки
+ сейчас полно быдлокодеров, которые в схемотехнике не понимают и лепят питание как попало, а эти мелкасхемы очень любят жрать ток и глючить
а я тут сам недавно кукарекал о глючности есп, но то было году в 2015, когда я купил модуль есп 01 и попробовал его
сейчас мне надо сделать сколько прерывателей питания для камер и еще для моего прибора
ну и стал я интересоваться и с тех пор оно боле менее развивается, сдк там улучшили, другие среды стали поддерживать есп
от нее много и не требуется
проводные, а не влан
кстати я бы хотел дешевый камушек как есп, только с лан
тут ситуация как с буками хп — раньше их буки были норм, но с 2009 стали клепать такое гавно, что любой итшник никогда больше некупить хп да и я думаю даже даром не возьмет
вот у риалтека есть мелкасхема, а что с сообществом? чего не взлетели так резко? где производитель есп и где риалтек? или вот платы от интел были всякие там эдинзоны, галилеи
а недавно прочитал, что интел забила на них, потому что не взлетели
кстати есть такой двб-т усб приемник и там стоит 2 мелкасхемы
вч морда с квадратурным выходом и ацп-усб риалтек с блоками предварительной обработки двб сигнала
ацп был хорош, т.к. позволял работать только как ацп, но риалтек не дала даже даташит на него и пришлось реверсить протокол и выпустить драйвер, который позволил за 10 баксов поиметь боле менее сдр приемник без пайки, в то время как самый дешевый усб стоил 100 баксов и полоса у него была какая-то смешная совсем по сравнению с 2.3мгц у риалтека
> теперь давайте попробуем запустить все это хозяйство и, конечно же — помигать светодиодом
А как всё хорошо начиналось…
IMHO, для всего перечисленного выше лучше платы на Atheros типа SOM9331 и других— там хоть OpenWRT, который можно обновить и вообще функциональнее, а что там…
А на счет OpenWRT я спрошу у производителя. Что-то такое упоминалось, правда не помню уже в каком контексте…
А если «приложение на OpenWRT, на которое автор забил», то значит, оно пропадёт и из других Linux-дистрибутивов, и его можно заменить/исключить, или у него появится другой мейнтейнер.
В любом случае это более безопасно.
Да и странно как-то строить сетевое приложение сложнее отправки данных с датчика через AT-команды… Для подобных применений — вполне, как и ESP. Но остальное из вышеперечисленного — нет, лучше на том, что имеет шансы обновляться. Вокруг и так хватает дырявых устройств…
Просто на ESP прошивка — это сам код плюс SDK. А OpenWRT это почти тоже самое (код плюс OpenWRT).
Что в «коде» знает только автор и от него зависят обновления. OpenWRT тут не спасает.
То есть, фразу «никто обновлять не будет» одинково применяется к коду вне зависимости от того на OpenWRT он или на ESP.
Про AT-команды я не понял, мы вроде как совсем не об этом. Речь вроде как про OpenWRT и ESP устройства сами по себе.
Нет, не то же самое. Там — закрытая проприетарная прошивка, в OpenWRT — open source компоненты, каждый из которых можно обновить отдельно.
> То есть, фразу «никто обновлять не будет» одинково применяется к коду вне зависимости от того на OpenWRT он или на ESP.
Это не так. Компоненты OpenWRT (как и любого Linux-дистрибутива) — программы с открытым исходным кодом, развиваемые отдельными авторами или сообществами авторов. Т. е. вероятность того, что будут исправлены уязвимости в libssl / ядре / <всё что угодно> во втором случае выше.
> Про AT-команды я не понял, мы вроде как совсем не об этом.
Не знаю о чём Вы, но я — о subj. А там обработка всего «внутри» «IoT модуля RAK473, который, в свою очередь, базируется на камне RTL8711AM», и с которым общаются через AT-команды:
«Также поддерживается расширенный набор AT команд для всех типов приложений.»
Я бы не сказал так за всю прошивку.
Некоторые компоненты закрыты, но достаточно малая часть и они постоянно открывают это.
Так же иногда можно использовать свои компоненты взамен.
Кстати, на OpenWRT тоже не всё может быть открыто. Есть и закрытые компоненты особенно если железка идёт от производителя с OpenWRT.
Речь была про свою разработку того же IoT. Библиотеки и SDK можно и в ESP обновить. Только из-за того, что это микроконтроллер, а не SoC на Linux, то обновление прошивки лежит на авторе (то есть, в данном случае на мне). Грубо говоря, я могу взять обновлённый SDK и обновиться если мне это надо.
Я так понимаю, что это только один из вариантов. Так же как и на ESP. Можно AT-команды, а можно и нормальную работу с железом получить. Зависит от целей.
а драйыеры или кривые, или их вообще нет и дернуть выводом без загрузки процессора нельзя
поэтому 95% проектов на этих мощных соках это просто мигание светодиодами по сети, функции реального времени там не работают
А так я тоже в свое время загорелся — у нас по факту 2 контроллера по цене одного :-)
прикидывается шлангомдоступен для программирования очень ограниченно…____
° Uno, Leonardo — что там более древнее?)
— Работает. Не работает. Работает. Не работает.
Например, включение мигания светодиодом через встроенный Web server при подключении по Wi-Fi.
аптайм до зависания, нагрев, потребление
всем этим страдают слабые контроллеры с влан на борту
802.11 явно запиливался не для передачи небольших данных и очень сильно нагружает ядро, что ведет к зависаниям или нехватке озу
Ой. Какая грусть-тоска-печаль. Знаем мы, как они на свои камни забивают. Имею роутер на Realtek 8197D. Старый OpenWRT под него с ворохом патчей собрать можно, но так как поддержки больше нет свежий собрать не выходит, весь этот ворох патчей не удается наложить на свежее дерево.
Опасайтесь RealTek'а камни приносящего.
А ведь RTL8711AM совсем неплохой.
Это два разных стандарта, могут жить отдельно друг от друга вообще.
Автор, зачем для чипа 8711 надо выбирать 8195?
Ссылки, кстати, в-никуда ведут.
щаз поправим)
Я так понял, что они (производитель) используют уже существующий проект — Амеба, вот и все.
Вот ссылка конкретно на описание платы у производителя.
Specifications
Parameters Description
CPU 32-bit ARM Cortex M3, up to 166MHz
Memory 1MB ROM, 2MB SDRAM and 512KB SRAM
Key Features Integrated with 802.11 b/g/n 1x1 Wi-Fi
NFC Tag with Read/Write Function
Hardware SSL engine
Maximum 19 GPIOs
1 SPI Interfaces and support master and slave mode
2 UART Interfaces including 1 HS-UART and one log UART
3 I2C Interfaces and support both master and slave mode
1 I2S/PCM Interfaces and support both master and slave mode
4 PWM interfaces
1 ADC interfaces
1 DAC interfaces
Power supply 3.3V (60-80ma)
Using RTL8711AM chip, integrated internal memory and flash memory, 1MB ROM,2MB SDRAM and 512KB SRAM;
Хм, а вот у модуля — RAK473 integrates internal 2M SRAM ,and 512KB DRAM and 2MB flash for complete WIFI protocol functions.
Какой вариант правильный?
Кстати, там еще вот такая память доступна:
NVM specification
ITEMS CONTENTS
Specification NVM Flash
Space 160KByte
Operate write times Total 10000 times
Note: NVM flash is used to store user configuration or firmware, do not use to store these
often changed configuration or user data.
минус.
Сразу же и забыл — большой плюс)
PS кто-то «под шумок» молчаливо минусанул предыдущему оратору… а я ведь про то же)
Но вы правы — с зоопарком я, скорее всего, погорячился…
не совсем, конечно, у неё, но тенденция радует; качественно отключать вифи и надёжно уходить в разноуровневый сон — «и золотой ключик у нас в кармане»
Power supply 3.3V (60-80ma)
А вот что на модуль:
Power Consumption
State Current (3.3V) Description
Deep Sleep 5.5uA Low Power Timer and GPIO Event Wake up
Deep Standby 25uA Low Power Timer and GPIO Event Wake up
Associated Idle(DTIM=1) 3.3mA Associated with AP but no traffic
Associated Idle(DTIM=2) 2.41mA Associated with AP but no traffic
Associated Idle(DTIM=3) 1.98mA Associated with AP but no traffic
Sleep 0.5mA Associated with AP but no traffic
Run in active clock 25mA CPU full run, UART available,WiFi is disable
11n RX mode 62mA CPU full run, UART available,WiFi is in 11n RX
11n TX mode@13dBm 162mA CPU full run, UART available,WiFi is in 11n TX
Peak current 240mA CPU full run, UART available,WiFi is in 11n TX