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

Робототехническая система для обнаружения человека с использованием Arduino Uno

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

Arduino UNO
× 1
Совет по развитию, щит управления двигателем
× 1
Микро-серводвигатель SG90
× 1
Двигатель постоянного тока, 12 В
× 4
Ультразвуковой датчик - HC-SR04 (общий)
× 1
Датчик температуры и влажности DHT11 (4 контакта)
× 1
Батарея 9 В (стандартная)
× 1
Перемычки (общие)
× 1
Датчик PIR, 7 м
× 1

Необходимые инструменты и машины

Мультитул, отвертка
Паяльник (общий)
Флюс для припоя, пайка
Проволока для припоя, без свинца
Пистолет для горячего клея (общий)

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

IDE Arduino
Microsoft Windows 10
Приложение Control Center для Android

Об этом проекте

Эта система разрабатывает мобильную систему спасательных роботов на базе Arduino, чтобы вовремя помогать людям, оказавшимся в ловушке стихийных бедствий, таких как стихийные бедствия, землетрясения, наводнения и т. Д., Это дает своевременное и точное отражение динамической ситуации человека в регионе стихийного бедствия, например, в подземных регионах. в диспетчерскую, чтобы команда спасателей из экспертов и врачей могла быть отправлена ​​на место жертвы для первичного лечения и может быть отправлена ​​в безопасное место или в больницу. Весь процесс занимает несколько секунд, так как система управляется блоком Arduino. Датчики PIR - это пассивные инфракрасные датчики, которые обнаруживают движение людей с помощью изменений уровня инфракрасного излучения (тепла), излучаемого окружающими объектами. Человеческое тело излучает тепловое излучение с длиной волны около 10 микрон. Он принимается и обрабатывается датчиком PIR для обнаружения людей. Он работает при 5 В постоянного тока. Движение человека можно обнаружить, проверив внезапные изменения в окружающих ИК-образцах. Датчик препятствий обнаруживает препятствие и отправляет аналоговые сигналы на Arduino. Arduino запрограммирован на автоматическое управление роботом в зависимости от обнаруженного препятствия и отправку информации о человеке на место дистанционного управления через технологию Bluetooth. Данные принимаются на Базовую станцию ​​(Центр управления). Анализируя данные, команда Спасателей может предпринять необходимые шаги для спасения пойманных в ловушку людей.

Код

  • Human Detection.ino
Обнаружение человека.ino Arduino
 #include  // #include  // Вы можете загрузить библиотеку кода ниже # include  // // Конфигурация выводов Ultranic #define TRIG_PIN A0 # define ECHO_PIN A1 #define MAX_DISTANCE 400 # define MAX_SPEED 255 #define MAX_SPEED_OFFSET -8 #define COLL_DIST 20 # define TURN_DIST COLL_DIST + 10 # define ACT_TIME 250 int CalibrationTime =30; // время, когда датчик выдает низкий импульс long unsigned int lowIn; // количество миллисекунд, в течение которого датчик должен быть низким // прежде, чем мы предположим, что все движение остановилось long unsigned int pause =5000; логическое lockLow =true; логическое takeLowTime; int pirPin =A3; // цифровой вывод, подключенный к выходу датчика PIR int ledPin =A2; NewPing sonar (TRIG_PIN, ECHO_PIN, MAX_DISTANCE); AF_DCMotor motorR (1, MOTOR12_1KHZ); // Устанавливаем двигатель №1, 1 кГц PWMAF_DCMotor motorL (4, MOTOR12_1KHZ); // Устанавливаем двигатель №2, 1kHz PWM Servo myservo; // Устанавливаем сервообъект для управления сервоприводом String motorSet =""; int curDist =0, pos, speedSet =0; // int pos; // int speedSet =0; void setup () {Serial.begin (9600); pinMode (pirPin, ВХОД); pinMode (ledPin, ВЫХОД); digitalWrite (pirPin, LOW); // даем датчику время для калибровки Serial.print ("калибровка датчика"); for (int я =0; я <Время калибровки; я ++) {Serial.print ("."); задержка (1000); } Serial.println ("готово"); Serial.println («ДАТЧИК АКТИВЕН»); задержка (50); myservo.attach (9); // Устанавливаем прикрепление сервопривода к выводу 9 myservo.write (90); // Записываем 90 в сторону задержки прямого сервопривода (2000); motorSet ="ВПЕРЕД"; двигаться вперед(); } void loop () {checkPath (); если (digitalRead (pirPin) ==HIGH) {digitalWrite (ledPin, HIGH); // светодиод визуализирует состояние выходного контакта датчика if (lockLow) {// гарантирует, что мы дождемся перехода в LOW, прежде чем будут сделаны какие-либо дальнейшие выходные данные:lockLow =false; Serial.println ("---"); Serial.print («движение обнаружено в»); Serial.print (миллис () / 1000); Serial.println ("сек"); задержка (50); } takeLowTime =true; } если (digitalRead (pirPin) ==LOW) {digitalWrite (ledPin, LOW); // светодиод визуализирует состояние выходного контакта датчика if (takeLowTime) {lowIn =millis (); // сохраняем время перехода с высокого на LOW takeLowTime =false; // убедитесь, что это выполняется только в начале фазы LOW} // если датчик находится в низком состоянии дольше заданной паузы, // мы предполагаем, что движения больше не произойдет if (! lockLow &&millis () - lowIn> pause) {// гарантирует, что этот блок кода выполняется снова только после // обнаружения новой последовательности движения lockLow =true; Serial.print («движение закончилось в»); // вывод Serial.print ((millis () - pause) / 1000); Serial.println ("сек"); задержка (50); }}} void checkPath () {int curLeft =0; int curRight =0; int curFront =0; curDist =0; checkForward (); myservo.write (135); задержка (100); для (pos =135; pos> =45; pos - =45) {myservo.write (pos); задержка (170); curDist =readPing (); если (curDist  90) {veerRight (); }} void veerRight () {motorR.run (НАЗАД); motorL.run (ВПЕРЕД); задержка (ACT_TIME); motorR.run (ВПЕРЕД); motorL.run (ВПЕРЕД); motorSet ="FORWARD";} void veerLeft () {motorL.run (BACKWARD); motorR.run (ВПЕРЕД); задержка (ACT_TIME); motorL.run (ВПЕРЕД); motorR.run (ВПЕРЕД); motorSet ="FORWARD";} void checkCourse () {moveBackward (); задержка (ACT_TIME); moveStop (); setCourse ();} void setCourse () {если (pos <90) {turnRight (); } если (pos> 90) {turnLeft (); }} void moveBackward () {motorSet ="НАЗАД"; motorR.run (НАЗАД); // Повернуть правый мотор назад motorL.run (BACKWARD); // Повернуть левый двигатель назад на (speedSet =0; speedSet  

Схема

Эта блок-схема показывает интерфейс между датчиками и платой Arduino. На этой принципиальной схеме показаны конфигурации подключения между различными датчиками с платой Arduino Uno. Эта блок-схема показывает, как работает система

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

  1. ОБНАРУЖЕНИЕ ЧЕЛОВЕКА РОБОТА SONBI С ИСПОЛЬЗОВАНИЕМ KINECT И МАЛИНЫ PI
  2. Сборка Squid Games Doll с использованием Arduino UNO
  3. Отправка данных датчика от одного Arduino к другому с помощью Firebase
  4. Система посещаемости с использованием Arduino и RFID с Python
  5. Инфракрасный датчик сердцебиения своими руками с использованием Arduino
  6. Игрушка под управлением Android с использованием Raspberry Motor Shield
  7. IOT - Smart Jar с использованием ESP8266, Arduino и ультразвукового датчика
  8. WebServerBlink с использованием Arduino Uno WiFi
  9. Система мониторинга и обнаружения лесных пожаров (с SMS-оповещениями)
  10. Использование переносного датчика пульса MAX30100 с Arduino