Arduino WEMOS и RAMPS

Я подумываю о покупке Arduino WEMOS1, так как устал возиться с SD-картой.

Arduino WEMOS

Поскольку чип 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

, 👍4

Обсуждение

Возможно, вы перепутали оперативную память с флэш-памятью. 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.


1 ответ


Лучший ответ:

4

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

По-видимому, существует две разновидности этой платы, поскольку я видел фотографии с любым из RobotDyn:

RobotDyn board

сзади (из инструктивных таблиц)

RobotDyn board (rear)

или логотипы WeMos на них.

WeMos board

Они могутбыть, а могут и небыть одинаковыми. Существует также этот, с общим логотипом "Wi-Fi" (со страницы eBay ниже):

Generic board

Расхождения в Памяти

Однако, безусловно, существует некоторое несоответствие, связанное со спецификацией и объемом памяти (если только не существует ряда вариантов, что, безусловно, было бы возможно):

Глядя на эту статью, Инструкции - Arduino MEGA 2560 Со встроенным Wi-Fi - ESP8266, это не совсем ESP8266-12:

В сегодняшнем тексте мы обсуждаем Arduino, который я считаю чрезвычайно особенным, так как в его плату встроен ESP8266. У него нет ESP12, припаянного к плате. Вместо этого у него есть чип Espressif. Итак, на плате у вас есть встроенный чип Tensilica с 4 МБ памяти, а также ATmega2560, который является традиционным Arduino Mega.

Таким образом, ESP имеет 4 МБ, но где 32 Мб пришел поиграть?

Ну, взглянув на эту таблицу памяти RobotDyn (взята со страницы "Инструкции"):

RobotDyn memory table

4 МБ ESP, похоже, были немедленно опровергнуты и обновлены до 8 МБ! ATmega2560 каким - то образом имеет 32 Мб (что кажется немного неправдой-поскольку человеку не известен ATmega2560, у которого столько памяти2), и его еще больше смущает соответствующий текст:

Как мы видим в таблице выше, ATmega имеет 32 МБ памяти, не считая памяти ESP. Это замечательно, так как традиционный Mega Arduino имеет всего 256 КБ памяти.

Так МБ или Мб? Существует ли дополнительная микросхема флэш-памяти, внешняя для ATmega2560? Глядя на схему, взятую со страницы русского робота, кажется, что ее нет:

RobotDyn schematic

Так что это может быть чепухой. Логика диктует, что 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 технические данные

ATmega256 memory

3 Из Mega + WiFi R3 ATmega2560 + ESP8266 (памятная записка объемом 8 Мб), по-видимому, возникают некоторые проблемы при взаимодействии между ATmega и микросхемами ESP, при этом ряд пользователей сообщают о проблемах.

Тем не менее, предусмотрено несколько решений:

Решение 1

Из поста №2

  1. Установите DIP-переключатель в "специальный" режим: (1=вкл., 2=вкл., 3=вкл., 4=вкл., 5=выкл., 6=выкл., 7=выкл., 8=выкл.) см. описание продукта.

  2. Установите переключатель в положение RXD3

  3. Запустите приведенный ниже эскиз, измените значения 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

Следуйте этому, если у вас есть то же самое в моих случаях:

  1. запрограммируйте ESP(загрузите эскиз) для подключения к Wi-Fi,настроив DIP на 5:вкл., 6:вкл., 7:вкл.и другое выключение.
  2. запрограммируйте mega(загрузить эскиз) на случай,если вы хотите отправить сообщение друг другу, настроив Dip на 3:вкл., 4:вкл. и другое выключение.
  3. переключите два RX0/TX0(в моем случае я использую Serial.print() и Serial.ReadString() для связи между Esp и Mega)
  4. после того,как вы уже загрузили эскиз в оба модуля,вы можете проверить связь между ними,настроив DIP на: 1:вкл., 2:вкл., 3:вкл., 4:вкл. а затем нажмите кнопку сброса, чтобы перезапустить платы.

  5. В ESP вы можете получить строку из Mega с помощью if(Serial.available()) Serial.ReadString(); и в mega вы можете получать данные из ESP с помощью : если(Serial.available())Последовательная строка чтения().

  6. После того, как у вас есть строка, чтобы вы могли разделиться или делать все, что захотите.
  7. Если вы хотите отправить данные в Firebase, вы должны использовать библиотеку Firebase на стороне Esp, в Mega она не поддерживается.

,

большое спасибо за эту подборку. куплю один и посмотрю, как он работает., @profesor79

Да, я хочу его купить. Я только что обновил свой ответ достаточно точным описанием звучания. Я буду продолжать искать вариант использования RAMPS., @Greenonline

Отличный пост, ты хочешь заставить меня купить эту плату! :D, @0scar

@0scar - Проблема в том, что документация, похоже, лжет о памяти, и нет ни одного четкого описания. Также, по-видимому, существует две разновидности. RobotDyn и WeMos - хотя они могут быть совершенно одинаковыми, @Greenonline