Python для arm

Управління світлодіодом на Одноплатний комп'ютері

У продовження статті про одноплатні комп'ютери ми приступимо до їх розгляду і роботи з ними більш детально (приклади будуть показані на платах Raspberry Pi (RPi), OrangePi і PcDuino). Почнемо з управління світлодіодом. В цьому і подальших матеріалах будуть використовуватися за основу давно існуючі матеріали і будуть використані для створення наших проектів.

Почнемо ми з управління світлодіодом. Будуть представлені кілька методів управління і можливі варіанти в подальших ваших розробках.

Щоб спілкуватися з будь-якими зовнішніми пристроями і керувати ними, Raspberry Pi має на борту інтерфейс, званий GPIO. Це абревіатура від General Purpose Input Output, а по-російськи це низькорівневий інтерфейс введення-виведення прямого управління. Залежно від версії плати Raspberry на платі виведено 26 або 40 разьемов. Через цей інтерфейс Raspberry може слухати і віддавати команди будь-якого зовнішнього пристрою.

При роботі з GPIO важливо враховувати кілька моментів:

  1. Робоча напруга всіх висновків - 3,3 В. Випадкова подача на вхід GPIO більшої напруги (навіть 5 В з сусіднього штирька роз'єму) призводить до виходу з ладу не тільки цього висновку, а й взагалі всього Raspberry Pi.
  2. Контакти роз'єму P1 і нумерація портів GPIO не збігається, тому при програмуванні треба завжди пам'ятати, яка з нумераций використовується. Ще більше вони не збігаються в першій версії Raspberry (сподіваюся, зараз, якщо не докладати додаткових зусиль, купити вдасться тільки нову модель).
  3. Додатковим пунктом треба відзначити, що нумерація самих GPIO в Raspberry Pi йде з пропусками.
  4. GPIO висновки небуферізованни і незахищені, тому коротке замикання становить небезпеку для всього RPi, тому будьте обережні!
  5. Всі програми, які звертаються до GPIO контактів повинні бути запущені з правами адміністратора, інакше ви отримаєте повідомлення про помилку.

Для наших експериментів знадобляться:

  • світлодіод (1 шт.);
  • резистори на 220 Ом (1 шт.) і 10 кОм (2 шт.);
  • кнопка без фіксатора (2 шт.).

Моргнути светодиодом спочатку.

Зберемо схему на макетної беспаечное платі.

Python для arm

Тепер створимо файл з розширенням py наприклад led.py і внесемо в нього наступний код:

Розберемо що цей код робить:

Імпортуємо необхідні модулі для роботи з GPIO і часом.

Встановлюємо спосіб нумерації висновків GPIO.
GPIO.BCM - буде використовуватися нумерація GPIO висновків системи-на-кристалі Broadcom, що є ядром Raspberry Pi. GPIO.BOARD - буде використовуватися нумерація роз'єму на платі. Ми використовуємо нумерацію GPIO.

Конфігуріруем висновки на вхід або вихід.

GPIO.setup (22, GPIO.OUT) - конфігуруємо як вихід
GPIO.setup (22, GPIO.IN) - конфігуруємо як вихід

За допомогою необов'язкового параметра pull_up_down функції setup можна включити підтягаючий резистор до харчування або до землі:
GPIO.setup (22, GPIO.IN, pull_up_down = GPIO.PUD_UP) - підтяжка до харчування, 3,3 В;
GPIO.setup (22, GPIO.IN, pull_up_down = GPIO.PUD_DOWN) - підтяжка до землі, 0 В;
GPIO.setup (22, GPIO.IN, pull_up_down = GPIO.PUD_OFF) - підтяжка вимкнена.

Створюємо цикл, який буде включати світлодіод на 1 секунду, подова харчування або "1" (True) на 22 контакт GPIO і потім вимикати на 1 секунду.
Запустимо через термінал наш файл і побачимо в роботі наш світлодіод.

Доповнимо нашу програму можливістю керувати нашим светодиодом за допомогою двох кнопок. Одна кнопка буде включати, а друга вимикати.

Зберемо схему на макетної беспаечное платі.

Python для arm

Створимо файл led_button.py і внесемо в нього наступний код:

Розберемо що цей код робить:

Створимо цикл, який буде відповідати за взаємодію наших кнопок і світлодіода.

Якщо Кнопка №1 - ON / Кнопка №2 - OFF натиснута включити / вимкнути світлодіод, зробити паузу на 0.4 секунди (т.к людина натискає кнопку з невеликою затримкою, щоб уникнути виведення зайвої інформації в консоль доповнимо код невеликою затримкою) і вивести в консоль інформацію. що ми включили / вимкнули світлодіод.

Файли для Fritzing:

Поточний рейтинг: 4

Схожі статті