Мазмұны:

OAREE - 3D басып шығарылған - Инженерлік білімге кедергі жасамайтын робот (OAREE) Arduino көмегімен: 5 қадам (суреттермен)
OAREE - 3D басып шығарылған - Инженерлік білімге кедергі жасамайтын робот (OAREE) Arduino көмегімен: 5 қадам (суреттермен)

Бейне: OAREE - 3D басып шығарылған - Инженерлік білімге кедергі жасамайтын робот (OAREE) Arduino көмегімен: 5 қадам (суреттермен)

Бейне: OAREE - 3D басып шығарылған - Инженерлік білімге кедергі жасамайтын робот (OAREE) Arduino көмегімен: 5 қадам (суреттермен)
Бейне: Летний Ламповый стрим. Отвечаем на вопросы. 2024, Қараша
Anonim
Image
Image
OAREE - 3D басып шығарылған - Arduino көмегімен инженерлік білімге кедергі жасамайтын робот (OAREE)
OAREE - 3D басып шығарылған - Arduino көмегімен инженерлік білімге кедергі жасамайтын робот (OAREE)
OAREE - 3D басып шығарылған - Arduino көмегімен инженерлік білімге кедергі жасамайтын робот (OAREE)
OAREE - 3D басып шығарылған - Arduino көмегімен инженерлік білімге кедергі жасамайтын робот (OAREE)

OAREE (Инженерлік білімге арналған роботты болдырмау)

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

Анықтама: Интернетте роботтардан аулақ болатын көптеген кедергілер бар, бірақ олардың көпшілігі үлкен, жинау қиын және қымбат. Бұл роботтардың көпшілігінде Arduino коды бар, бірақ жақсы ойластырылған жұмыс үлгісін табу қиын болды. Мен сондай -ақ дөңгелектерге (тұрақты ток қозғалтқыштарының орнына) үздіксіз айналатын серводы қолданғым келді, ол әлі жасалмаған. Сонымен, мен әлеммен бөлісу үшін ықшам, өнертабысты OAR роботын жасау миссиясын бастадым.

Қосымша даму: Бұл роботы пингтің дәлдігін жақсарту үшін, сызықты қадағалау мүмкіндігіне IR сенсорларын, кедергілер аралығын көрсетуге арналған СКД экранын және тағы басқаларды қосу үшін әрі қарай дамытуға болады.

Жабдықтар

  • 1x Arduino Uno -
  • 1x V5 сенсорлық қалқаны -
  • Қосулы/қосқышы бар 1x 4xAA батарея ұстағышы -
  • 1x SG90 сервисі -
  • 2x үздіксіз айналу серверлері -
  • Arduino үшін 1х 9В батарея қуаты кабелі (ҚОСЫМША) -
  • 1x HC -SR04 ультрадыбыстық сенсор -
  • 4х әйел-секіргіш сымдар-https://www.amazon.com/RGBZONE-120pcs-Multicolored…
  • 2x резеңке таспалар
  • 1х 9В батарея (ҚОСЫМША)
  • 4x AA батареялары
  • 4x шағын бұрандалар (4 x 1/2 немесе ұқсас)
  • Филлипс бұрағыш
  • Дөңгелектерге резеңке таспаларды бекітуге арналған желім

1 -қадам: 3D басып шығару: корпус, дөңгелектер, мәрмәр құюшы, 6 мм болт/гайка және ультрадыбыстық датчик

3D басып шығару: корпус, дөңгелектер, мәрмәр құюшы, 6 мм болт/гайка және ультрадыбыстық датчик
3D басып шығару: корпус, дөңгелектер, мәрмәр құюшы, 6 мм болт/гайка және ультрадыбыстық датчик
3D басып шығару: корпус, дөңгелектер, мәрмәр құюшы, 6 мм болт/гайка және ультрадыбыстық датчик
3D басып шығару: корпус, дөңгелектер, мәрмәр құюшы, 6 мм болт/гайка және ультрадыбыстық датчик
3D басып шығару: корпус, дөңгелектер, мәрмәр құюшы, 6 мм болт/гайка және ультрадыбыстық датчик
3D басып шығару: корпус, дөңгелектер, мәрмәр құюшы, 6 мм болт/гайка және ультрадыбыстық датчик

3D басып шығарудың 5 бөлімі бар.

  1. Дене
  2. Дөңгелектер
  3. Мрамор құюшы
  4. 6 мм болт/гайка (міндетті емес, металл гайканы/болтты ауыстыруға болады)
  5. Ультрадыбыстық датчикті орнату

Барлық қажетті. STL файлдары осы нұсқаулыққа және Sketchup файлдарына енгізілген. 40% толтыру ұсынылады.

2 -қадам: Arduino бағдарламасын жасаңыз

Image
Image
Роботты жинаңыз
Роботты жинаңыз

Arduino UNO -ға код жіберу: Arduino IDE көмегімен кодты (қоса берілген файлда) Arduino модуліне жіберіңіз. Бұл нобаймен servo.h және newping.h кітапханаларын жүктеу және қосу қажет болады.

Код мұқият түсіндірілген, сондықтан сіз әр команданың не істейтінін көре аласыз. Қажет болса, ультрадыбыстық сенсордың қашықтығын үлкен немесе кіші мәнге оңай өзгертуге болады. Бұл бастапқы код және оны кеңейтуге және одан әрі жобаны әзірлеуге қолдануға арналған.

// РОБОТҚА КЕДІРІК БОЛМАУ // [email protected], [email protected], Чаттануга университеті, Электротехника, Күз 2019 // Қажетті материалдар: // 1) Arduiino UNO, 2) Servo Sensor Shield v5.0, 3) HCSR04 ультрадыбыстық сенсор, 4) FS90 Servo (ультрадыбыстық сенсор үшін) // 5 & 6) дөңгелектерге арналған 2x үздіксіз айналу серверлері // 7) артқы касторға арналған 16 мм мәрмәр, 8 және 9) дөңгелектерге арналған 2 резеңке таспа // 10- 15) 1x (4xAA) Қосу/өшіру қосқышы бар батарея ұстағыш, 16 & 17) Arduino UNO қуат көзіне қосқышы бар 9В батарея // 3D PRINT: // 18) ROBOT корпусы, 19 және 20) 2х дөңгелектер, 21) мәрмәр құюшы, 22) ультрадыбыстық сенсор Бекіту және 6 мм бұранда (бекітілген файлдарды қараңыз) // -------------------------------------- -------------------------------------------------- ----------------------------------------- #include // Сервистік кітапхананы қосу #include // Newping кітапханасын қосыңыз // ------------------------------------------- -------------------------------------------------- ------------------------------------ #анықтау TRIGGER_PIN 1 2 // АҚШ -тың триггері Arduino -да 12 -ші түйреу үшін #анықтаңыз ECHO_PIN 13 // US Echo Arduino -дағы 13 -ші нүктеге #define MAX_DISTANCE 250 // Пингке дейінгі қашықтық (максимум - 250) int қашықтық = 100; // ------------------------------------------------ -------------------------------------------------- ------------------------------ Сервис US_Servo; // Ультрадыбыстық сенсор Servo Servo Left_Servo; // Сол жақ доңғалақ Servo Servo Right_Servo; // Оң жақ доңғалақ Servo NewPing sonar (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing түйреуіштер мен максималды қашықтықты орнату. // ------------------------------------------------ -------------------------------------------------- -------------------------------- void setup () // INPUT/OUTPUTS, WHERE ATCHH, INETITION POSITIION/HOEMENT орнату {pinMode (12, OUTPUT); // Trigger pin pinMode (13, INPUT) ретінде орнатылды; // US_Servo.attach (11) кірісі ретінде жаңғырық түйіні орнатылды; // US Servo 11 US_Servo.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 (); // Пинг қашықтығын тура алға қою кідірісінде алу (100); // 100 ms 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) // Робот - MOVES FORWARD {moveStop (); // Robot STOPS in distance = distanceLeft) // Қай бағытқа бұрылатынын шешіңіз {turnRight (); // Оң жақта ең үлкен қашықтық бар, ROBOT 0,3 секундқа кешіктіру үшін оңға бұрылады (500); // This Delay анықтайды бұрылу ұзындығы moveStop (); // Robot STOPS} басқа {turnLeft (); // Сол жақтағы ең үлкен қашықтық, ROBOT LEFT LEGFT 0.3s кідірісімен (500); // This Delay анықтайды бұрылу ұзындығы moveStop (); // Robot STOPS}} else {moveForward (); // Робот алға жылжиды} қашықтық = readPing (); // АҚШ жаңа саяхат бағыты үшін NEW PING ОҚЫДЫ} // ----------------------------------- -------------------------------------------------- ------------------------------------------ int lookRight () // Ультрадыбыстық сенсор LOOK RIGHT FUNCTION {US_Servo.write (30); // АҚШ серво бұрыштық кідіріске (500) оңға жылжиды; int қашықтығы = readPing (); // Оңға кешіктіру үшін пинг мәнін орнатыңыз (100); US_Servo.write (90); // АҚШ серво MOVES TO CENTER қайту қашықтығы; // Қашықтық орнатылды} // ------------------------------------------ -------------------------------------------------- ------------------------------------- int lookLeft () // Ультрадыбыстық сенсор LEOK LEFT FUNCTION {US_Servo.жазу (150); // АҚШ серво MOVES LEFT бұрышының кешігуіне (500); int қашықтығы = readPing (); // Сол жақ кідіріс үшін пинг мәнін орнату (100); US_Servo.write (90); // АҚШ серво MOVES TO CENTER қайту қашықтығы; // Қашықтық орнатылды} // ------------------------------------------ -------------------------------------------------- ------------------------------------- int readPing () // Ультрадыбыстық сенсорға арналған Ping функциясын оқу. {кешіктіру (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.жазу (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.жазу (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 (ультрадыбыстық сенсор үшін) корпусының алдыңғы ұясына салыңыз. Екі үздіксіз айналмалы серво солға және оңға қарай жылжиды. Слоттар мықтап бекітуге арналған, сондықтан серводы орнында ұстау үшін бұрандалар қажет емес. Серво сымдары корпустың артқы жағына қарайтындай етіп ойықтардағы ойықтар арқылы өтетініне көз жеткізіңіз.

4) 9В батареяны орналастыру (ҚОСЫМША): 9В батарея + Arduino қуат қосқышын алдыңғы серво артына қойыңыз.

5) Ультрадыбыстық датчиктерді жинау: Ультрадыбыстық датчиктің тақтайшасының астына ақ пластикалық серво қондырмаларының біреуін бекіту үшін екі кішкене бұранданы қолданыңыз. Содан кейін, ультрадыбыстық датчик корпусын бекіту тақтасына бекіту үшін 3D басып шығарылған 6 мм болтты/гайканы (немесе металл болтты/гайканы) қолданыңыз. Соңында сенсорды түйреуіштері жоғары қаратып корпусқа қойыңыз және корпустың артына бекітіңіз.

6) 4x AA батарея корпусы: АА батарея корпусын үлкен төртбұрышты аймаққа, қосу/өшіру қосқышы артқы жағына қаратып қойыңыз.

7) Arduino Uno + V5 сенсорлық қалқаны: қалқанды Arduino -ға бекітіңіз және батарея корпусының үстіндегі бекітпелерге қойыңыз. Қуат қосқышы солға қарауы керек.

Сіздің робот құрастырылған! Не қалды? Arduino мен қосқыш сымдарды бағдарламалау: серверлер, ультрадыбыстық сенсор және қуат көзі.

4 -қадам: сенсорлық сымдарды бекітіңіз

Image
Image
Аяқталды !!! Arduino 9V қуат көзіне қосыңыз, батарея жинағын қосыңыз және OAREE көмегімен кедергілерден аулақ болыңыз
Аяқталды !!! Arduino 9V қуат көзіне қосыңыз, батарея жинағын қосыңыз және OAREE көмегімен кедергілерден аулақ болыңыз

Servo сымдарын V5 Shield -ге қосыңыз:

  1. Сол жақ үздіксіз айналу сервисі PIN 9 -ға бекітіледі
  2. Оң жақ үздіксіз айналу сервисі PIN 10 -ға бекітіледі
  3. Front FS90 Servo PIN 11 -ге бекітіледі

Ультрадыбыстық сенсорлық түйреуіштерді (4х аналықтан әйелге секіру сымдары арқылы) V5 қалқанына қосыңыз:

  1. PIN 12 кодын іске қосыңыз
  2. PIN 13 -ке жаңғырық
  3. «V» белгісімен бекітілген түйреуіштердің кез келгеніне VCC
  4. 'G' белгісімен белгіленген түйреуіштердің кез келгеніне негіз

AA батарея корпусын V5 қалқанына қосыңыз:

  1. Оң, қызыл сымды VCC қосқышына жалғаңыз
  2. Теріс, қара сымды жерге қосуға қосыңыз

5 -қадам: Аяқталды !!! 9V Arduino қуат көзін қосыңыз, батарея жинағын қосыңыз және OAREE көмегімен кедергілерден аулақ болыңыз

Image
Image
Аяқталды !!! 9V Arduino қуат көзін қосыңыз, батарея жинағын қосыңыз және OAREE көмегімен кедергілерден аулақ болыңыз
Аяқталды !!! 9V Arduino қуат көзін қосыңыз, батарея жинағын қосыңыз және OAREE көмегімен кедергілерден аулақ болыңыз

Аяқталды !

1) 9V Arduino қуат көзін қосыңыз (міндетті емес)

2) Батарея жинағын қосыңыз

3) Кедергілерден аулақ болуды OAREE көмегімен бастаңыз !!!

Мен сіздің жаңа досыңыз OAREE -ге ұнайтындығыңызға сенімдімін, оны көргеннен кейін ол кедергі сезінеді, резервтік көшірме жасайды және бағытын өзгертеді. OAREE ультрадыбыстық сенсор шығатын үлкен заттармен жақсы жұмыс істейді (қабырғалар сияқты). Кішкентай беттер мен бұрыштардың арқасында орындықтың аяғы сияқты ұсақ заттарды итеру қиынға соғады. Өтінемін, бөлісіңіз, әрі қарай дамытыңыз және қажет түзетулер мен қателер туралы маған хабарлаңыз. Бұл үлкен оқу тәжірибесі болды, мен сіздерге бұл жобаны жасау мен сияқты қызықты болады деп сенемін!

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

Робототехника сайысында екінші орын

Ұсынылған: