{"id":24742569,"url":"https://github.com/bastion-rnd/turtle_32_board","last_synced_at":"2026-04-09T17:34:25.112Z","repository":{"id":232166869,"uuid":"780986614","full_name":"Bastion-RND/Turtle_32_board","owner":"Bastion-RND","description":"Руководство по работе и базовые примеры для отладочной платы Turtle32","archived":false,"fork":false,"pushed_at":"2024-10-15T08:09:49.000Z","size":89328,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-03-19T12:14:55.453Z","etag":null,"topics":["arduino-ide","cpp","esp32","espressif","microcontroller","micropython"],"latest_commit_sha":null,"homepage":"https://bast.ru","language":"CMake","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Bastion-RND.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-04-02T14:36:56.000Z","updated_at":"2024-10-15T08:09:52.000Z","dependencies_parsed_at":"2025-01-28T00:49:01.031Z","dependency_job_id":null,"html_url":"https://github.com/Bastion-RND/Turtle_32_board","commit_stats":null,"previous_names":["bastion-rnd/turtle32_rep"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bastion-RND%2FTurtle_32_board","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bastion-RND%2FTurtle_32_board/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bastion-RND%2FTurtle_32_board/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bastion-RND%2FTurtle_32_board/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Bastion-RND","download_url":"https://codeload.github.com/Bastion-RND/Turtle_32_board/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245020314,"owners_count":20548156,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arduino-ide","cpp","esp32","espressif","microcontroller","micropython"],"created_at":"2025-01-28T00:38:39.206Z","updated_at":"2025-10-13T03:33:01.406Z","avatar_url":"https://github.com/Bastion-RND.png","language":"CMake","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Visual Studio Code](https://img.shields.io/badge/Visual%20Studio%20Code-0078d7.svg?style=for-the-badge\u0026logo=visual-studio-code\u0026logoColor=white)\n![Python](https://img.shields.io/badge/python-3670A0?style=for-the-badge\u0026logo=python\u0026logoColor=ffdd54)\n![PyCharm](https://img.shields.io/badge/pycharm-143?style=for-the-badge\u0026logo=pycharm\u0026logoColor=black\u0026color=black\u0026labelColor=green)\n![C++](https://img.shields.io/badge/c++-%2300599C.svg?style=for-the-badge\u0026logo=c%2B%2B\u0026logoColor=white)\n![CMake](https://img.shields.io/badge/CMake-%23008FBA.svg?style=for-the-badge\u0026logo=cmake\u0026logoColor=white)\n![Espressif](https://img.shields.io/badge/espressif-E7352C.svg?style=for-the-badge\u0026logo=espressif\u0026logoColor=white)\n![Arduino](https://img.shields.io/badge/-Arduino-00979D?style=for-the-badge\u0026logo=Arduino\u0026logoColor=white)\n\n***\n![Turtle32](https://github.com/user-attachments/assets/91167c4e-2200-475e-b3c0-fd53b2182f84)\n)\n\n***\n\nЭто небольшое руководство с основными учебными материалами для работы с платой Turtle32. Здесь вы можете найти примеры кода на разных языках и в разных средах разработки. Само руководство будет разделено на два оснвных раздела по языкам программирования:\n* MicroPython (Thonny IDE, esptool)\n* C/C++ (Espressif IDE, Arduino, PlatformIO)\n\n**Внимание! При использовании одного языка программирования, вы не сможете программмировать плату на другом языке. Эти режимы программирования взаимоисключающие. Читайте о перезаписи загрузчика в разделе [Перезапись загрузчика](#перезапись-загрузчика)**.\n\nЗдесь вы сможете найти основные руководства по установке и первичной настройке среды, а также десять примеров по работе с платой, которые можно использовать в своих проектах. Для тех, кто только погружается в разработку и не знает с чего начать, то предлагаем сразу перейти в раздел [С чего начать?](#с-чего-начать). \nБыстрая навигация по гайду:\n- [С чего начать?](#с-чего-начать)\n- [Установка драйверов](#установка-драйверов)\n- [Руководство по MicroPython](#руководство-по-micropython)\n- [Thonny IDE](#thonny-ide)\n- [esptool](#esptool)\n- [Руководство по C/C++](#руководство-по-сс)\n- [Arduino](#arduino)\n- [Espressif IDE](#espressif-ide)\n- [PlatformIO](#platformio)\n- [Перезапись загрузчика](#перезапись-загрузчика)\n***\n## С чего начать? \nСтоит начать с выбора языка программмирования, на котором будет вестись разработка. В выборе языка вы можете руководствоваться любыми принципами, подойдет любой из языков. Можно сказать только то, что большинство разработчиков используют С/С++, поскольку MicroPython сравнительно новый фреймворк для работы. Если вы хотите начать свой путь с программирования на MicroPython, то начинать стоило бы с использования и настройки Thonny IDE. В случае с использованием C/C++, то стоит начать с использования Arduino, который предоставляет большое количество библиотек и более облегченный вариант программирования. Все эти среды предлагают достаточно понятный и удобный интерфейс для пользователя. За тем, как исользовать и настраивать среду можно переходить в соответсвующие разделы, MicroPython - [Thonny IDE](#thonny-ide) и С/C++ - [Arduino](#arduino). Там расположен гайд по установке и запуску первой программы. Пример программы можно взять в папке ```Python Examples``` или ```C C++ Examples```, к примеру можно взять код из примера ```Blink```.\n***\n## Установка драйверов\nДля работы с платой на любом из языков программирования и любой из сред необходимо установить драйвера чипа CH34x. В папке ```drivers``` скачиваете zip архив и запускаете файл, который там храниться. В открывшемся окне нажимаете на кнопку Install. После чего можно переходить непосредственно к настройке среды и программированию.\n\n![image](https://github.com/Bastion-RND/Turtle32_rep/assets/133801615/2a49f5b0-c83e-45b0-aefc-871fd265bd11)\n\n***\n## Руководство по MicroPython\nДля программирования микроконтроллеров с использованием MicroPython предлагается использование двух разных сред: \n* Thonny IDE\n* esptool\n\n**Перед началом чтения следующего раздела убедитесь, что прошли раздел** [Установка драйверов](#установка-драйверов)\n### Thonny IDE\nПрограмма устанавливается довольно просто и легко. Для этого необходимо перейти на сайт разработчика и скачать файл установщик.\n\n![image](https://github.com/Bastion-RND/Turtle32_rep/assets/133801615/ac665593-f98e-4d48-a7a3-71a1e3238eef)\n\nЕщё одним из преимуществ можно выделить наличие русского языка как одного из оснвных языков интерфейса. Для этого заходите в раздел настроек и выбираете нужный язык. Переключите текущий интерпретатор Python на MicroPython с платой ESP32 на интересующем COM-порте (перед этим плату необходимо подключить к компьютеру).\n\n![image](https://github.com/Bastion-RND/Turtle32_rep/assets/133801615/b6338668-f95b-452f-9a1e-cd89f589466d)\n\nЕсли это первое использование платы или же до этого вы программировали на C/С++, то необходимо будет дополнительно записать на микроконтроллер ядро MicroPython для дальнейшей работы, то есть перепрошить микроконтроллер, заменив содержание его FLASH памяти. \n\n![image](https://github.com/Bastion-RND/Turtle32_rep/assets/133801615/fda97469-839a-47c7-b434-b7e209f0b95e)\n\nВ открывшемся окошке выбираете параметры нашей платы - семейство микроконтроллера ESP32 S3 и вариант Espressif ESP32 S3. После чего наживаете на кнопку Install и ожидаете загрузки прошивки. Это может занять пару минут. \n\n![image](https://github.com/Bastion-RND/Turtle32_rep/assets/133801615/0d087d33-e85d-44b6-90a5-73816019ff9a)\n\nПоявившееся окошко в терминале с таким содержанием будет говорить вам об успешности выполненных действий. Это и послужит сигналом к началу работы с платой. \n\n![image](https://github.com/Bastion-RND/Turtle32_rep/assets/133801615/84c76e50-9b04-47f3-bf94-2f129e2f53ee)\n\nВ окошке сбоку вы можете увидеть как файлы, находящиеся на вашем устройстве, так и файлы, которые находятся на микроконтроллере. Сначала в любом из проектов первым будет исполняться файл ```boot.py```, затем остальные.\n\n![image](https://github.com/Bastion-RND/Turtle32_rep/assets/133801615/e5d64a45-89f7-41da-b5ce-52f5ba2f5121)\n\nДля запуска файла достаточно будет нажать на зеленую кнопку в верхней части экрана. **_Ура-Ура!_**\n\n![Анимация](https://github.com/Bastion-RND/Turtle32_rep/assets/133801615/ec501592-2565-4ad6-9363-7a87167dce3e)\n\n***\n### esptool\nДля установки вам необходим Python. Установочный пакет для него можно и нужно скачать на официальном сайте. После установки Python на ваш компьютер, в командной строке (или терминале) введите команду ```pip install esptool```. Для проверки того, что установка прошла успешно нужно ввести в терминале команду ```esptool.py -h``` или, если вы используете Windows, - ```esptool.exe -h```. Вы увидите всю подсказку по данному модулю. Следующим шагом необходимо [скачать прошивку с официального сайта](https://micropython.org/download/ESP32_GENERIC_S3/) или найти ее в папке ```drivers```. Устанавливаете прошивку с помощью esptool, не забыв перед установкой отформатировать плату при помощи этой команды. \n\n```esptool.py --port COM3 erase_flash``` \n\n**При использовании команд помните, что порт может отличаться. Посмотреть порт можно при помощи диспетчера устроств в разделе ```Порты (COM и LPT)```**\n\n```esptool.py --port COM3 --baud 460800 write_flash --flash_size=detect 0 D:\\esp32s3.bin```, где *D:\\esp32s3.bin* это путь к файлу с его названием, где лежит ваша прошивка.\n\nДля загрузки собственной прошивки можно использовать следующую команду (при этом ваш код должен загружаться в формате *.bin*).\n\n```esptool.py -b 460800 --before=default_reset --after=hard_reset write_flash --flash_mode dio --flash_freq 20m --flash_size 4MB 0x0 bootloader.bin 0x10000 my_app-0x01000.bin 0x8000 partition-table.bin 0xd000 ota_data_initial.bin```\n***\n## Руководство по С/С++\nДля программирования микроконтроллеров с использованием MicroPython предлагается использование трех разных сред:\n* Arduino\n* Espressif IDE\n* PlatformIO\n\n**Перед началом чтения следующего раздела убедитесь, что прошли раздел** [Установка драйверов](#установка-драйверов)\n***\n### Arduino\nУстановка Arduino IDE является несложной и довольно понятной. Открываете установщик и следуете указаниям по установке. Запускаете IDE и приступаете к настройке среды программирования. Для того, чтобы иметь доступ к файлам прошивки ESP32, необходимо перейти в по пути ```Файл-\u003eНастройки``` и в строку *\"Дополнительные ссылки для менеджера плат\"* необходимо вставить следующую ссылку, а после нажать на кнопку \"Ок\":\n```https://dl.espressif.com/dl/package_esp32_index.json```\n\nДалее необходимо перейти по пути ```Инструменты-\u003eПлата``` (по умолчанию стоит Arduino Uno) и выбрать Менеджер плат.\n\n![image](https://github.com/Bastion-RND/Turtle32_rep/assets/133801615/cbd7eece-26f5-445a-9d49-8ff34d356084)\n\nВ открывшемся окне сверху пишете в поисковой строке \"esp32\" и начинаете поиск. Устанавливаете пакет данных от Espressif Systems. Ожидаете окончания скачивания, это может занять некоторое время.\n\n![image](https://github.com/Bastion-RND/Turtle32_rep/assets/133801615/36e8b221-cfb3-40f6-9a8f-567a8c6dfeea)\n\nПосле снова повторяете процесс выбора платы и переходите ```Инструменты-\u003eПлата-\u003eESP32 Arduino``` и выбираете ESP32S3 Dev Module.\n![image](https://github.com/Bastion-RND/Turtle32_rep/assets/133801615/0c7ae59c-62c2-48f3-a0d3-8a5632189676)\n\nДля загрузки кода теперь необходимо выбрать порт. Далее необходимо перейти по пути ```Инструменты-\u003eПорт```, выбираете доступный порт, к которому подключена плата.\n![image](https://github.com/Bastion-RND/Turtle32_rep/assets/133801615/27d7d657-8c2f-455e-ae71-b0aa6bb66435)\n\nУра-Ура! Теперь можно программировать плату и прошивать собственным кодом.\n***\n### Espressif IDE\nРабота в этой IDE может использоваться в нескольких доступных версиях. Как установка плагина для ```VSCode``` или собственное приложение. Начнем наш гайд с установки Espressif IDE. Возьмите установочный файл с [официального источника](https://github.com/espressif/idf-eclipse-plugin/blob/master/docs/Espressif-IDE-Windows-Installer.md). Выбираете язык установки и проходите далее. На одном из шагов установки вы сможете дополнительно выбрать какие дополнительные данные о микроконтроллерах вы подгружаете. Дополнительно убедитесь, что у вас выбрана опция ESP32S3.\n\n![image](https://github.com/Bastion-RND/Turtle32_rep/assets/133801615/4b1a8c30-60d2-4232-832e-7ca8848ab9cf)\n\nВ конце установки вы можете увидеть несколько дополнительных параметров. Их вы оставляете и нажимаете на кнопку Finish.\n\n![image](https://github.com/Bastion-RND/Turtle32_rep/assets/133801615/0d17279f-833b-43d9-adf2-5bbf0d3c3a31)\n\nПосле этого откроется несколько терминалов с процессом установки. Ожидаете её завершения и после чего сможете приступить к запуску самой IDE. \n\n![image](https://github.com/Bastion-RND/Turtle32_rep/assets/133801615/7207d618-bbc6-4aed-b1f3-d3175f51316f)\n\nОткрываете проект, который хотите протестировать на плате. К примеру, мигание светодиодом. И проводите основную настройку среды для запуска. Выбираете свой проект в поле ```Launch config``` и выбираете плату ESP32S3 в поле ```Launch target```. После чего нажимаете на кнопку загрузки прошивки, выбираете порт к которому подключена плата и наблюдаете за результатом. Первая сборка проекта может занять длительное время. Для дополнительных сведений о работе с IDE можно обраться к [официальной документации на GitHub](https://github.com/espressif/idf-eclipse-plugin?tab=readme-ov-file#create-a-new-project).\n\n![Анимация1](https://github.com/Bastion-RND/Turtle32_rep/assets/133801615/9184ace3-f353-43f7-b1f2-aabc227d6731)\n\nТак же дополнительно можно воспользоваться и расширением для VSCode. Запускаете приложение и открываете раздел Extensions, это можно сделать сочетанием клавиш ```Ctrl+Shift+X``` или кликнув на соответсвующую иконку. В поисковой строке наберите ```ESP-IDF Extension```, ищите и устанавливайте. \n\n![image](https://github.com/Bastion-RND/Turtle32_rep/assets/133801615/53a945ea-d810-417e-a34a-7794287800a9)\n\nВ Visual Studio выберите меню \"View\" и \"Command Palette\" и введите [configure esp-idf extension]. После этого выберете ESP-IDF: Configure ESP-IDF Extension. Перед вами откроется такого вида окно. В открывшемся окне выберете вариант ```Express```. \n\n![image](https://github.com/Bastion-RND/Turtle32_rep/assets/133801615/1f7ddfef-8da6-43cb-8d0c-9117405fd42c)\n\nЗдесь вам предоставляется возможность выбрать версию IDF и путь, куда файлы будут загружены. Это может занять некоторое время. По завершению установки можно приступать к созданию проекта. \n![image](https://github.com/Bastion-RND/Turtle32_rep/assets/133801615/000ad01c-5569-44b5-b499-778a7408f3d8)\n\nНа боковой панели теперь присутвует значок Espressif, который позволит быстро перейти к расширению. В верхней части экрана при помощи command можете создать новый проект. \n\n![image](https://github.com/Bastion-RND/Turtle32_rep/assets/133801615/8c2b5eff-09c6-411f-a9e8-9f84a753045a)\n\nДля того, чтобы загрузить проект, необходимо его сбилдить. Это делается при помощи команды ```ESP-IDF: Build your Project``` в меню \"View\" и \"Command Palette\" или сочетанием клавиш ```Ctrl+E+B```. Первый билд может быть довольно долгим. Перед загрузкой необходимо выбрать порт и саму плату, выбираете esp32s3 в нижнем левом углу. Для того, чтобы загрузить код в микрокнтроллер, воспользуйтесь командой ```ESP-IDF: Flash your Project``` в меню \"View\" и \"Command Palette\" или сочетанием клавиш ```Ctrl+E+F```.\n\n![Безымянный](https://github.com/Bastion-RND/Turtle32_rep/assets/133801615/be2c8659-f689-4740-a88f-00357ef09d56)\n\n***\n### PlatformIO \nТак же дополнительно можно воспользоваться и расширением для VSCode. Запускаем приложение и открываем раздел Extensions, это можно сделать сочетанием клавиш ```Ctrl+Shift+X``` или кликнув на соответсвующую иконку. В поисковой строке набираете ```PlatformIO```, ищете и устанавливаете. После чего в боковой части экрана у вас появиться иконка расширения. нажимаете на нее и попадаете на главный экран, где выбираете опцию создать новый проект и выбираете необходимые настройки для создания проекта. В параметрах ```Board``` выбираете вариант с esp32s3.\n![image](https://github.com/Bastion-RND/Turtle32_rep/assets/133801615/c817bf2d-2359-4412-b7e0-2153501e6f91)\n\nПосле чего можем открыть ваш проект или создать его. Для того, чтобы загрузить проект перед этим необходимо его собрать, то есть сделать build проекта. Это можно сделать при помощи сочетания клавиш ```Ctrl+Alt+B``` или при помощи команды ```PlatformIO: Build``` в  меню \"View\" и \"Command Palette\".\n![image](https://github.com/Bastion-RND/Turtle32_rep/assets/133801615/7f3eb7d6-9830-4dcf-b374-3757896f9aaf)\n\nВ случае, если все прошло удачно и в коде нет никаких ошибок вы увидите сообщение в терминале о том, что все было выполнено. Далее вы можете загружать код на микроконтроллер. Это можно сделать при помощи сочетания клавиш ```Ctrl+Alt+U``` или при помощи команды ```PlatformIO: Upload``` в  меню \"View\" и \"Command Palette\".\n![image](https://github.com/Bastion-RND/Turtle32_rep/assets/133801615/c6a5b0c7-8bcf-4cd4-a782-36f3ef69d346)\n\n***\n## Перезапись загрузчика \nДля того, чтобы программировать, используя язык MicroPython, или наоборот после программирования на MicroPython и перейти на С/С++, необходимо будет стереть память микроконтроллера и загрузить новую прошивку при помощи esptool. Подробнее об установке читайте в соответствующем разделе про [esptool](#esptool), там находится информация о его установке. Необходимые файлы прошивки находятся в ```drivers```. Для прошивки нового загрузчика необходимо запустить командную строку и прописать следующую команду: \n```esptool.py --port COM3 erase_flash``` \n**При использовании команд помните - порт может отличаться. Посмотреть порт можно при помощи диспетчера устроство в разделе ```Порты (COM и LPT)```**\nПосле чего можно будет загружать новую необходимую прошивку, для этого используете следующую прошивку:\n```esptool.py --port COM3 --baud 460800 write_flash --flash_size=detect 0 D:\\esp32s3.bin```, где *D:\\esp32s3.bin* это путь к файлу с его названием, где лежит ваша прошивка.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbastion-rnd%2Fturtle_32_board","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbastion-rnd%2Fturtle_32_board","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbastion-rnd%2Fturtle_32_board/lists"}