Мазмуну:

OAREE - 3D басылган - Инженердик билим берүү үчүн тоскоолдуктардан алыс болуу (OAREE) Arduino менен: 5 кадам (сүрөттөр менен)
OAREE - 3D басылган - Инженердик билим берүү үчүн тоскоолдуктардан алыс болуу (OAREE) Arduino менен: 5 кадам (сүрөттөр менен)

Video: OAREE - 3D басылган - Инженердик билим берүү үчүн тоскоолдуктардан алыс болуу (OAREE) Arduino менен: 5 кадам (сүрөттөр менен)

Video: OAREE - 3D басылган - Инженердик билим берүү үчүн тоскоолдуктардан алыс болуу (OAREE) Arduino менен: 5 кадам (сүрөттөр менен)
Video: Бул Юра паркына окшош. 🦖🦕 - Mexico Rex GamePlay 🎮📱 🇰🇬 2024, Июнь
Anonim
Image
Image
OAREE - 3D Басылган - Инженердик билим берүү үчүн тоскоолдуктардан качуучу робот (OAREE) Arduino менен
OAREE - 3D Басылган - Инженердик билим берүү үчүн тоскоолдуктардан качуучу робот (OAREE) Arduino менен
OAREE - 3D Басылган - Инженердик билим берүү үчүн тоскоолдуктардан качуучу робот (OAREE) Arduino менен
OAREE - 3D Басылган - Инженердик билим берүү үчүн тоскоолдуктардан качуучу робот (OAREE) Arduino менен

OAREE (Инженердик билим берүү үчүн роботко тоскоолдук кылуу)

Дизайн: Бул көрсөтмөнүн максаты - жөнөкөй/компакт, 3D басып чыгаруучу, чогултууга оңой, кыймыл үчүн үзгүлтүксүз айлануу сервосун колдонгон жана мүмкүн болушунча аз сатып алынган бөлүктөрү бар OAR (Тоскоолдуктарды болтурбоочу робот) роботун долбоорлоо. Мен бул укмуштуудай роботту түзүүгө жетиштим деп ишенем жана ага OAREE (инженердик билим берүү үчүн тоскоолдук кылган робот) деп ат койдум. Бул робот тоскоолдуктарды сезет, токтойт, солго жана оңго карайт, андан кийин тоскоолдуксуз бурулуп, алдыга карай уланат.

Негизги маалымат: Интернетте роботторго жол бербөө үчүн көптөгөн тоскоолдуктар бар, бирок көпчүлүгү көлөмдүү, чогултуу кыйын жана кымбат. Бул роботтордун көбүндө Arduino коду бар, бирок жакшы ойлонулган, иштөөчү мисалды табуу кыйын болчу. Мен дагы дөңгөлөктөр үчүн (DC кыймылдаткычтарынын ордуна) үзгүлтүксүз айлануу серволорун колдонгум келди, ал азырынча жасала элек болчу. Ошентип, мен дүйнө менен бөлүшүү үчүн компакттуу, ойлоп табуучу OAR роботун иштеп чыгуу миссиясын баштадым.

Андан ары өнүктүрүү: Бул роботту мындан ары жакшыраак тактоо үчүн, линиянын кийинки жөндөмүнө IR сенсорлорун кошуп, тоскоолдуктар аралыкты көрсөтүү үчүн ЖК экранды жана башка көптөгөн нерселерди иштеп чыгуу мүмкүн.

Жабдуулар

  • 1x Arduino Uno -
  • 1x V5 сенсор калканы -
  • 1x 4xAA Батарея кармагычы/Өчүрүү менен - https://www.amazon.com/dp/B01DEYV00W/ref=cm_sw_em_…
  • 1x SG90 Servo -
  • 2x Үзгүлтүксүз айлануу сервосу -
  • Arduino үчүн 1x 9V батарея кубат кабели (ОПЦИОНАЛДУУ) -
  • 1x HC -SR04 Ultrasonic Sensor -
  • 4x Аял-Аял Jumper Wires-https://www.amazon.com/RGBZONE-120pcs-Multicolored…
  • 2x Резина Bands
  • 1x 9V Батарея (ОПЦИОНАЛДЫК)
  • 4x AA батареялары
  • 4x Small Screws (4 x 1/2 же окшош нерсе)
  • Phillips Screw Driver
  • Резина боолорун дөңгөлөктөргө бекитүү үчүн клей

1 -кадам: 3D Басып чыгаруу: Дене, Дөңгөлөктөр, Мрамор Кастер, 6мм Болт/Гайка жана УЗИ Sensor Mount

3D Басып чыгаруу: Дене, Дөңгөлөктөр, Мрамор Кастер, 6мм Болт/Гайка жана УЗИ Sensor Mount
3D Басып чыгаруу: Дене, Дөңгөлөктөр, Мрамор Кастер, 6мм Болт/Гайка жана УЗИ Sensor Mount
3D Басып чыгаруу: Дене, Дөңгөлөктөр, Мрамор Кастер, 6мм Болт/Гайка жана УЗИ Sensor Mount
3D Басып чыгаруу: Дене, Дөңгөлөктөр, Мрамор Кастер, 6мм Болт/Гайка жана УЗИ Sensor Mount
3D Басып чыгаруу: Дене, Дөңгөлөктөр, Мрамор Кастер, 6мм Болт/Гайка жана УЗИ Sensor Mount
3D Басып чыгаруу: Дене, Дөңгөлөктөр, Мрамор Кастер, 6мм Болт/Гайка жана УЗИ Sensor Mount

3D басып чыгаруунун 5 бөлүгү бар.

  1. Дене
  2. Wheels
  3. Мрамор Кастер
  4. 6мм Болт/Гайка (милдеттүү эмес, металл гайканы/болтту алмаштырса болот)
  5. Ultrasonic Sensor Mount

Бардык керектүү. STL файлдары бул көрсөтмөгө, ошондой эле Sketchup файлдарына киргизилген. 40% толтуруу сунушталат.

2 -кадам: Arduino программасы

Image
Image
Роботту чогултуу
Роботту чогултуу

Кодду Arduino UNOго жөнөтүү: Arduino IDEди колдонуу менен кодду (тиркелген файлда) Arduino модулуңузга жөнөтүңүз. Бул эскиз менен servo.h жана newping.h китепканаларын жүктөп, кошууңуз керек болот.

Код кылдат комментарийленген, андыктан ар бир буйруктун эмне кылганын көрө аласыз. Кааласаңыз, Ultrasonic Sensor аралыкты чоңураак же кичине мааниге оңой өзгөртө аласыз. Бул баштапкы код жана долбоорду андан ары өнүктүрүү үчүн кеңейтилет жана колдонулат.

// РОБОТТОН КАЧЫЛУУ // [email protected], [email protected], Чаттанугадагы ТН Университети, Электротехника, КҮЗ 2019 // Керектүү материалдар: // 1) Arduiino UNO, 2) Servo Sensor Shield v5.0, 3) HCSR04 Ultrasonic Sensor, 4) FS90 Servo (Ultrasonic Sensor үчүн) // 5 & 6) 2x TURINUOUSUS ROTATION SERVOS for дөңгөлөктөр үчүн // 7) Арткы касторго 16мм мрамор, 8 & 9) 2 дөңгөлөк үчүн резина боолор // 10- 15) 1x (4xAA) Батарея кармагыч/күйгүзүү өчүрүүчүсү, 16 & 17) 9V батарейкасы туташтыргычы бар Arduino UNO // 3D PRINT: // 18) ROBOT Body, 19 & 20) 2x Wheels, 21) Marble Caster, 22) Ultrasonic Sensor Тоо жана 6 мм бурама (тиркелген файлдарды караңыз) // -------------------------------------- -------------------------------------------------- ----------------------------------------- #кошуу // Серво китепканасын кошуу #кошуу // Newping китепканасын кошуу // ------------------------------------------- -------------------------------------------------- ------------------------------------ #define TRIGGER_PIN 1 2 // АКШ триггери Arduino 12ге #кнопкасын коюуга #аныктоо ECHO_PIN 13 // US Echo Ардуиного 13 -чекитке коюу #define MAX_DISTANCE 250 // Пингге чейинки аралык (максимум 250) int расстояние = 100; // ------------------------------------------------ -------------------------------------------------- ------------------------------- Servo US_Servo; // Ultrasonic Sensor Servo Servo Left_Servo; // Сол дөңгөлөк Servo Servo Right_Servo; // Right Wheel Servo NewPing sonar (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing казыктарын жана максималдуу аралыкты орнотуу. // ------------------------------------------------ -------------------------------------------------- ------------------------------ жараксыз орнотуу () // КИРГИЗҮҮ/ЧЫГАРУУ, КАЙСЫНА КОШУЛУУ КЕРЕК, БАШТАГЫ ПОЗИЦИЯ/КЫЙМЫЛДЫ орнотуу {pinMode (12, OUTPUT); // Trigger pin pinMode (13, INPUT) катары коюлган; // Эхо пин пин US_Servo.attach (11) катары коюлду; // US Servo 11 pin_USVServo.write (90) үчүн бекитилген; // US SERVO АЛГА КЫЛАТ

Left_Servo.attach (9); // Сол дөңгөлөк сервосу 9 -пинге

Left_Servo.write (90); // LEFT WHEEL SERVO STOP деп коюлду

Right_Servo.attach (10); // Оң дөңгөлөктүн сервосу 10 -пинге коюлган

Right_Servo.write (90); // RIGHT WHEEL SERVO STOP кечиктирүүгө коюлган (2000); // 2 секунд аралыкты күтө туруңуз = readPing (); // Түз алдыга кечиктирүүдө Ping Distance алуу (100); // 100 мс күтө moveForward (); // РОБОТ АЛГА КӨЧӨТ} // ------------------------------------------ -------------------------------------------------- ------------------------------------- void loop () {int distanceRight = 0; // АКШ аралыкты оңго карай 0 int distanceLeft = 0; // АКШдан солго чейинки аралыкты баштаңыз 0 //US_Servo.write(90); // Center US servo // delay (50); // US_Servo.write (70); // Бир аз Оңго Караңыз // кечигүү (250); // US_Servo.write (110); // Бир аз солго кара // кечигүү (250); // US_Servo.write (90); // Кароо борбору

if (расстояние <= 20) // Робот - КЫЙМЫЛ АЛГА {moveStop (); // Robot STOPS in distance = distanceLeft) // Кайсы багытка бурулууну чечиңиз {turnRight (); // Оң жагы эң чоң аралыкка ээ, ROBOT 0.3s кечигүү үчүн оңго бурулат (500); // Бул Кечигүү бурулуштун узундугун аныктайт moveStop (); // Robot STOPS} башка {turnLeft (); // Сол жактагы эң чоң аралык, ROBOT 0.3s кечигүү үчүн солго бурулат (500); // Бул Кечигүү бурулуштун узундугун аныктайт moveStop (); // Robot STOPS}} башка {moveForward (); // Робот АЛГА КЫЙЫЛДЫ} расстояние = readPing (); // АКШ жаңы саякат багыты үчүн NEW PING ОКУУДУ} // ----------------------------------- -------------------------------------------------- -------------------------------------------- int lookRight () // Ultrasonic Sensor LOOK RIGHT FUNCTION {US_Servo.write (30); // АКШ сервосу бурулуштун кечигүүсүнө (500) оңго жылат; int расстояние = readPing (); // Оңго кечиктирүү үчүн пинг маанисин коюу (100); US_Servo.write (90); // US servo MOVES to CENTER кайтуу аралыгы; // Аралык белгиленди} // ------------------------------------------ -------------------------------------------------- ------------------------------------- int lookLeft () // Ultrasonic Sensor LOOK LFFT FUNCTION {US_Servo.write (150); // АКШ сервосу бурулушту кечиктирүү үчүн СОЛГО КЕТТИ (500); int расстояние = readPing (); // Солго кечиктирүү үчүн пинг маанисин коюу (100); US_Servo.write (90); // US servo MOVES to CENTER кайтуу аралыгы; // Аралык белгиленди} // ------------------------------------------ -------------------------------------------------- ------------------------------------- int readPing () // Ultrasonic Sensor үчүн Ping Function окуу. {delay (100); // пингдердин ортосунда 100 мс (мин пинг убактысы = 0,29 мс) int cm = sonar.ping_cm (); // PING дистанциясы чогултулат жана см менен белгиленет, эгерде (cm == 0) {cm = 250; } см кайтаруу; } // ----------------------------------------------- -------------------------------------------------- -------------------------------- void moveStop () // ROBOT STOP {Left_Servo.write (90); // LeftServo 180 алдыга, 0 артка Right_Servo.write (90); // RightServo 0 алдыга, 180 артка} // --------------------------------------- -------------------------------------------------- ---------------------------------------- void moveForward () // ROBOT FORWARD {Left_Servo.write (180); // LeftServo 180 алдыга, 0 артка Right_Servo.write (0); // RightServo 0 алдыга, 180 артка} // --------------------------------------- -------------------------------------------------- ---------------------------------------- void moveBackward () // ROBOT BACKWARD {Left_Servo.write (0); // LeftServo 180 алдыга, 0 артка Right_Servo.write (180); // RightServo 0 алдыга, 180 артка} // --------------------------------------- -------------------------------------------------- ---------------------------------------- void turnRight () // ROBOT RIGHT {Left_Servo.write (180); // LeftServo 180 алдыга, 0 артка Right_Servo.write (90); // RightServo 0 алдыга, 180 артка} // --------------------------------------- -------------------------------------------------- ---------------------------------------- void turnLeft () // ROBOT LEFT {Left_Servo.write (90); // LeftServo 180 алдыга, 0 артка Right_Servo.write (0); // RightServo 0 алдыга, 180 артка} // --------------------------------------- -------------------------------------------------- ----------------------------------------

3 -кадам: Роботту чогултуу

Image
Image
Роботту чогултуу
Роботту чогултуу
Роботту чогултуу
Роботту чогултуу

Эми роботту чогултуу убактысы келди. Кадамдар төмөндө келтирилген.

1) Дөңгөлөктөргө Тегерек Серво Диск жана Резина Бандаларды Тиркөө: Бардык сервопластиктер пластикалык монтаждоочу аппараттар жана бурамалар менен келет. Тегерек дисктерди таап, аларды дөңгөлөктөрдүн тегиз жагындагы эки тешикке сайыңыз. Резина боолор кармашууну камсыз кылуу үчүн дөңгөлөктүн айланасына туура келет. Каучуктарды ордунда кармоо үчүн бир аз клей кошуп койсоңуз болот.

2) Мрамор Кастер Тиркемеси: Мрамор ташын арткы эки үч бурчтукка бекитүү үчүн эки кичине бураманы колдонуңуз. Мрамор кастинги арткы дөңгөлөктү алмаштыруунун жөнөкөй жолу болуп саналат жана арткы бурулушту камсыз кылат.

3) Серваларды уячаларга салыңыз (бурамалар талап кылынбайт): FS90 Servo (Ultrasonic Sensor үчүн) корпусунун алдыңкы уячасына салыңыз. Эки үзгүлтүксүз айлануу сервосу сол жана оң уячаларга жылат. Уячалар бекем орнотуу үчүн иштелип чыккан, андыктан servoлорду кармап туруу үчүн бурамалар талап кылынбайт. Серво зымдары уячалардын оюктарынан өтөрүн текшериңиз, алар корпустун арт жагына карайт.

4) 9V Батареяны жайгаштыруу (ОПЦИОНАЛДЫК): 9V батарейканы + Arduino электр туташтыргычын алдыңкы сервонун артына коюңуз.

5) Ultrasonic Sensor Mount Assembly: Ultrasonic Sensor монтаж табагынын түбүнө камтылган ак пластикалык серво тиркемелеринин бирин тиркөө үчүн эки кичинекей бураманы колдонуңуз. Андан кийин, 3D басылган 6мм болт/гайканы колдонуңуз (же металл болтту/гайканы алмаштырыңыз), УЗИ сенсорунун корпусун монтаж табакка тиркөө үчүн. Акырында, сенсорду төөнөгүчтөрдү өйдө каратып, корпустун арт жагына кыстарыңыз.

6) 4x AA Battery Case: АА батарейкасынын корпусун чоң тик бурчтуу аянтка коюңуз, күйгүзүү/өчүрүү өчүргүчүн артка каратып.

7) Arduino Uno + V5 Sensor Shield: Калканды Arduino -га тиркеп, батарейканын корпусунун жогору жагына орнотуңуз. Күч туташтыргычы солго каралышы керек.

Сиздин робот курулган! Эмне калды? Arduino жана туташтыруучу зымдарды программалоо: серволор, УЗИ сенсорлору жана электр менен камсыздоо.

4 -кадам: Sensor Wires тиркөө

Image
Image
Бүттү !!! 9V Arduino электр булагын туташтырыңыз, Батарея топтомун күйгүзүңүз жана OAREE менен тоскоолдуктардан алыс болууну баштаңыз
Бүттү !!! 9V Arduino электр булагын туташтырыңыз, Батарея топтомун күйгүзүңүз жана OAREE менен тоскоолдуктардан алыс болууну баштаңыз

V5 Shield үчүн Servo зымдарын туташтыруу:

  1. Сол тынымсыз айлануу сервери PIN 9га тиркелет
  2. Оң үзгүлтүксүз айлануу сервери PIN 10го тиркелет
  3. Front FS90 Servo PIN 11ге тиркелет

V5 Shield үчүн Ultrasonic Sensor Pins (4x Female to Female Jumper Wires аркылуу) туташтыруу:

  1. PIN 12ге кирүү
  2. PIN 13кө жаңыртуу
  3. VCC "V" менен белгиленген казыктардын бирине
  4. "G" менен белгиленген казыктардын бирине негиз

AA Батарея Корпусун V5 Shieldге туташтырыңыз:

  1. Оң, кызыл зымды VCC туташтыргычына туташтырыңыз
  2. Негизги, кара зымды Жерге туташтырыңыз

5 -кадам: Бүттү !!! 9V Arduino электр булагын туташтырыңыз, Батарея топтомун күйгүзүңүз жана OAREE менен тоскоолдуктардан алыс болууну баштаңыз

Image
Image
Бүттү !!! 9V Arduino электр булагын туташтырыңыз, Батарея топтомун күйгүзүңүз жана OAREE менен тоскоолдуктардан алыс болууну баштаңыз
Бүттү !!! 9V Arduino электр булагын туташтырыңыз, Батарея топтомун күйгүзүңүз жана OAREE менен тоскоолдуктардан алыс болууну баштаңыз

Бүттү !

1) 9V Arduino электр булагын туташтырыңыз (Милдеттүү эмес)

2) Батарея топтомун күйгүзүңүз

3) OAREE менен тоскоолдуктардан алыс болууну баштаңыз !!!

Мен ишенем, сен жаңы досуңду, OAREE, аны көргөндөн кийин тоскоолдукту сезип, артка кайтып, багытын өзгөртөсүң. OAREE УЗИ сенсору (дубал сыяктуу) өчүрө турган чоң объекттер менен эң жакшы иштейт. Беттеги аянты жана бурчтары кичинекей болгондуктан, отургучтун буттары сыяктуу кичинекей нерселерди пинг кылуу кыйынга турат. Сураныч, бөлүшүңүз, андан ары өнүктүрүңүз жана мага керектүү оңдоолорду же каталарды билдириңиз. Бул чоң үйрөнүү тажрыйбасы болду жана мен бул долбоорду меникиндей кызыктуу кылып өткөрөсүз деп ишенем!

Робототехника сынагы
Робототехника сынагы
Робототехника сынагы
Робототехника сынагы

Робототехника сынагында экинчи орунду ээледи

Сунушталууда: