Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Портативный дальномер на Arduino Nano: HC-SR04, питание 18650, 3D-корпус

Компоненты и материалы

Компонент Количество Примечание
Arduino Nano R3 1
Ультразвуковой датчик HC-SR04 1
Аккумулятор 18650 1
Зарядный модуль TP4056 1
DC-DC повышающий преобразователь 5V 1
Зуммер 1
Потенциометр (регулятор порога) 1
Кнопка-переключатель (slide switch) 1
Светодиоды (красный x2, зеленый, синий) 4
Резисторы 330 Ом 2
Болты M3x10 мм 4
Провода 18 AWG 1 набор
3D-печатные детали корпуса (3 шт.) 1 комплект
Трехгранный адаптер для штатива 1

Инструменты

Приложения и сервисы

О проекте

Введение

Кафедра физкультуры колледжа Lehman проводила исследования тренировок с весами. Проблема: непоследовательность амплитуды движений искажала данные. Нужен был прибор, фиксирующий полную амплитуду повторений для тренажеров и свободных весов.

Требования:

Код

Требуется библиотека NewPing. Глобальные настройки:

int frequency = 700;      // Частота зуммера, Гц
int lower_bound = 60;     // Мин. расстояние, мм
int upper_bound = 200;    // Макс. расстояние, мм

При включении 3 звуковых сигнала (успешная загрузка). В цикле loop() continuamente опрашивается датчик, расстояние сравнивается с порогом от потенциометра (маппинг 0-1023 → lower_bound-upper_bound). Если объект ближе порога — зуммер пищит, горит индикатор.

3D-печать

Файлы на Thingiverse. Модель с учетом возможностей FDM: фаски 45°, щель для стыковки. Время печати (Anet A8):

Портативный дальномер на Arduino Nano: HC-SR04, питание 18650, 3D-корпус
Портативный дальномер на Arduino Nano: HC-SR04, питание 18650, 3D-корпус

Сборка

  1. Детали примеряются без пайки.
  2. Провода из старых IDE-кабелей (удобные пучки).
  3. SMD-светодиоды на TP4056 заменены на выводные 3 мм (с резисторами на плате).
  4. Arduino Nano имеет всего 2 GND и 1 VCC пятачок — использована стрип-платы для разводки питания (перемычка на стрипе разрезана, чтобы не замкнуть 5V и GND).
  5. Электроника паяется вне корпуса, периодически примеряется для проверки длины проводов.
  6. Вал потенциометра укорочен на 6 мм.
  7. Аккумулятор 18650 припаян напрямую (не лучшая практика; лучше точечная сварка никелевой ленты).
  8. Компоненты зафиксированы горячим клеем (для прототипа допустимо, для серии — механическое крепление).
Портативный дальномер на Arduino Nano: HC-SR04, питание 18650, 3D-корпус
Портативный дальномер на Arduino Nano: HC-SR04, питание 18650, 3D-корпус
Портативный дальномер на Arduino Nano: HC-SR04, питание 18650, 3D-корпус
Портативный дальномер на Arduino Nano: HC-SR04, питание 18650, 3D-корпус
Портативный дальномер на Arduino Nano: HC-SR04, питание 18650, 3D-корпус
Портативный дальномер на Arduino Nano: HC-SR04, питание 18650, 3D-корпус
Портативный дальномер на Arduino Nano: HC-SR04, питание 18650, 3D-корпус
Портативный дальномер на Arduino Nano: HC-SR04, питание 18650, 3D-корпус
Портативный дальномер на Arduino Nano: HC-SR04, питание 18650, 3D-корпус
Портативный дальномер на Arduino Nano: HC-SR04, питание 18650, 3D-корпус
Портативный дальномер на Arduino Nano: HC-SR04, питание 18650, 3D-корпус
Портативный дальномер на Arduino Nano: HC-SR04, питание 18650, 3D-корпус

Итоги и планы

Ультразвуковой датчик имеет широкий угол (~30°), дает ложные срабатывания. Лучше ИК-датчик (уже луч, но до ~1 м). Планирую v2: LiPo вместо 18650, кастомный PCB, упрощенный штативный крепеж (гайка 1/4" вместо тяжелого адаптера). Альтернативная схема: датчик на движущейся штанге, направленный в пол — исключает широкий угол. Заказчик доволен прототипом за 2 недели.

Код

RangeDetectionDevice.ino

/** Viktor Silivanov 3/22/2018 Portable distance detection device using the HC-SR04 Ultrasonic sensor with distance adjustment for triggering the buzzer. **/
#include <NewPing.h>
#define wiper A5
#define echo 2
#define trig 3
#define ON_LED 7
#define buzzer 8
#define buzzer_LED 9

int frequency = 700;
int lower_bound = 60;
int upper_bound = 200;
int buzz_time = 250;
int buzz_delay = 280;
int max_distance = 400;
int i = 0;
int distance;
int threshold;
NewPing sonar(trig, echo, max_distance);

void setup() {
  Serial.begin(9600);
  pinMode(trig, OUTPUT);
  pinMode(echo, INPUT);
  pinMode(buzzer, OUTPUT);
  pinMode(buzzer_LED, OUTPUT);
  pinMode(ON_LED, OUTPUT);
  digitalWrite(ON_LED, HIGH);
  while(i < 3){
    digitalWrite(buzzer_LED, HIGH);
    tone(buzzer, frequency, buzz_time);
    delay(buzz_delay);
    i++;
  }
  digitalWrite(buzzer_LED, LOW);
}

void loop() {
  distance = sonar.ping_cm();
  threshold = analogRead(wiper);
  threshold = map(threshold, 0, 1023, lower_bound, upper_bound);
  if(distance != 0 && distance < threshold){
    tone(buzzer, frequency);
    digitalWrite(buzzer_LED, HIGH);
  } else {
    noTone(buzzer);
    digitalWrite(buzzer_LED, LOW);
  }
  // serial_test(); // раскомментируйте для отладки
}

void serial_test(){
  Serial.print("Ping: "); Serial.print(distance); Serial.println("cm");
  Serial.print("Range: ["); Serial.print(lower_bound); Serial.print(", "); Serial.print(upper_bound); Serial.println("] cm");
  Serial.print("Threshold: "); Serial.print(threshold); Serial.println("cm");
  delay(100);
}

3D-модели

Все 3 детали в одном файле на Thingiverse.

Схемы

Портативный дальномер на Arduino Nano: HC-SR04, питание 18650, 3D-корпус

Производственный процесс

  1. TinyML-детектор языка на Arduino Nano 33 BLE Sense с Edge Impulse
  2. Создание игры в реальном времени на Arduino Nano с гироскопом MPU-6050 и OLED-дисплеем
  3. Цифровые кости на Arduino: генератор случайных чисел с LCD-дисплеем и кнопкой
  4. Создание рулетки на 37 светодиодов с Arduino Nano
  5. Мини-аркада на ATtiny85: Snake — ручная OLED-консоль своими руками
  6. Сборка аудиореактивной настольной лампы на Arduino Nano
  7. Автономный робот-следопыт с распознаванием лиц на Arduino Nano и OpenCV
  8. Медное гальваническое покрытие: умная система на Arduino UNO
  9. NeoPixel Matrix Pong на Arduino Nano: неоновая игра Pong на матрице 15×10
  10. Портативная станция мониторинга температуры: TMP36 + LCD дисплей