Экономические и социальные перемены: факты, тенденции, прогноз. 2016. №6 (48).
УДК 004.8
Гранкин А. М. студент
3 курс, факультет «Информационные системы и технологии»
Поволжский государственный университет телекоммуникаций и информатики
Россия, г. Самара Ткаченко А. А. студент
2 курс, факультет «Информационные системы и технологии» Поволжский государственный университет телекоммуникаций и
информатики Россия, г. Самара Grankin A. M. student
3rd year, faculty "Information Systems and Technologies" Povolzhskiy State University of Telecommunications and Informatics
Russia, Samara Tkachenko A. A.
student
2rdyear, faculty "Information Systems and Technologies" Povolzhskiy State University of Telecommunications and Informatics
Russia, Samara
ПРОГРАММИРОВАНИЕ МИКРОКОНТРОЛЛЕРОВ. МИКРОКОНТРОЛЛЕР RASPBERRY PI
Аннотация: Статья посвящена программированию микроконтроллеров. В статье рассматривается необходимость программирования микроконтроллеров. Наглядно рассматривается на примере программирования микроконтроллера Raspberry Pi 2. Использование микроконтроллеров, рассматривается, как метод улучшения и автоматизации получения данных.
Ключевые слова: Программирование, микроконтроллер, Raspberry Pi, осциллограф, данные.
PROGRAMMING MICROCONTROLLERS. MICROCONTROLLER RASPBERRY PI
Abstract: The article is devoted to programming microcontrollers. The article discusses the need for programming microcontrollers. It is clearly seen on the example of programming the Raspberry Pi 2 microcontroller. The use of
microcontrollers is considered as a method for improving and automating data acquisition.
Keywords: Programming, microcontroller, Raspberry Pi, oscilloscope, data.
В повседневной жизни мы постоянно используем микроконтроллеры. Но они скрыты в различных электроприборах, таких как микроволновые печи, стиральные машины, DVD, MP3 и многое другое. Основная причина того, что они так часто используются - это удобство их использования, программирования и возможность изменения кода. [1]
Когда мы хотим изменить работу электронных схем, нам нужно её заново спроектировать. Нельзя использовать ту же схему.
Если использовать микроконтроллер, можно легко изменить работу, изменяя программу, работающую в микроконтроллере. Простота дизайна и гибкость использования - главные преимущества использования микроконтроллеров.
Микроконтроллер - это электронное устройство, которое функционирует как мини-компьютер, который управляет электрическими приборами. Внутренняя память может быть легко изменена, используя меньше аппаратных средств. Этот микроконтроллер может быть любым из доступных на рынке типов, таких как микроконтроллеры AVR производства Atmel, микроконтроллеры PIC производства Microchip и т. д.
Основной идеей проекта было создание прибора, который мог бы следить за импульсами электрического прибора и передавать полученные данные на экран. Для реализации проекта использовался микроконтроллер Raspberry Pi и осциллограф.
Осциллограф - это электронный испытательный прибор. Он позволяет наглядно представить и наблюдать переменные сигнальные напряжения. Обычно, они представляются как двухмерные диаграммы с одним или несколькими сигналами, построенными во времени.
Для визуализации сигнала осциллографа используется микроконтроллер Raspberry Pi и модуль аналого-цифрового преобразователя. Для получения сигнала выполняются цифро-аналоговые преобразования входного сигнала, подготавливаются полученные данные для представления, строятся данные по графику в реальном времени. [2]
Для создания данного проекта необходим микроконтроллер Raspberry Pi 2 (или другая модель), SD-карта на 8 или 16 GB, кабель LAN / Ethernet, источник питания или кабель USB, ADS1115 ADC, LDR (необязательно, как средство для тестирования), резистор, перемычки, макетная плата, монитор (чтобы увидеть рабочий стол Raspberry Pi).
Чтобы преобразовать аналоговые входные сигналы в цифровые сигналы, которые можно визуализировать с помощью Raspberry Pi, используется чип ADC1115 ADC. Этот чип важен тем, что у Raspberry Pi, в отличие от Arduino и большинства микроконтроллеров, нет встроенного аналого-цифрового преобразователя (АЦП). Достоинствами этого чипа является его высокое разрешение (16 бит) и его хорошее документное
описание. После подключения, включается питание и устанавливаются зависимости для Raspberry Pi.
Для начала необходимо включить светодиодный дисплей I2C для связи с Raspberry Pi и установить требования к программному обеспечению. Чтобы включить I2C, с терминала, необходимо запустить конфигурации и выбрать параметры интерфейса I2C и нажать «Включить».
Затем необходимо обновить Raspberry Pi, для обновления совместимости с последней версией программного обеспечения для установки Raspberry Pi. После завершения обновления следует установить зависимости, начиная с модуля python Adafruit для чипа ADS115, а затем установить необходимые сборки. [3]
Прежде чем перейти к остальной части проекта, важно протестировать библиотеку и убедиться, что АЦП может взаимодействовать с Raspberry Pi, и I2C. Для этого используется скрипт примера, который идёт вместе с библиотекой. Пример отображает значение четырех каналов на АЦП в табличной форме. Если модуль I2C включен и правильно подсоединён, появятся данные, отображенные в четырёх колонках.
Чтобы визуализировать данные, необходимо установить модуль matplotlib, который используется для построения графиков всех типов в python. Далее установить модуль pwnon Drawnow, этот модуль помогает предоставлять обновления графика в реальном времени.
После установки всех зависимостей можно начинать писать код. На этом этапе важно переключиться на монитор или использовать средство просмотра VNC, поскольку график, который будет нанесен, не будет отображаться на терминале.
В созданном файле импортируем модули, которые будут использоваться, затем создается экземпляр библиотеки ADS1x15. Затем следует установить коэффициент усиления АЦП. Существуют различные диапазоны усиления и должны выбираться на основе напряжения, которое вы ожидаете на входе АЦП. Данную информацию можно получить в техническом описании к ADS1015 / ADS1115. Сейчас примерное напряжение 0 - 4.09 V, поэтому будет использоваться коэффициент усиления 1. Затем необходимо создать переменные массива. В одной переменной будут храниться данные, которые будут построены, а во второй - подсчёты.
Далее подключаем функцию отображения данных в реальном времени и начинаем непрерывное преобразование АЦП, определяем канал АЦП и указываем коэффициент усиления. Все четыре канала ADC на ADS1115 могут быть прочитаны одновременно, но для этого проекта достаточно одного канала. [4]
Затем создаем функцию def makeFig, чтобы создать и установить атрибуты графика, которые будут содержать наш график в реальном времени. Также устанавливаем пределы оси y и вводим название графика и имя метки. Помимо этого, указываем канал, чтобы идентифицировать каждый сигнал, когда используются четыре канала АЦП.
Далее необходимо прочитать значение преобразования ADC, затем печатаем значение на терминале, и добавим данные в список после чего обновляем сюжет. Чтобы последние данные были доступны на графике, мы удаляем данные с индексом 0 после каждых 50 данных.
В результате мы можем увидеть изменение данных на осциллографе.
Заключение
Программируя, мы можем заставить микроконтроллеры делать для нас то, что мы хотим, чтобы зажечь светодиод, когда стемнеет, включить вентилятор, когда температура в помещении достигнет определенного уровня, включить двигатель, когда цепь детектирует определенный уровень инфракрасного тепла и т. д. [5] С помощью микроконтроллеров можно изменять работу схемы путем корректировки одной строки кода. Без микроконтроллера многие схемы не были бы физически невозможны, потому что единственным способом получить модификацию было бы поменять компоненты в схеме. Таким образом, микроконтроллеры значительно облегчают нам жизнь.
Использованные источники:
1. «Гид по выбору платформы разработки» [Электронный ресурс] - Режим доступа: http://amperka.ru/page/development-board-guide (дата обращения: 10.08.2018).
2. «Микроконтроллер Raspberry Pi 3 удобный и функциональный» [Электронный ресурс] - Режим доступа: https://arduinoplus.ru/raspberry-pi-3-mikrokontroller/ (дата обращения: 10.08.2018).
3. «PiScope (Raspberry Pi Based Oscilloscope)» [Электронный ресурс] - Режим доступа: https://www.instructables.com/id/PiScope-Raspberry-Pi-based-Oscilloscope/ (дата обращения: 11.08.2018).
4. «Build an oscilloscope using raspberry pi and arduino» [Электронный ресурс] - Режим доступа: https://www.raspberrypi.org/blog/build-oscilloscope-raspberry-pi-arduino/ (дата обращения: 11.08.2018).
5. «Why You Should Learn Microcontroller Programming» [Электронный ресурс] - Режим доступа: http://www.learningaboutelectronics.com/Articles/Microcontroller-programming.php (дата обращения: 11.08.2018).