Контакты

Контакты — это способ связи вашей платы с внешними устройствами. В вашем распоряжении 19 контактов, пронумерованных 0-16 и 19-20. Контакты 17 и 18 нет в наличии. Существует также pin_logo и pin_speaker в версии Microbit V2.

Приведенный ниже скрипт изменит отображение на micro:bit если показания на контакте 0 поменяется:

from microbit import *


while True:
    if pin0.read_digital():
        display.show(Image.HAPPY)
    else:
        display.show(Image.SAD)

Функции

Расположение контактов на микроконтроллере Microbit V1

../_images/edge_connector.svg

Расположение контактов на микроконтроллере Microbit V2

../_images/edge-connector-2.svg

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

Pin

Type

Function

Function V2

0

Touch

Pad 0

Pad 0

1

Touch

Pad 1

Pad 1

2

Touch

Pad 2

Pad 2

3

Analog

Column 1

Column 3

4

Analog

Column 2

Column 1

5

Digital

Button A

Button A

6

Digital

Column 9

Column 4

7

Digital

Column 8

Column 2

8

Digital

9

Digital

Column 7

10

Analog

Column 3

Column 5

11

Digital

Button B

Button B

12

Digital

13

Digital

SPI SCK

SPI SCK

14

Digital

SPI MISO

SPI MISO

15

Digital

SPI MOSI

SPI MOSI

16

Digital

19

Digital

I2C SCL

I2C SCL

20

Digital

I2C SDA

I2C SDA

Последнее устройство micro:bit V2 имеет два дополнительных контакта, к которым вы можете получить доступ. в MicroPython, но недоступны через соединитель:

  • pin_logo - Чувствительный к прикосновениям логотип на передней панели micro:bit, который по умолчанию настроен на емкостный сенсорный режим.

  • pin_speaker - контакт для обращения к динамику micro:bit. Этот API предназначен только для использования в операциях с выводами широтно-импульсной модуляции, например. pin_speaker.write_analog(128).

Широтно-импульсная модуляция

Контакты вашей платы не могут выводить аналоговый сигнал, как аудиоусилитель. Но можно сделать это - путем модуляции напряжения на выводе. Контакты могут либо включить полный выход 3,3 В или выключить его 0 В. Но можно управлять яркостью светодиодов или скоростью электродвигателя используя ШИМ (очень быстро включать и выключать напряжение и контролировать ее продолжительность). Функция write_analog использует ШИМ.

../_images/pwm.png

Выше вы можете увидеть диаграммы трех разных ШИМ-сигналов. Все они имеют одинаковый период (частоту), но они имеют разные рабочие циклы.

Первый будет сгенерирован командой write_analog(511), от составляет половину нагрузки - питание включено ровно половину времени. Результатом этого будет 1,65В вместо 3,3В.

Второй сигнал имеет рабочий цикл 25% и может быть сгенерирован командой write_analog(255). Имеет такой же эффект, если выводить 0,825В на контакт.

Это хорошо работает с устройствами, как двигатели, которые имеют огромную инерцию. Или светодиоды, которые мигают слишком быстро, чтобы человеческий глаз мог увидеть разницу. Но не будет хорошо работать с генерацией звуковых волн. ШИМ может генерировать прямоугольные звуки.

Класс

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

Примечание

Эти классы недоступны для пользователя, Вы не можете создать новые их экземпляры. Можете использовать только уже предоставленные экземпляры.

class MicroBitDigitalPin
read_digital()

Возвращает 1, если сигнал высокий, и 0, если низкий.

write_digital(value)

Установите контакт на высокий уровень сигнала, если value равна 1. value равна 0 - низкий уровань.

set_pull(value)

Установить состояние контакта.Одно из трех возможных значений: pin.PULL_UP, pin.PULL_DOWN или pin.NO_PULL. См. ниже обсуждение состояний извлечения по умолчанию.

get_pull()

Извлечь состояние контакта, одно из трех возможных значений: NO_PULL, PULL_DOWN, или PULL_UP.

get_mode()

Возвращает режим вывода. Когда контакт используется для определенной функции, например запись цифрового значения или чтение аналогового значения, режим вывода изменztncz. Пины могут иметь один из следующих режимов: "unused", "analog", "read_digital", "write_digital", "display", "button", "music", "audio", "touch", "i2c", "spi".

class MicroBitAnalogDigitalPin
read_analog()

Вернуть напряжение, приложенное к контакту, целое число между 0 (что означает 0 В) и 1023 (что означает 3,3 В).

write_analog(value)

Установите ШИМ-сигнал на контакт с рабочим циклом, пропорциональным предоставленный в value. value может быть либо целым числом, либо число с плавающей запятой от 0 до 1023.

set_analog_period(period)

Установите период выводимого ШИМ-сигнала на period в миллисекундах. Минимальное допустимое значение составляет 1 мс

set_analog_period_microseconds(period)

Установите период выводимого ШИМ-сигнала на period в микросекунды. Минимальное допустимое значение составляет 256 мкс.

class MicroBitTouchPin
is_touched()

Вернет True если к контакту прикасаются пальцем, иныче вернет False.

Примечание

Сенсорный режим по умолчанию для контактов на краевом разъеме: resistive. В версии V2 есть контакт логотип в состоянии capacitive.

Resistive touch Этот тест проводится путем измерения сопротивления между контактом и землей. Низкое сопротивление дает значение True. Для хорошего сигнала прикоснитесь второй рукой к заземлению.

Capacitive touch Этот тест проводится путем взаимодействия с электрическим полем конденсатора. использование пальца в качестве проводника. Capacitive touch не требует заземления как части цепи.

set_touch_mode(value)

Примечание

Сенсорный режим по умолчанию для контактов имеет состояние resistive. Пин логотип в версии V2 состояние capacitive.

Установите сенсорный режим для данного вывода. Значение может быть либо CAPACITIVE, либо RESISTIVE. Например, pin0.set_touch_mode(pin0.CAPACITIVE).

Режим вытягивания контакта настраивается автоматически, когда контакт меняется. Режимы ввода - когда вы используете read_analog / read_digital / is_touched. Режим извлечения по умолчанию для них, соответственно, NO_PULL, PULL_DOWN, PULL_UP. Вызов set_pull настроит контакт так, чтобы он был в read_digital.

Примечание

Micro:bit имеет внешние слабые (10M) подтягивающие устройства, установленные на штифтах. 0, 1 и 2 только для того, чтобы сенсорное распознавание работало.

Также на контакты 5 и 11 установлены внешние (10k) подтягивающие устройства, чтобы чтобы кнопки А и В работали.

Выводы GPIO также используются для отображения, как описано в таблице выше. Если вы хотите использовать эти штифты для другой цели, вам может потребоваться повернуть display off.

Смотрите edge connector data sheet.