Подключение дисплея nokia 5110 к arduino nano. Сигналы и линии модуля. Преобразование растрового изображения в массив

В ходе которой к МКС был отправлен космический корабль Dragon c грузом на борту, примечательна многим. Не в последнюю очередь тем, что на МКС на этот раз отправили большое количество научного оборудования, которое позволит провести ряд интересных и нужных для науки экспериментов (их планируется провести около 250). Об этом на Geektimes .

Кроме того, эта миссия отличается от всех других тем, что к МКС был запущен космический грузовик, который уже был в космосе. Речь идет о повторном использовании космического корабля Dragon, который был ранее возвращен на Землю и восстановлен. Таким образом, SpaceX доказывает возможность удешевления полетов в космос и доставки грузов на борт МКС.

Вообще говоря, грузовик Dragon (разные корабли) побывал в космосе уже 13 раз, 11 запусков было осуществлено в рамках программы НАСА, которая носит название . Всего в рамках этой программы к МКС летает два космических грузовика. Dragon - первый, а Cygnus от Orbital ATK - второй. Но лишь Dragon пережил полет в космос, спуск на Землю и повторный полет.

Dragon состоит из герметичной капсулы, которая несет груз на станцию и забирает отходы с МКС, а также негерметичного отсека, в котором помещаются солнечные батареи. К сожалению, восстановить можно лишь саму капсулу, а вот отсек с батареями и прочим оборудованием повторно использовать нельзя - он сгорает в атмосфере при возвращении. Перед возвращением капсула отделяется от этого отсека.

Первый Dragon полетел в космос в декабре 2010 года, два раза облетев Землю и погрузившись после этого в воды Тихого океана. В мае 2012 на орбиту отправился второй грузовик, который уже полетел к МКС. Кстати, Dragon, который понес свой груз к орбитальной станции сейчас, впервые полетел в космос в 2014 году, в рамках миссии CRS-4. Запущен он был с Мыса Канаверал 21 сентября, а с МКС грузовик состыковался 23-го. 25 октября Dragon вернулся на Землю, спустившись на парашютах. Система не приземлилась, а приводнилась в Тихом океане.

После этого грузовик тщательно осмотрели и восстановили, включая замену теплового щита. Как оказалось, большинство систем Dragon сохранились в работоспособном состоянии.

Всего два месяца назад SpaceX успешно запустила в космос Falcon 9, повторно использовав первую посадочную ступень. Тогда компания отправила на орбиту спутник связи SES-10. Кстати, в ходе текущей миссии компании снова удалось вернуть первую стартовую ступень ракеты на Землю.

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

Изначально компания пыталась вернуть первую ступень своей ракеты на парашютах. Но ступень не выдержала вход в атмосферу, так что парашюты были бесполезны. После обновления в 2009 году конфигурация ступени была изменена. Так, двигатели Merlin-1C заменили на Merlin-1D, а также расположили двигатели не квадратом, а восьмиугольником, назвав эту конфигурацию OctaWeb.

В 2015 году была представлена финальная разработка, получившая название Falcon 9 Full Thrust. Здесь было сделано много изменений по сравнению с первыми вариантами. Одна из важнейших модификаций - сжатие жидкого кислорода при сверхнизкой температуре, что позволило заливать больший объем окислителя. Кстати, в 2016 году при заправке Falcon 9 случилась , в результате чего ракета взорвалась. SpaceX одновременно лишилась ракеты и груза на сумму в $200 млн. Тогда специалисты выяснили, что проблема была в тонкой переборке резервуара, которая не выдержала повышенного давления. Вообще говоря, тогда случилось сразу несколько технических сбоев одновременно, что считалось практически невозможным, что и привело к взрыву.

Ракета-носитель Falcon 9 впервые совершила плановый полет в июне 2010 года. Ну а сегодня в 00:07 по московскому времени состоялся очередной запуск, в ходе которого на МКС планируется доставить около трех тонн груза. Через 8 минут после старта первая ступень ракеты успешно приземлилась недалеко от места запуска. Космический корабль Dragon был успешно выведен на промежуточную орбиту. Этот запуск должны были выполнить еще в 2 июня, но из-за неблагоприятной погоды его пришлось перенести на 4 июня, причем решение об отмене запуска было принято за считанные минуты до старта.

Что же, осталось лишь поздравить SpaceX с очередным успехом.

Новые статьи

● Проект 16: Графический индикатор. Подключение дисплея Nokia 5110

В этом эксперименте мы рассмотрим графический дисплей Nokia 5110, который можно использовать в проектах Arduino для вывода графической информации.

Необходимые компоненты:

Жидкокристаллический дисплей Nokia 5110 - монохромный дисплей с разрешением 84×48 на контроллере PCD8544, предназначен для вывода графической и текстовой информации. Питание дисплея должно лежать в пределах 2.7-3.3 В (максимум 3.3 В, при подаче 5 В на вывод VCC дисплей может выйти из строя). Но выводы контроллера толерантны к +5 В, поэтому их можно напрямую подключать к входам Arduino. Немаловажный момент - низкое потребление, что позволяет питать дисплей от платы Arduino без внешнего источника питания.
Схема подключения Nokia 5110 к Arduino показана на рис. 16.1.

Рис. 16.1. Схема подключения Nokia 5110 к Arduino

Для работы с дисплеем Nokia 5110 будем использовать библиотеку Adafruit_GFX, которая имеет богатые возможности для вывода графики и текста. В нашем эксперименте мы будем получать данные освещенности с фоторезистора, подключенного к аналоговому входу Arduino A0, и выводить данные освещенности в числовом и графическом представлениях. Схема подключения показана на рис. 16.2.

Рис. 16.2. Схема подключения Nokia 5110 и фоторезистора к Arduino

Код скетча нашего эксперимента показан в листинге 16.1. Мы считываем данные с фоторезистора и отображаем числовое значение, а также в графическом виде (прогресс-бар) значение освещенности в процентах от максимального значения. Значения минимальной и максимальной освещенности берем из эксперимента 13.

// Подключение библиотеки #include #include // PIN 7 - RST Pin 1 on LCD // PIN 6 - CE Pin 2 on LCD // PIN 5 - DC Pin 3 on LCD // PIN 4 - DIN Pin 4 on LCD // PIN 3 - CLK Pin 5 on LCD Adafruit_PCD8544 display = Adafruit_PCD8544(3 , 4 , 5 , 6 , 7 ); const int LIGHT=A0; // Контакт A0 для входа фоторезистора const int MIN_LIGHT=200 ; // Нижний порог освещенности const int MAX_LIGHT=900 ; // Верхний порог освещенности // Переменная для хранения данных фоторезистора int val1,val2 = 0 ; void setup () { display.begin(); // установить контраст фона экрана // очень важный параметр! display.setContrast(60 ); display.clearDisplay(); // очистить экран delay(2000 ); } void loop () { val1 = analogRead(LIGHT); // Чтение показаний фоторезистора drawText(val1,1 ); // вывести текст // масштабирование значения потенциометра к 0-75 val2= map (val1, MIN_LIGHT, MAX_LIGHT, 0 , 75 ); // вывод черного прямоугольника в % display.fillRect(5 , 25 , val2, 10 , 1 ); // вывод белой части прямоугольника display.fillRect(5 +val2,25 , 75 -val2, 10 , 0 ); display.display(); delay(1000 ); // пауза перед новым измерением drawText(val1,2 ); // стереть текст } // процедура вывода текста void drawText (unsigned long num,int color) { display.setTextSize(2 ); // размер шрифта display.setCursor(20 ,5 ); // позиция курсора if (color==1 ) display.setTextColor(BLACK); // вывести значение else display.setTextColor(WHITE); // стереть (белым по белому) display.print(num); }
Порядок подключения:

1. Подключаем датчик дисплея Nokia 5110 и фоторезистор по схеме на рис. 16.2.
2. Загружаем в плату Arduino скетч из листинга 16.1.
3. Перекрывая рукой поток света, смотрим на экране дисплея изменение показаний освещенности.

Листинги программ

Инструкция

Подключим ЖК экран от Nokia 5110 к Arduino по приведённой схеме.

Для работы с этим LCD экраном написано много библиотек. Предлагаю воспользоваться этой: http://www.rinkydinkelectronics.com/library.php?id=44 (скачивание файла LCD5110_Basic.zip ).
Для установки разархивируем файл в директорию Arduino IDE/libraries/ .
Библиотека поддерживает следующие возможности.
LCD5110(SCK, MOSI, DC, RST, CS); - объявление ЖК экрана с указанием соответствия пинам Arduino;
InitLCD(); - инициализация дисплея 5110 с опциональным указанием контрастности (0-127), по умолчанию используется значение 70;
setContrast(contrast); - задаёт контрастность (0-127);
enableSleep(); - переводит экран в спящий режим;
disableSleep(); - выводит экран из спящего режима;
clrScr(); - очищает экран;
clrRow(row, , ); - очистка выбранной строки номер row, от позиции start до end;
invert(true); и invert(false); - включение и выключение инверсии содержимого LCD экрана;
print(string, x, y); - выводит строку символов с заданными координатами; вместо x-координаты можно использовать LEFT, CENTER и RIGHT; высота стандартного шрифта 8 точек, поэтому строки должны идти с интервалами через 8;
printNumI(num, x, y, , ); - вывести целое число на экран на заданной позиции (x, y); length - желаемая длина числа; filler - символ для заполнения "пустот", если число меньше желаемой длины; по умолчанию это пустой пробел " ";
printNumF(num, dec, x, y, , , ); - вывести число с плавающей запятой; dec - число знаков после запятой; divider - знак десятичного разделителя, по умолчанию точка ".";
setFont(name); - выбрать шрифт; встроенные шрифты называются SmallFont и TinyFont; вы можете определить свои шрифты в скетче;
invertText(true); и invertText(false); - инверсия текста вкл./выкл.;
drawBitmap(x, y, data, sx, sy); - вывести картинку на экран по координатам x и y; data - массив, содержащий картинку; sx и sy - ширина и высота рисунка.

Напишем такой скетч. Сначала подключаем библиотеку, затем объявляем экземпляр класса LCD5110 с назначением выводов.
В процедуре setup() инициализируем ЖК экран.
В процедуре loop() очищаем экран и пишем маленьким шрифтом произвольный текст, под ним - средним шрифтом выводим счётчик секунд.

Давайте выведем на экран картинку. Для этого подготовим монохромное изображение, которое хотим вывести на экран Nokia 5110. Помните, что разрешение экрана 48 на 84 точки, и картинка должна быть не больше. На странице http://www.rinkydinkelectronics.com/t_imageconverter_mono.php преобразуем изображение в массив битов. Скачаем полученный файл с расширением "*.c" и добавим его к проекту через меню: Эскиз -> Добавить файл... или просто поместим файл в директорию скетча, а затем перезагрузим среду разработки Arduino IDE.