Радар на ультразвуковом датчике

Информации о том, как подключить к Ардуино ультразвуковой датчик hc-sr04, как он работает навалом, даже как радар собрать. Чем отличается данный пост? Подключен цветной IPS  экран 240 х 240 на контроллере ST7789 и выводится информация в виде графика в полярных координатах.

Проблема данного дисплея в том, что он подключается по SPI протоколу, но на плате отсутствует вывод CS chip select.

Кто-то припаивает дополнительные проводки, но благо нашлись люди, написавшие библиотеку для данного случая https://github.com/ananevilya/Arduino-ST7789-Library

и нам понадобится ещё для работы с дисплеем https://github.com/adafruit/Adafruit-GFX-Library


Библиотека для серво двигателя Servo.h но она есть при установке программы Arduino IDE.

Из железа: Arduino UNO, серво двигатель, УЗ датчик hc-sr04, дисплей ST7789. УЗ датчик крепится к серводвигателю и получаем аналог антенны. Свой радар печатал на 3Д принтере.


Алгоритм работы программы:

1. Подключить дисплей, сбросить экран.

2. Установить  положение вала серводвигателя в начальное положение i=0

3. Провести измерение расстояния до объекта distance_sm .

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

5. Повернуть "антенну" на шаг в 1 градус.

6. Повторить п.3-п.5 при изменении угла поворота от 0 до 180 градусов.

7. Повторить п.3-п.5 от 180 до 0 градусов.

Повтор организуется циклом при увеличении счетчика


Теперь про отрисовку: экран обладает своим контроллером, мы не пишем программу для непосредственной отрисовки пикселей на уровне железа, нам достаточно знать протокол передачи данных и использовать команды, используемые экраном, в библиотеке всё реализовано на естественном языке. Когда мы передаем в экран информацию, которую хотим отобразить, она там так и остается, пока ей на замену не придет новая. И вот тут интересный подводный камень: если мы выведем число "42", а затем "57", то пиксели второго числа наложатся на пиксели первого и будет каша. Можно очистить весь экран, сбросить, и отрисовать новый кадр изображения заново, но это займет кучу машинного времени и изображение будет мигать при смене информации. Делаем по другому: в начале выводим число "42" зеленого цвета, а перед отрисовкой "57" мы рисуем "42" цветом фона, например черным, а потом рисуем уже новое число. Также надо делать и с линиями.


Приведем основные команды, имеющиеся в библиотеке для работы с экраном:


tft.init(240, 240); //инициализация экрана, задаем его размер

tft.fillScreen(BLACK); //закрасить черным


tft.setCursor(0,0); //установить курсор

tft.setTextColor(GREEN); //цвет текста

tft.setTextSize(0); //размер от 1 до 5

tft.print("Angle:"); //вывод текста

tft.println("Angle:"); //вывод текста, новый текст будет с новой строки

tft.drawLine(x1, y1,x2, y2, color); //линия

tft.drawRect(x1, y1 ,x2, y2, color); //прямоугольник

tft.fillRect(x1, y1 ,x2, y2, color); //прямоугольник закрашенный

tft.drawCircle(x, y, radius, color); //круг

tft.fillCircle(x, y, radius, color); //круг заполненный


Цвета задаются в шестнадцетиричном код или десятичном от 0x0000 до 0xFFFF, либо по  соответствующих в библиотеке именам: BLACK, BLUE, RED, GREEN, MAGENTA, YELLOW, WHITE.


Теперь небольшой пример программы для дисплея


#include <Adafruit_GFX.h> // библиотека для графики
#include <Arduino_ST7789.h> // бибилотека для ST7789 (с или без CS пина)
#include <SPI.h>
#define TFT_DC 8
#define TFT_RST 9
#define TFT_MOSI 11 // (sda вывод на экране)
#define TFT_SCLK 13 // (scl вывод на экране)
Arduino_ST7789 tft = Arduino_ST7789(TFT_DC, TFT_RST); //для дисплеев без CS
void setup(void) {
Serial.begin(9600);
Serial.print("Hello! ST7789 TFT Test");
tft.init(240, 240); // инициализация чипа ST7789, размер экрана 240x240
Serial.println("Initialized");
// large block of text
tft.fillScreen(BLACK);
tft.setCursor(0,0);
tft.setTextColor(GREEN);
tft.setTextSize(3);
tft.println("TEST");
delay(1000);
}
void loop() {
tft.fillScreen(BLACK);
for (int x=0; x < tft.width(); x+=6) {
tft.drawRect(tft.width()/2 -x/2, tft.height()/2 -x/2 , x, x, random(64000));
delay(100);
}
}

Итоговый код программы, используемой в проекте: https://www.dropbox.com/s/t1hu976zxwk6te7/radar_ekran.rar?dl...


Вы смотрите срез комментариев. Показать все
0
Автор поста оценил этот комментарий

"Радар" на ульстразвуке называется сонаром.

раскрыть ветку (20)
0
Автор поста оценил этот комментарий

Сонар - понятие относящиеся в основном к гидролокации и не обязательно работает на ультразвуке.

Радар же - локационное устройство без привязки к принципу действия

раскрыть ветку (17)
0
Автор поста оценил этот комментарий

Этимология этих слов говорит о принципах работы, окститесь)


so(und) na(vigation) and r(anging)

radio detection and ranging


https://en.wikipedia.org/wiki/Sonar

https://en.wikipedia.org/wiki/Radar

раскрыть ветку (16)
0
Автор поста оценил этот комментарий

Речь о практическом применении

Но вам же важнее этимология

раскрыть ветку (15)
0
Автор поста оценил этот комментарий

В моем первом комментарии речь как раз о неправильном употреблении технических терминов. Автор свою поделку мог назвать сонаром, (акустическим) локатором. Но никак не радаром.

раскрыть ветку (14)
0
Автор поста оценил этот комментарий

Скажите, на что похож корпус, где крепится датчик? На что похожа диаграмма, которая отрисовывается? Вот это всё вместе приводит к ассоциации с радаром, его тарелкой, монитором. И я уже писал, что "радар" в названии, чтобы подчеркнуть схожесть. А технически это называется ультразвуковым дальномером, а никак не сонаром.

раскрыть ветку (10)
0
Автор поста оценил этот комментарий

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

Это неправда.

раскрыть ветку (6)
0
Автор поста оценил этот комментарий

Почему же?

раскрыть ветку (5)
0
Автор поста оценил этот комментарий

Потому что "дальномер" - это прикладная функция, а "сонар" - это про принцип работы. Противопоставлять не связанные вещи - это такое себе.

раскрыть ветку (4)
0
Автор поста оценил этот комментарий

Нет. Сонар это также прибор. И уз дальномер также раскрывает принцип работы.

раскрыть ветку (3)
0
Автор поста оценил этот комментарий

Спор без аргументов - это бестолковый разговор) Ссылки на википедию тут неподалеку оставлял, надеюсь, будет полезно.

Доброй ночи!

раскрыть ветку (2)
0
Автор поста оценил этот комментарий

На локатор)

раскрыть ветку (2)
0
Автор поста оценил этот комментарий

А локатор вообще не имеет привязки к излучению.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Акустический локатор, если вам угодно)

0
Автор поста оценил этот комментарий

Изначально автор использовал слово "радар" в общепринятом смысле пока вы не полезли в бутылку со своим сонаром

раскрыть ветку (2)
0
Автор поста оценил этот комментарий

В общепринятом заблуждении. С автором мы все и обсудили, вы-то тут за что и с кем боретесь?

Иллюстрация к комментарию
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Взывал к практичности и здравому смыслу.

Спор прекращаю в виду безперспективности

Автор поста оценил этот комментарий

Особенность сонара - обнаружение подводных объектов, здесь корректнее эхолокатор, используя слово радар хотел подчеркнуть сходство по форме и принципу отображения с радаром.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

...а подводный сонар называется гидролокатором)

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества