Разработка аппаратного обеспечения тоже подойдет (на основе DeviceScript) | Специальный учебный лагерь по техническому созданию, этап 1!
Разработка аппаратного обеспечения тоже подойдет (на основе DeviceScript) | Специальный учебный лагерь по техническому созданию, этап 1!

фон

Недавно купил Хэчжоу 9.9. плата разработки rp2040, 刚好看到了微软的DeviceScriptподдержка библиотеки, Затем запишите процесс обучения и подводные камни.

Введение в DeviceScript

Официальный сайт: https://microsoft.github.io/devicescript/

Разработка микро-IoT-устройств на основе TypeScript

Официальный сайт DeviceScript
Официальный сайт DeviceScript

Поддерживаемые платы:

Поддерживаемые платы
Поддерживаемые платы

Конечно, плата определяет порт gpio и порт adc по умолчанию. Другие функциональные контакты не определены, нуждатьсяОпределите себя

Настройка среды разработки

1. Требуется программное обеспечение

  • Visual Studio Code
  • NodeJS v18.x

2. Плагин установки кода Visual Studio.

Ищите и устанавливайте прямо в маркете плагиновDeviceScriptВот и все

Результаты поиска на рынке плагинов
Результаты поиска на рынке плагинов

3. Запишите прошивку DeviceScript на плату rp2040.

Нажмите кнопку загрузки на плате и подключите ее к компьютеру (на моем компьютере в это время будет дополнительная буква диска), Щелкните значок плагина в левой части vscode, Затем нажмите знак плюса в правом верхнем углу устройств, выбиратьFlash FirmwareЗаписать в прошивку

Нажмите и удерживайте кнопку загрузки платы разработки.
Нажмите и удерживайте кнопку загрузки платы разработки.
Выберите запись прошивки
Выберите запись прошивки

Уведомление: 1. NodeJS v18.x Встроенная поддержкаfetchметод, При установке прошивки DeviceScriptИспользовалfetchзапросить загрузку прошивки, Более низкие версии будут сообщать об ошибках

Прошивка может не загрузиться по сетевым причинам. 可以自行通过Связь下载 Затем скопируйте его на вновь добавленный диск, Плата автоматически перезагрузится после копирования.

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

После подключения вы увидите, что текущее устройство rp2040 существует в списке устройств. Базовая среда завершена.

Пример разработки

1. Загорается

Мастер Идэн профессионал в освещении ламп. Начнем с освещения лампы на доске.

Светодиодные контакты встроены в плату, DeviceScript определен, Поэтому нет необходимости указывать порт io, Используйте напрямуюsetStatusLightметод干

Поскольку этот метод может управлять подсветкой RGB, Таким образом, вы можете передать значение цвета, А rp2040 - это монохромный светильник, Тогда, пока0xFFFFFFконтрольный свет, 0x000000控制灭Вот и все啊

Как показано ниже, программный цикл включается на одну секунду и выключается на одну секунду.

Язык кода:javascript
копировать
import { delay } from '@devicescript/core'
import { setStatusLight } from '@devicescript/runtime'
setInterval(async () => {
  await setStatusLight(0xFFFFFF)
  await delay(1000)
  await setStatusLight(0x000000)
  await delay(1000)
}, 1)

Нажмите «Выполнить» в правом верхнем углу, чтобы запустить код на плате.

бегать
бегать
бегатьрезультат
бегатьрезультат

Посмотрите на эффект (ускорьте гифку)

2. Датчик капель дождя

Напишите еще одну программу для чтения датчика капель дождя.

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

Схема контактов платы разработки rp2040
Схема контактов платы разработки rp2040
Схема физического подключения
Схема физического подключения

Посмотреть документацию, Поскольку не существует метода АЦП, специально предназначенного для датчиков капель дождя, Используйте напрямуюstartPotentiometer, для преобразования напряжения на выводе (обычно между 0 В (Земля) и 3,3 V (между VCC)) будет преобразовано в число от 0 до 1. console.dataИспользуется для печати и записи данных датчиков.

Документация АЦП
Документация АЦП
Язык кода:javascript
копировать
import { pins } from '@dsboard/pico' // Представьте определение вывода `pico` (rp2040).
import { startPotentiometer } from '@devicescript/servers'

const slider = startPotentiometer({
  pin: pins.GP28,
})
slider.reading.subscribe(v => console.data({ value:  v }))

Вы можете видеть, что когда на датчике нет воды, данные составляют около 0,8. После добавления нескольких капель воды значение становится около 0,3.

Печать журнала
Печать журнала

Тогда мы сможем рассмотретьconsole.dataсгенерированные данные, Статистика и рисование изображений и т. д.

Нажмите на значок в правом верхнем углу

Нажмите на значок статистики
Нажмите на значок статистики

Следуйте инструкциям. Сначала появится всплывающее окно, в котором вы сможете выбрать локальную среду Python, а затем выполните шаги для запуска следующего сценария.

Скрипт
Скрипт

Последний скрипт может отображать диаграмму на основе данных.

Статистическая диаграмма
Статистическая диаграмма

Подвести итог

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

С ним приятно играть, у него есть нормальные функции и драйверы сенсоров, а экосистема по-прежнему потихоньку улучшается.

【Идеи выбора темы】

JavaScript используется во все большем количестве областей, от интерфейсной до серверной части, до 2D, 3D и машинного обучения. и применять больше. Лучше использовать технологии в жизни и работе.

【Написание плана】

  1. Знакомство с библиотекой DeviceScript
  2. Настройка среды
  3. Пример разработки
  4. Подвести итог
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