Arduino WEMOS и RAMPS
Я подумываю о покупке Arduino WEMOS1, так как устал возиться с SD-картой.
Поскольку чип ESP8266 имеет 32 Мб (~4 МБ) флэш-памяти, я надеюсь, что смогу передавать большинство файлов G-кода по Wi-Fi.
Я пробовал OctoPi, но из-за проблем с электронным шумом передача была нестабильной.
Кто-нибудь пробовал WEMOS с RAMPS? Стабильна ли последовательная связь между ESP и Arduino?
1 Описание продукта-Mega +WiFi R3 ATmega2560+ESP8266 (32 МБ памяти), USB-TTL CH340G. Совместимость для Arduino Mega, NodeMCU, WeMos ESP8266
@profesor79, 👍4
Обсуждение1 ответ
Лучший ответ:
После того, как вы изучили их, эти платы, безусловно, кажутся довольно интересными.
По-видимому, существует две разновидности этой платы, поскольку я видел фотографии с любым из RobotDyn:
сзади (из инструктивных таблиц)
или логотипы WeMos на них.
Они могутбыть, а могут и небыть одинаковыми. Существует также этот, с общим логотипом "Wi-Fi" (со страницы eBay ниже):
Расхождения в Памяти
Однако, безусловно, существует некоторое несоответствие, связанное со спецификацией и объемом памяти (если только не существует ряда вариантов, что, безусловно, было бы возможно):
- 4 МБ флэш-памяти находится в ESP8266 - 12, как утверждает Дэн, см. Модуль ESP8266 SMT- ESP-12. Но является ли это ESP8266-12 в плате или это другой вариант ESP?
- Этот продукт WeMos на eBay, WeMOS Mega + WiFi R3 ATmega2560 + ESP8266 USB-TTL для Arduino Mega NodeMCU, похоже, соответствует 32 Мб1
- Эта плата RobotDyn, Контроллер RobotDyn Mega 2560 R3 + WiFi ESP8266b, флэш-память память 8 Мбит, USB-TTL CH340G, microUSB, имеет 8 Мбайт.
- Однако та же страница продукта, но на английском языке, обновляет память до 32 МБ! Смотрите MEGA+WiFi R3 ATmega2560+ESP8266, вспышка 32 МБ, USB-TTL CH340G, Микро-USB
Глядя на эту статью, Инструкции - Arduino MEGA 2560 Со встроенным Wi-Fi - ESP8266, это не совсем ESP8266-12:
В сегодняшнем тексте мы обсуждаем Arduino, который я считаю чрезвычайно особенным, так как в его плату встроен ESP8266. У него нет ESP12, припаянного к плате. Вместо этого у него есть чип Espressif. Итак, на плате у вас есть встроенный чип Tensilica с 4 МБ памяти, а также ATmega2560, который является традиционным Arduino Mega.
Таким образом, ESP имеет 4 МБ, но где 32 Мб пришел поиграть?
Ну, взглянув на эту таблицу памяти RobotDyn (взята со страницы "Инструкции"):
4 МБ ESP, похоже, были немедленно опровергнуты и обновлены до 8 МБ! ATmega2560 каким - то образом имеет 32 Мб (что кажется немного неправдой-поскольку человеку не известен ATmega2560, у которого столько памяти2), и его еще больше смущает соответствующий текст:
Как мы видим в таблице выше, ATmega имеет 32 МБ памяти, не считая памяти ESP. Это замечательно, так как традиционный Mega Arduino имеет всего 256 КБ памяти.
Так МБ
или Мб
? Существует ли дополнительная микросхема флэш-памяти, внешняя для ATmega2560? Глядя на схему, взятую со страницы русского робота, кажется, что ее нет:
Так что это может быть чепухой. Логика диктует, что ATmega имеет 256 КБ, а ESP-4 МБ... Но я могу ошибаться...?
Links from Контроллер RobotDyn Mega 2560 R3 + WiFi ESP8266b, flash память 8Mbit, USB-TTL CH340G, MicroUSB:
Надежность связи
Независимо от фактической спецификации, для решения вашего вопроса о надежности связи ESP/Arduino:
Поскольку ESP8266 и ATmega2560 находятся на одной плате, можно предположить, что (последовательная) связь между ними будет безупречной. Однако сообщалось о некоторых проблемах3.
Тем не менее, из вашего вопроса следует, что у вас возникли проблемы с ESP для связи с OctoPi, а не с ESP для Arduino, так что, возможно, это на самом деле не отвечает на ваш вопрос.
Кроме того, что касается их совместимости с RAMPS, в настоящее время доступно очень мало информации, и, похоже, это случай, когда нужно попробовать и посмотреть. Ближе всего ко мне был этот пост в теме, OnStep и RAMPS1.4, но, похоже, это спам.
Тем не менее, это, безусловно, стоит рискнуть, так как это было бы хорошее сочетание технологий. Однако я бы предположил, что потребуется некоторая модификация прошивки.
Полезные Примечания
- Из поста № 8 Mega + WiFi R3 ATmega2560 + ESP8266 (8 Мб памятной записки)
Чтобы загрузить скетч на пату:
5, 6, 7 ON RXD3 - TXD3
Чтобы запустить эскиз:
5 and 6 ON RXD3 - TXD3
Сноски
1 От WeMOS Mega + WiFi R3 ATmega2560 + ESP8266 USB-TTL Для Arduino Mega NodeMCU
WeMOS Mega + WiFi R3 ATmega2560 + ESP8266 USB-TTL для Arduino Mega NodeMCU
Особенности:
- Полная интеграция на одной плате: Mega R3 ATmega2560 и WiFi ESP8266 с памятью 32 МБ (мегабайт)
- Все модули могут работать вместе или каждый по отдельности. И у каждого есть свои собственные заголовки распиновки
Удобное решение для разработки новых проектов, требующих Uno и Wi-Fi
Через USB вы можете обновить эскизы и прошивку для ATmega2560 и ESP8266. Для этого на борту имеется USB-последовательный преобразователь CH340G
- Пользоваться этой платой очень просто
- На плате есть DIP-переключатель для подключения модулей. Например, чтобы:
- USB и ATmeg2560,
- USB и ESP8266,
- ATmega2560 и ESP8266
Настольный DIP - переключатель:
Connection DIP 1 2 3 4 5 6 7 ATmega2560<->ESP8266 ON ON OFF OFF OFF OFF OFF USB <->ATmega2560 OFF OFF ON ON OFF OFF OFF USB<->ESP8266 (Update firmware or sketch) OFF OFF OFF OFF ON ON ON USB<->ESP8266 (communication) OFF OFF OFF OFF ON ON OFF All independent OFF OFF OFF OFF OFF OFF OFF Special solution: USB <->ATmega328<-> ESP8266 Connection DIP SWITCH 2 1 2 3 4 5 6 7 USB <-> ATmega2560<-> ESP8266 ON ON ON ON OFF OFF OFF To RXD3/TXD3
- USB - конвертер CH340G подключается к RX0/TX0 ATmega2560
- ESP8266 подключается к RX3/TX3 ATmega2560
Размер: 10.5x5.3 см/4.13x2.09 дюймов
2 От Atmel ATmega640/V-1280/V -1281/V-2560/V-2561/V технические данные
3 Из Mega + WiFi R3 ATmega2560 + ESP8266 (памятная записка объемом 8 Мб), по-видимому, возникают некоторые проблемы при взаимодействии между ATmega и микросхемами ESP, при этом ряд пользователей сообщают о проблемах.
Тем не менее, предусмотрено несколько решений:
Решение 1
Из поста №2
Установите DIP-переключатель в "специальный" режим: (
1=вкл., 2=вкл., 3=вкл., 4=вкл., 5=выкл., 6=выкл., 7=выкл., 8=выкл
.) см. описание продукта.Установите переключатель в положение RXD3
- Запустите приведенный ниже эскиз, измените значения SSID и ПАРОЛЯ. это просто для того, чтобы проверить, что Arduino и ESP8266 работают вместе. Код произошел от БИССА ОРБОЕА в Элементе14.
Код:
#include "ESP8266.h" #define SSID "YOURSID" #define PASSWORD "YOURPASSWORD" ESP8266 wifi(Serial3,115200); void setup() { Serial.begin(9600); Serial.println("Restart"); wifi.restart(); delay(1000); Serial.println("FW Version:"); Serial.println(wifi.getVersion().c_str()); if (wifi.setOprToStation()) { Serial.println("OprToStation ok"); } else { Serial.println("OprToStation err"); } if (wifi.joinAP(SSID, PASSWORD)) { Serial.println("Join AP success"); Serial.print("IP:"); Serial.println( wifi.getLocalIP().c_str()); } else { Serial.println("Join AP failure"); } } void loop() { }
Решение 2
Из поста №6
Сначала вам нужно написать код для каждой платы в соответствии с вашим приложением, но в вашем коде вам необходимо установить связь между последовательным портом Atmega и ESP в обоих кодах, опять же в соответствии с вашим приложением. Наконец, установите переключатели, которые обеспечивают внутреннюю связь между ними обоими.
Например, я сделал код для ESP, чтобы подключиться к точке доступа и подключить TCP-сервер. Когда беспроводной клиент подключен в ESP и , следовательно, к серверу TCP, все данные, отправляемые клиентом, я перенаправляю на последовательный порт. Поскольку последовательный порт ESP соединен с последовательным портом 3 Atmega, код в Atmega передает в систему данные с последовательного порта 3.
Решение 3
Из поста №11
Следуйте этому, если у вас есть то же самое в моих случаях:
- запрограммируйте ESP(загрузите эскиз) для подключения к Wi-Fi,настроив DIP на 5:вкл., 6:вкл., 7:вкл.и другое выключение.
- запрограммируйте mega(загрузить эскиз) на случай,если вы хотите отправить сообщение друг другу, настроив Dip на 3:вкл., 4:вкл. и другое выключение.
- переключите два RX0/TX0(в моем случае я использую Serial.print() и Serial.ReadString() для связи между Esp и Mega)
после того,как вы уже загрузили эскиз в оба модуля,вы можете проверить связь между ними,настроив DIP на: 1:вкл., 2:вкл., 3:вкл., 4:вкл. а затем нажмите кнопку сброса, чтобы перезапустить платы.
В ESP вы можете получить строку из Mega с помощью if(Serial.available()) Serial.ReadString(); и в mega вы можете получать данные из ESP с помощью : если(Serial.available())Последовательная строка чтения().
- После того, как у вас есть строка, чтобы вы могли разделиться или делать все, что захотите.
- Если вы хотите отправить данные в Firebase, вы должны использовать библиотеку Firebase на стороне Esp, в Mega она не поддерживается.
большое спасибо за эту подборку. куплю один и посмотрю, как он работает., @profesor79
Да, я хочу его купить. Я только что обновил свой ответ достаточно точным описанием звучания. Я буду продолжать искать вариант использования RAMPS., @Greenonline
Отличный пост, ты хочешь заставить меня купить эту плату! :D, @0scar
@0scar - Проблема в том, что документация, похоже, лжет о памяти, и нет ни одного четкого описания. Также, по-видимому, существует две разновидности. RobotDyn и WeMos - хотя они могут быть совершенно одинаковыми, @Greenonline
- RAMPS 1.4, 1.5 или 1.6?
- Шаговый двигатель нагревается через некоторое время
- Bed Heating Failed, Printer Halted, Please Reset
- Шаговые двигатели не работают при подключении к RAMPS 1.4
- Шаговые двигатели оси Z работают неправильно
- Максимальные входные значения тока, напряжения и мощности для RAMPS 1.4, 1.5 и 1.6?
- Сгоревший МОП-транзистор и высокое сопротивление нагреваемому столу
- Arduino и RAMPS включения питания
Возможно, вы перепутали оперативную память с флэш-памятью. ESP8266-12, используемый на этой плате, имеет около 50 Кб доступной оперативной памяти., @Klaus D.
Правильно, отредактируем вопрос., @profesor79
вы также путаете единицы измерения: ESP имеет ~3 МБ памяти для использования, а не 32. цифра 32-это Мб (мегабит), и ваша программа также занимает около мегабита., @dandavis
@dandavis спасибо за это - это взято из спецификаций, которые я нашел. В любом случае, если это 3 МБ или 32 МБ, мой вопрос все еще остается в силе, так как я планировал использовать SD-карту для хранения., @profesor79
Я не знаю, в частности, о С, но последовательная связь ESP -> Arduino чрезвычайно надежна; У меня есть несколько устройств с такой настройкой, и у них долгосрочная ошибка менее 1 промилле, @dandavis
Просто чтобы уточнить, вы спрашиваете о (1) проблемах с беспроводным шумом между ESP и OctoPi; (2) ESP для ATmega или (3) Плата Arduino и плата RAMPS? Или все три?, @Greenonline
В качестве продолжения, смогли ли вы использовать эту плату [Модуль Wemos Mega +WiFi R3 ATmega2560+ESP8266 32 МБ](https://www.banggood.com/custlink/mDvmhGNmap) вместо Мега-Ардуино?, @Ricardo AkA Voodoo
Вы также можете пропустить Arduino ATmega и получить плату ESP8266 или ее старшего брата, плату ESP32. Это 32-разрядные микроконтроллеры с очень низким энергопотреблением. На самом деле довольно забавно, что гораздо более мощный чип ESP8266 используется на плате arduino только для Wi-Fi. Я не давал этого ответа, потому что у меня нет конкретной платы, которую я мог бы рекомендовать, отвечающей вашим потребностям., @T. M.