Как управлять Neopixels с помощью BASIC на Raspberry Pi Pico

Windows

[ad_1]

В 1980-х годах бум домашних компьютеров привел к тому, что машины от Atari, Apple, Commodore, Acorn, Sinclair и других компаний стремились представить вычислительную технику целому поколению. В качестве примера повторяющейся истории мы видели появление Raspberry Pi в 2010-х годах. Но поскольку Raspberry Pi и Python теперь идут рука об руку для этого поколения, в 1980-х это был BASIC.

BASIC, Универсальный код символических инструкций для начинающих — это язык высокого уровня, удобочитаемый для человека, первоначально разработанный в 1964 году Джоном Г. Кемени, Томасом Э. Курцем и Мэри Кеннет Келлер в Дартмутском колледже. BASIC стал известен в конце 1970-х годов благодаря появлению домашних компьютеров. В 1980-х годах был представлен BASIC, несколько версий языка, для множества разных домашних компьютеров. Microsoft BASIC, TI-BASIC, Amiga BASIC, AppleSoft BASIC. Бейсик был и нашим языком программирования, и средством управления нашими домашними компьютерами.

Со временем BASIC для многих отошел в тень. Новые языки появились и взяли верх. Теперь у нас есть тысячи языков программирования на выбор. Когда дело доходит до Raspberry Pi Pico, наш выбор немного более ограничен, но теперь мы можем добавить еще один в список.

PicoMite — это название проекта на основе Raspberry Pi Pico, в котором версия BASIC (в данном случае MMBASIC) используется для управления GPIO Pico. Термин «Mite» происходит от создателя серии плат Maximite и Micromite Джеффа Грэма, которые используют SoC на базе Arm для питания мощных домашних компьютеров, работающих под управлением BASIC.

PicoMite — это более «легкий» продукт, разработанный для Raspberry Pi Pico за 4 доллара и позволяющий коду BASIC управлять выводами GPIO, датчиками, RGB-светодиодами и другими компонентами и работать с ними. В этом руководстве мы создадим собственное устройство PicoMite и будем использовать его для управления серией RGB-светодиодов Neopixel.

Для этого проекта вам понадобится

  • Малиновый Пи Пико (откроется в новой вкладке)
  • Макет половинного размера (откроется в новой вкладке)
  • ВЕЛ (откроется в новой вкладке)
  • Резистор 220 Ом (красный, красный, коричневый, золотой) (откроется в новой вкладке)
  • 2 перемычки между мужчинами и женщинами (откроется в новой вкладке)
  • Неопиксельная полоса (откроется в новой вкладке)

Настройка ПикоМайт

1. Перейдите к Веб-страница PicoMite и прокрутите вниз до раздела «Загрузки». Загрузите последнюю версию прошивки PicoMite.

2. Извлеките содержимое загрузки.

3. Нажмите и удерживайте кнопку BOOTSEL Raspberry Pi Pico и подключите через USB к компьютеру. Появится новый диск, RPI-RP2, это наш Raspberry Pi Pico.

4. Скопируйте PicoMite UF2 файл прошивки на диск RPI-RP2. Через несколько мгновений диск исчезнет, ​​и наш Pico теперь работает с Pico-версией MMBASIC.

Подключение к PicoMite

Чтобы использовать PicoMite, нам нужно создать последовательное соединение между нашим компьютером и Raspberry Pi Pico. Лучшим инструментом для работы в Windows является PuTTY.

1. Загрузите и установите PuTTY. на вашу машину Windows.

2. Щелкните правой кнопкой мыши в меню Windows а также выберите Диспетчер устройств.

(Изображение предоставлено Tom’s Hardware)

3. Прокрутите вниз до Порты (COM и LPT) а также щелкните стрелку раскрывающегося списка. Запишите COM-порт последовательного USB-устройства.

(Изображение предоставлено Tom’s Hardware)

4. Открыть шпатлевку а также нажмите Серийный номер. Введите COM-порт для вашего PicoMite а также установите скорость 38400.

(Изображение предоставлено Tom’s Hardware)

5. В меню «Категория» (слева) нажмите «Серийный номер».

(Изображение предоставлено Tom’s Hardware)

6. Установите последовательную конфигурацию следующим образом. Скорость 38400, биты данных 8, стоповые биты 1, четность нет, управление потоком нет.

(Изображение предоставлено Tom’s Hardware)

7. Из меню «Категория»нажмите «Клавиатура» и установите клавишу Backspace на Control-H. Это позволит нам использовать клавишу возврата для удаления любых ошибок в нашем коде. Если этот параметр не включен, клавиша возврата неактивна.

(Изображение предоставлено Tom’s Hardware)

8. Нажмите «Сессия», назовите свою сессию PicoMite. а также нажмите Сохранить. Теперь у нас есть готовые настройки, когда мы захотим использовать PicoMite с PuTTY.

(Изображение предоставлено Tom’s Hardware)

9. Нажмите Открыть для создания соединения.

Использование PicoMite с MMBASIC

(Изображение предоставлено Tom’s Hardware)

Первое, что мы видим с MMBASIC, это ничего. Пустой экран с подсказкой — это все, что приветствует. Но отсюда мы можем написать код BASIC, строка за строкой, который запускается каждый раз, когда мы нажимаем клавишу Enter.

(Изображение предоставлено Tom’s Hardware)

Давайте воспользуемся командой быстрой печати, чтобы проверить, что все работает как положено. Нажмите Enter в конце строки, чтобы запустить код, вы должны увидеть сообщение на экране.

print “Hello World”

Нам нужно создать файл, чтобы сделать больше с кодом.

1. Тип редактировать а также нажмите Ввод. Это открывает базовый текстовый редактор, и в нижней части экрана мы видим, что функциональные клавиши используются для сохранения, запуска, поиска, пометки (выделение для вырезания/копирования) и вставки.

(Изображение предоставлено Tom’s Hardware)

2. Создайте комментарий, начинающийся с ‘, который определит, что будет делать проект. Комментарии, примечания на языке BASIC, — это способы оставлять сообщения в нашем коде. Для MMBASIC они также дублируются как имена файлов проекта.

‘For loop

3. Создайте цикл for, который будет выполняться десять раз..

For i = 1 To 10

4. Внутри цикла for добавьте команду печати для печати сообщения на экране.

Print “Tom’s Hardware”

5. Закройте цикл for с помощью Next. Это будет увеличивать значение i каждый раз, когда цикл повторяется. Когда он достигает 10, цикл заканчивается.

Next i

6. Нажмите F1, чтобы сохранить. Это также выведет нас из редактора.

7. Сохраните код в первый слот встроенной памяти. PicoMite имеет семь слотов, в которые мы можем сохранять код.

flash save 1

8. Тип бежать и нажмите Enter для запуска кода. Сообщение появится десять раз.

(Изображение предоставлено Tom’s Hardware)

Полный список кодов цикла for

'For Loop
For i = 1 To 10
Print "Tom's Hardware"
Next i

Использование GPIO

Поскольку это Raspberry Pi Pico, мы можем делать гораздо больше, чем печатать строки текста. MMBASIC имеет доступ к GPIO. У нас есть цифровые, аналоговые, PWM, I2C, SPI, RS232 и 1-Wire. Начнем с простого со светодиода.

(Изображение предоставлено Tom’s Hardware)

Светодиод имеет два контакта, анод и катод. Анод (длинная ножка) подключается к GP0 через перемычку между штекерами. Катод (короткая ножка, GND) подключается к любому контакту GND на Pico через резистор 220 Ом.

1. Тип редактировать и нажмите Enter. Откроется базовый текстовый редактор.

2. Назовите проект LED Blink.

‘LED Blink

3. Установите контакт 0 GPIO в качестве выхода.

SetPin GP0, DOUT

4. Создайте переменную delay, в которую мы сохраняем значение 1000. Это задержка в одну секунду в миллисекундах.

delay = 1000

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

6. Включите светодиод, подключенный к GP0, а также используйте команду печати, чтобы написать «Вкл.» на экране. Выводя сообщение на экран, мы можем видеть, что петля работает, если наша светодиодная схема неверна.

Pin(GP0) = 1
Print “On”

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

Pause delay

8. Выключите светодиод, распечатайте на экране а также затем сделайте паузу на одну секунду.

Pin(GP0) = 0
Print "Off"
Pause delay

9. Используйте команду GoTo, чтобы отправить код обратно в Blink_Loop, закрыв цикл.

GoTo Blink_Loop

10. Нажмите F1, чтобы сохранить и выйти из кода.

11. Сохраните проект во второй слот встроенной памяти.

flash save 2

12. Тип бежать и нажмите Enter, чтобы запустить код. Теперь светодиод должен мигать каждую секунду. Нажмите CTRL+C, чтобы выйти из кода.

'LED Blink
SetPin GP0, DOUT
delay = 1000
Blink_Loop:
Pin(GP0) = 1
Print "On"
Pause delay
Pin(GP0) = 0
Print "Off"
Pause delay
GoTo Blink_Loop

Загрузка кода

Теперь у нас есть два проекта, сохраненных в PicoMite, но только один из них может работать одновременно.

1. Список проектов, сохраненных в PicoMite.

flash list

(Изображение предоставлено Tom’s Hardware)

2. Загрузите код цикла for из первого слота.

flash load 1

3. Перечислите содержимое кода, введите список и нажмите Enter.

(Изображение предоставлено Tom’s Hardware)

4. Тип бежать и нажмите Enter, чтобы запустить код.

Что, если мы хотим запустить наш код, когда Raspberry Pi Pico находится вдали от компьютера? Допустим, мы хотим, чтобы проект мерцания светодиодов загружался при включении PicoMite.

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

option autorun 2

Управление NeoPixels с помощью PicoMite

(Изображение предоставлено Tom’s Hardware)

Вы правильно прочитали! Обычно нам нужен CircuitPython, MicroPython или C для управления NeoPixels с помощью Raspberry Pi Pico. Но PicoMite поддерживает «bitbanging», когда мы программно создаем сигналы/импульсы, необходимые для управления RGB-светодиодами WS2812.

Схема для NeoPixels проста. У нас есть три связи.

(Изображение предоставлено Tom’s Hardware)

Малиновый Пи Пико НеоПиксель Цвет провода
3 на 3 ВКК Красный
ЗАЗЕМЛЕНИЕ ЗАЗЕМЛЕНИЕ Черный
GPIO28 Ввод данных (DIN) Зеленый

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

1. Загрузите пустой слот для кода.

flash load 3

2. Откройте слот с помощью редактировать.

3. Добавьте комментарий «Неопиксели. Помните, что это будет название кода в слоте 3.

4. Создайте переменную с именем задерживать и там хранить 1000. Это будет задержка в одну секунду между каждым цветом в цикле.

delay = 1000

5. Создайте массив (Python называет это списком), который будет содержать шесть значений для каждого из шести неопикселей, которыми мы хотим управлять. В BASIC мы должны создать размеры (размер) списка. ! означает, что наш массив содержит целые числа, и каждое из них является значением RGB, в данном случае красным.

Dim a%(5)=(RGB(red),RGB(red),RGB(red),RGB(red),RGB(red),RGB(red))

6. Создайте еще один массив, на этот раз, чтобы светодиоды стали зелеными.

Dim b%(5)=(RGB(green),RGB(green),RGB(green),RGB(green),RGB(green),RGB(green))

7. Создайте окончательный массив, на этот раз установите синие светодиоды.

Dim c%(5)=(RGB(blue),RGB(blue),RGB(blue),RGB(blue),RGB(blue),RGB(blue))

8. Установите GPIO 28 на выход.

SetPin GP28, DOUT

9. Создайте метку, указывающую на начало цикла.

pixel_loop:

10. Используйте команду Bitbang, чтобы имитировать синхронизацию WS2812, необходимую для установки светодиодов в красный цвет. Опция WS2812 имеет две настройки для Neopixels. O для стандарта и B для версии WS2812B. Если один не работает, попробуйте другой.

Bitbang ws2812 o, GP28, 6, a%()

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

Pause delay

12. Используйте еще один битбэнг, чтобы сделать светодиоды зелеными, затем добавьте еще одну паузу. Мы используем значения из б массив, чтобы установить каждый светодиод зеленым.

Bitbang ws2812 o, GP28, 6, b%()
Pause delay

13. Установите светодиоды в синий цвет с помощью последней команды bitbang и короткой паузы.

Bitbang ws2812 o, GP28, 6, c%()
Pause delay

14. Наконец, закройте цикл, предписывая коду вернуться к метке.

GoTo pixel_loop

15. Нажмите F1, чтобы сохранить код.

16. Перезапишите код в слоте 3. Это гарантирует, что наш код будет правильно сохранен.

flash overwrite 3

17. Тип бежать для запуска кода. Нажмите CTRL+C, чтобы остановить в любой момент.

Список кодов Neopixel

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

'Neopixels
delay = 1000
Dim a%(5)=(RGB(red),RGB(red),RGB(red),RGB(red),RGB(red),RGB(red))
Dim b%(5)=(RGB(green),RGB(green),RGB(green),RGB(green),RGB(green),RGB(green))
Dim c%(5)=(RGB(blue),RGB(blue),RGB(blue),RGB(blue),RGB(blue),RGB(blue))
SetPin GP28, DOUT
pixel_loop:
Bitbang ws2812 o, GP28, 6, a%()
Pause delay
Bitbang ws2812 o, GP28, 6, b%()
Pause delay
Bitbang ws2812 o, GP28, 6, c%()
Pause delay
GoTo pixel_loop

[ad_2]

Оцените статью
( Пока оценок нет )
Добавить комментарий

Top.Mail.Ru
اجمل جسم بنت hardpornx.net سكس تمريض
free punjabi xxx video porno-trash.net video 9.com
hot namitha indianhottube.com odia sxy
sonagachi girls rate pornucho.mobi nayanthara home
babhi porn yourporn.name dpsbokaro
xxxstepmom freepakistaniporn.com xnxxx sex videos
tamil sex videos twitter ganstagirls.info hindi x picture
www. kamukta.com mom2fuck.mobi xxx pourn
سكس الابن وامة freepornhunter.net سكس نيك موت
جنس كلاسيك bibshe.com فنانات عرب عاريات
warangal sex videos mojoporn.net english sex with
سكس امهات مصرى porn2you.org مدرسة شبرا الشرموطة
indian sexuniversity indiansexmms.me hyd x videos
shiro bara no kishi loriana hentaisin.com bricola 5
futanari club hentai hentai.name floatzel hentai