2-WIFI&Bluetooth(ESP32)изменятьCANилиRS485автобус&последовательный портTTLмодуль-CSDK--Введение в шаблоны проектов вторичной разработки(wifiКонфигурация;последовательный порт;CANавтобус,Высокий параллелизмTCPсервер,Многоканальный TCPклиент)
2-WIFI&Bluetooth(ESP32)изменятьCANилиRS485автобус&последовательный портTTLмодуль-CSDK--Введение в шаблоны проектов вторичной разработки(wifiКонфигурация;последовательный порт;CANавтобус,Высокий параллелизмTCPсервер,Многоканальный TCPклиент)

Скопируйте проект в свой собственный каталог IDF.

1. Поместите проект в тот же каталог, что и hello_world, а затем разархивируйте его.

2. Открыть с помощью vscode

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

Затем нажмите «Компилировать»

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

3. Все конфигурации по умолчанию находятся в parameConfig.

Фактически, все конфигурации могут быть настроены динамически, чтобы облегчить будущую настройку с использованием главного компьютера и т. д.

Сначала загрузите конфигурацию по умолчанию во время инициализации.

Позже будет перенастроен из хранилища. На данный момент я просто написал простой тест. По мере постепенного увеличения потребностей пользователей будет добавлена ​​соответствующая динамическая конфигурация.

Тестовый последовательный порт

1. Давайте используем следующие два порта для тестирования.

IO21 и IO22 — это общие входные и выходные порты ввода-вывода, которые можно использовать в качестве входного переключателя (до 24 В), UART, IIC и т. д.

2. Загрузите программу на устройство

Примечание. Поскольку все функции пакета работают, энергопотребление высокое. Лучше всего подключить внешний адаптер питания для питания устройства во время тестирования;

Настроенный IO21 — TX; IO22 — RX, а скорость передачи данных установлена ​​на 9600.

Программа возвращает то, что получает; предусмотрены две формы отправки данных. Рекомендуется использовать следующий метод «задача плюс очередь» (если пользователь хочет использовать xQueueCreate, обратитесь к примеру отправки данных по CAN-шине).

3. Здесь модуль последовательного порта используется для подключения устройства для тестирования. Поскольку пример Espressif Systems заброшен, а базовая обработка написана непосредственно мной, эффективность очень высока.

Здесь сначала используйте помощник по отладке последовательного порта, чтобы отправить 1 байт данных для тестирования. Проверьте задержку отправки и получения. Разница во времени составляет 5 мс.

Фактически, необходимо исключить фактическое время передачи одного байта данных; для отправки одного байта данных со скоростью 9600 бод требуется около 1,04 мс, а затем для возврата требуется около 1,04 мс. задержка составляет менее 3 мс.

Ниже приведен сигнал, снятый с помощью логического анализатора. Реальная задержка составляет около 2,82 мс. Это уже пик при работе операционной системы. Ведь операционная система требует переключения задач.

Затем протестируйте большой объем данных. Здесь используйте помощник по отладке последовательного порта, чтобы отправлять 100 байтов данных каждые 1 мс для тестирования.

Здесь мы используем помощник по отладке последовательного порта для отправки 1000 байт данных каждые 1 мс для тестирования. Обратите внимание, что, поскольку скорость передачи данных составляет 9600 бод, помощнику по отладке требуется более 1 с, чтобы завершить отправку 1000 байт, поэтому мы рассмотрим. карта.

Здесь вы можете изменить размер кэша последовательного порта.

4.Получить данные

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

RS485 (независимо от того, использует ли пользователь устройство RS485, это также рекомендуется прочитать)

1. CAN и RS485 текущего устройства используют общие контакты. Установите флаг включения CAN на 0 во время тестирования.

2. Программа также возвращает все, что получает.

2. Сюда же подключаем модуль отладки для тестирования.

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

Пока обнаружено, что в кэше есть полученные данные, они будут отправлены. Данные по-прежнему поступают по линии 485, поэтому они будут отправлены сюда, поэтому данные в линии 485 испорчены.

Чтобы решить эту проблему, я немного обработал нижний слой. Пользователи могут дополнить свое мнение && NotifyValue<=1   (NotifyValue<=1означает, когдапоследовательный порт Приближается прерывание простоя,Нижний уровень получил один кадр данных)

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

Теперь скорость передачи данных составляет 9600, что составляет 1/9600≈0,1мс. Передается 1 бит, написанный ниже, это означает, что линия UART превышает 2*0,1*11≈2,2 мс и данные не принимаются. считается, что был получен один кадр данных, генерируется прерывание простоя.

Конечно, время теста не может быть слишком коротким, ведь после передачи данных устройство их получает, а затем возвращает.

Предполагая следующую передачу 10 байтов данных, отправка занимает около 11 мс, а пересылка — 11 мс, поэтому время передачи в любом случае фиксировано и составляет 22 мс.

Программная обработка данных занимает всего 2,2+2,8= 5 мс (обнаружение простоя занимает 2,2 мс, системная обработка занимает около 2,8 мс)

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

Конечно, идеальное состояние сложно, ведь система работает, поэтому добавляем еще 5 или 6 мс;

намекать: в реальных приложениях каждый хост-компьютер (modbus и т. д. все это знают) автоматически увеличивает время передачи своих данных, чтобы обеспечить стабильность передачи данных, здесь вам просто нужно это понять;

Тест CAN

1. CAN и RS485 текущего устройства имеют общие контакты. При тестировании установите флаг включения RS485 на 0, а флаг включения CAN на 1.

Вы можете изменить скорость передачи данных в соответствии с вашим собственным устройством CAN, текущая настройка — 250 КБ.

2. По умолчанию приведен пример циклической отправки данных CAN.

3. Сюда для тестирования подключается тестер CAN.

4. Откуда CAN получает данные

Тест Wi-Fi

1. Пользователи могут настраивать в соответствии со своими потребностями.

2. Если вам нужно получить статус подключенного маршрутизатора, информацию о подключенном маршрутизаторе или назначенный вами IP-адрес и т. д.

намекать

Модуль по умолчанию может создать максимум 10 сокетов (tcp-сервер + tcp-клиент + udp). Если кучи достаточно, вы можете увеличить ее в зависимости от вашей ситуации;

esp_get_free_heap_size() может получить оставшийся размер кучи в реальном времени (в байтах)

Тестовое устройство в качестве TCP-сервера

1. В настоящее время испытательное оборудование может открывать два TCP-сервера, и каждый сервер может поддерживать 8 клиентов.

Примечание. Из-за указанного выше ограничения в 10 сокетов два TCP-сервера уже заняли два сокета; для двух TCP-серверов еще выделено 8 сокетов;

Номер первого порта прослушивания — 8888, а номер второго порта прослушивания — 8889.

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

Примечание. На данный момент написаны только соответствующие функции обратного вызова для двусторонних серверов. Если необходимо несколько путей, их необходимо добавить снова.

Вот пример: возврат данных после получения данных.

3. Существует два метода тестирования.

Одним из них является точка доступа, через которую наш компьютер подключается к устройству. IP-адрес самого устройства по умолчанию: 192.168.4.1.

Другой способ — подключить устройство и наш компьютер к одному маршрутизатору, а IP-адрес устройства назначается маршрутизатором. Опытные пользователи также могут установить статический IP-адрес устройства ниже;

Я подключусь напрямую к точке доступа устройства для тестирования. Если клиент подключается к маршрутизатору для тестирования локальной сети, метод подключения к маршрутизатору также будет описан ниже.

4. Загрузите программу на устройство, а затем откройте помощник по мониторингу последовательного порта.

Если пользователь использует для тестирования маршрутизатор, здесь будет напечатан IP-адрес устройства.

5. Откройте помощник по сетевой отладке.

Моя сторона — это точка доступа подключенного устройства, поэтому указанный IP-адрес — это IP-адрес самого устройства.

Если пользователь использует маршрутизатор для тестирования, введите IP-адрес, назначенный указанным выше устройством, после подключения к маршрутизатору.

6. Вы можете протестировать тренировку вращения, отправив 2000–3000 байт данных за 1 мс, чтобы проверить скорость обработки устройства.

7. Создайте еще несколько клиентов; каждый клиент обучен отправлять 2000–3000 байт данных за 1 мс для проверки высокого уровня параллелизма устройства.

Тестовое устройство как TCP-клиент

1. Для удобства тестирования подключим устройство к роутеру

2. Я использую помощник по отладке для создания сервера.

3. Измените адрес сервера и номер порта в соответствии с вашими настройками. Адрес моего компьютера — 192.168.168.1, а номер порта сервера — 6000.

Обратите внимание: если вам нужно открыть 10 каналов, оно ограничено максимальными 10 сокетами, указанными выше, поэтому не забудьте отключить функцию TCP-сервера, указанную выше. Вы можете сначала попробовать открыть 8 каналов.

4. После компиляции и скачивания помощник отобразит ссылку.

Затем вы можете проверить это за 1 мс.

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

пример GPIO

1. Кнопка сброса обнаружения записана в основной функции.

.

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose