Мазмуну:
- Жабдуулар
- 1 -кадам: Бардык 3D компоненттерин басып чыгаруу
- 2 -кадам: (Милдеттүү эмес) Аны бекемдөө үчүн кутуңуздун түбүнө жыгачтан жасалган тактай тагыңыз
- 3 -кадам: Кутуга ылайыкташуу үчүн жыгачтан жасалган тактайды өлчөп, кесип алыңыз
- 4 -кадам: Моторлордун позицияларын белгилеңиз
- 5 -кадам: кашаанын жана түтүктүн ордун белгилеңиз
- 6 -кадам: Сиздин кутуңуздан чыккан кабелдер үчүн тешик жасаңыз (USB жана кубат)
- 7 -кадам: Бардык белгиленген тешиктерди бургулаңыз жана көрүңүз
- 8 -кадам: Планкага моторлорду жана түтүктөрдү тиркеңиз
- 9-кадам: Планканы L-кронштейндер менен кутуга бекиңиз
- 10 -кадам: Терминалдык блокторуңузду алыңыз жана зымдарды чогуу кошуңуз
- 11 -кадам: Адаптердин кубат кабелинин учун кесип, зымдарды сыйрып алыңыз
- 12 -кадам: плюс жана минус зымдарды аныктап, белгилеңиз
- 13 -кадам: Зымдарды терминалдык блокторго тиркегиле, ошондо бардык + Servo зымдары жана + электр зымынан + зымдар туташат, зымдар үчүн да ушундай болот
- 14 -кадам: Банндын зымынан башын кесип алыңыз
- 15 -кадам: Колуңуздан чыккан зымдар үчүн кутунун ылдыйында үч тешик бургулаңыз
- 16 -кадам: базалык туташтыргычты кутуга тиркеңиз
- 17 -кадам: Сым оюктарын тереңдетүү үчүн бычак же тырмак файлын колдонуңуз
- 18 -кадам: Кол куруңуз
- 19 -кадам: Processing жана Arduino орнотуу
- 20 -кадам: Код программаларын чаптаңыз
- 21 -кадам: Servo Control Pins'ти Arduino менен туташтырыңыз
- 22 -кадам: Кайра иштетүү баскычын басыңыз, бул бардык куралдарды 90 градуска орнотот
- 23 -кадам: Серво куралдарын моторго туурасынан бекитүү
- 24 -кадам: Боштук болбошу үчүн зымдарды куралдан өткөрүңүз
- 25 -кадам: Колуңузду текшериңиз жана зымдарды зарыл болгондой тартыңыз же бошоңдотуңуз
- 26 -кадам: Зымдарды Servo куралына ысык клей кылып, аны туруктуу кылыңыз
- 27 -кадам: Эскертүүлөр
- 28 -кадам: Мүчүлүштүктөрдү оңдоо
- 29 -кадам: Шилтемелер
- 30 -кадам: Код
- 31 -кадам: Көбүрөөк сүрөттөр
Video: Зым башкарылуучу робот колу: 31 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:40
Бул робот колун зымдар менен башкарылуучу кылып үйрөткүч. Зымдарды колдонуунун артыкчылыгы - бул сиздин колуңуздун жеңилдиги жана бардык моторлоруңузду колуңуздун түбүнө орнотуп, курулушту жана тейлөөнү жеңилдетет. Бул жерде колдун кыймылда болгон видеосу. Мен келечекте тырмакты кошууну пландап жатам, ал нерселерди чогултуп, жөн эле түртүп салбайт.
3D басып чыгаруу:
Бул жерде жана бул жерде
Жабдуулар
6 Servo Motors (MG995)
Arduino Uno
Болжол менен 6 метр пластикалык капталган болот зым (0,5мм)
23x33x10 кутуча (тар болушу мүмкүн, кыска болбошу керек)
Жыгач 33x10
Гайкалар жана болттар
Түтүк 14 см (бул саптарды жетектөө үчүн керек)
4 L-кашаа
5 вольттуу адаптер
2 7 тараптуу терминалдык блоктор
Нан тактасы зымдары
3D Басылган Компоненттери (Мен ойлогон эмесмин, сүрөттөмөдөгү элементтерге шилтемелер):
3 "Болт"
2 "Элемент 1"
1 "Элемент 2"
2 "Элемент 3"
1 Негизги туташтыргычы
1 -кадам: Бардык 3D компоненттерин басып чыгаруу
Болттун тешиктерине жана аркаларына колдоо керек болушу мүмкүн, бирок компоненттериңиздин корпусуна колдоо кошпогонуңузду текшериңиз; бул кичинекей зым тешиктерин жабат жана сиз жаңы тешиктерди жасашыңыз керек болот
2 -кадам: (Милдеттүү эмес) Аны бекемдөө үчүн кутуңуздун түбүнө жыгачтан жасалган тактай тагыңыз
Менин кутучам абдан алсыз болчу, сиздики болушу мүмкүн эмес
3 -кадам: Кутуга ылайыкташуу үчүн жыгачтан жасалган тактайды өлчөп, кесип алыңыз
4 -кадам: Моторлордун позицияларын белгилеңиз
колдордун бири -бирине тийбей турганын текшериңиз
5 -кадам: кашаанын жана түтүктүн ордун белгилеңиз
Түтүк тешиктин алдына бир сантиметрдин тегерегинде жайгаштырылышы керек
6 -кадам: Сиздин кутуңуздан чыккан кабелдер үчүн тешик жасаңыз (USB жана кубат)
7 -кадам: Бардык белгиленген тешиктерди бургулаңыз жана көрүңүз
8 -кадам: Планкага моторлорду жана түтүктөрдү тиркеңиз
9-кадам: Планканы L-кронштейндер менен кутуга бекиңиз
10 -кадам: Терминалдык блокторуңузду алыңыз жана зымдарды чогуу кошуңуз
11 -кадам: Адаптердин кубат кабелинин учун кесип, зымдарды сыйрып алыңыз
12 -кадам: плюс жана минус зымдарды аныктап, белгилеңиз
13 -кадам: Зымдарды терминалдык блокторго тиркегиле, ошондо бардык + Servo зымдары жана + электр зымынан + зымдар туташат, зымдар үчүн да ушундай болот
14 -кадам: Банндын зымынан башын кесип алыңыз
Нан тактасынын жулунган учун минус терминалдык блокко жана пиндин учун ардуиноңуздагы жерге төөнөгүчкө бекиңиз. Эгер муну кылбасаңыз, моторлор эч кандай киришүүсүз иретсиз кыймылдайт.
15 -кадам: Колуңуздан чыккан зымдар үчүн кутунун ылдыйында үч тешик бургулаңыз
Тешиктер базалык туташтыргычтын тешиктерине чейин дал келиши керек.
16 -кадам: базалык туташтыргычты кутуга тиркеңиз
17 -кадам: Сым оюктарын тереңдетүү үчүн бычак же тырмак файлын колдонуңуз
2 жана 3 -элементтердин зым оюктары өтө тайыз.
18 -кадам: Кол куруңуз
Колдорду бул жердеги көрсөтмөлөргө ылайык куруңуз, тетиктерди алар туура келгендей кылып толтурушуңуз керек болот
19 -кадам: Processing жана Arduino орнотуу
Кайра иштетүү жана Arduino
20 -кадам: Код программаларын чаптаңыз
Код бул барактын ылдый жагында
21 -кадам: Servo Control Pins'ти Arduino менен туташтырыңыз
Мен биринчи моторду үчүнчү санарип пинге, экинчи моторду төртүнчү санарип пинге ж.б. Жер казыгы дагы эле терминал блогуна туташкандыгын текшериңиз.
22 -кадам: Кайра иштетүү баскычын басыңыз, бул бардык куралдарды 90 градуска орнотот
23 -кадам: Серво куралдарын моторго туурасынан бекитүү
24 -кадам: Боштук болбошу үчүн зымдарды куралдан өткөрүңүз
Зымды мүмкүн болушунча көп тешиктен өткөрүңүз, бул аны убактылуу кармап турат жана алып салуу оңой болот.
25 -кадам: Колуңузду текшериңиз жана зымдарды зарыл болгондой тартыңыз же бошоңдотуңуз
26 -кадам: Зымдарды Servo куралына ысык клей кылып, аны туруктуу кылыңыз
27 -кадам: Эскертүүлөр
Мен 0,5 мм зергер зымды колдондум, бирок 0,4 мм жакшы болушу керек. Түпнуска дизайнда ПВХ зымы колдонулган, бирок ал өтө оңой эле үзүлүп кеткен жана аны иштетүү кыйын болгон.
Эгерде сиз колуңузду машинеде же велосипедде жылдыра турган болсоңуз, алар чыгып кетпеши үчүн кол муундарын скотч менен ороп коюңуз. Бул 1 -элемент үчүн өзгөчө маанилүү.
Мен бул долбоорду баштаганда мен эмнеге зым менен башкарылуучу кол жасоо боюнча бир гана окуу куралын таба алам деп ойлонуп жаткам. Эми мен эмне үчүн бул хобби робот колун жасоонун эң кеңири таралган жолу эмес экенин түшүндүм. Зымдар кээде оюктарынан түшүп кетет жана бүт нерсе кандайдыр бир алсыз. Мен билбейм, көйгөйлөр менин тажрыйбам жоктугунанбы же бүт идея көйгөйлүүбү, бирок мен эмне кылып жатканымды билсем, бул дагы бекем болоруна ишенем.
28 -кадам: Мүчүлүштүктөрдү оңдоо
Зым тешиктери 3D басылган элементтерде жабылган:
Болттун тешиктеринин ордуна бүт элементтин колдоосун коштуңуз. Же элементти кайра басып чыгарыңыз же тешиктерди чындап ысык ийне менен ачыңыз.
COM порту жабык, сиз arduino менен байланыша албайсыз:
Сиздин arduino USB 3 портун кабыл албашы мүмкүн (меники эмес), сиз USB 2 узартуу кабелин сатып алсаңыз же USB 2 порту бар компьютерди колдонсоңуз болот
Код иштебейт:
Бул окуу куралын ээрчип, өзүңүздүн кодуңузду өзгөртүү үчүн аны өзгөртүңүз
Колунун бир бөлүгү кыймылдабайт:
Зымдар чырмалышып кеткен болушу мүмкүн, муну текшерүү үчүн серво колун серводон алып, зымдарды кол менен тартып көрүңүз. Зымдарды чечиңиз, эгерде зымдарды тартуу дагы эле кыйын болсо, кыймылды жеңилдетүү үчүн WD-40 же майлоочу май колдонуп көрүңүз.
29 -кадам: Шилтемелер
Роботсуз кол:
Arm 3D Printables:
Менин колумду 3D басып чыгаруу:
Arduino жана иштетүү:
30 -кадам: Код
Бул коддон өзгөртүлдү
Arduino коду:
#кошуу // Моторлорду жарыялоо Servo myservo1; Servo myservo2; Servo myservo3; Servo myservo4; Servo myservo5; Servo myservo6; // Бардык кыймылдаткычтар 90 градуска орнотулган int current1 = 90; int current2 = 90; int current3 = 90; int current4 = 90; int current5 = 90; int current6 = 90; // Минималдуу жана максималдуу даражалар моторлор int mini1 = 0ге жете алат; int maxi1 = 180; int mini2 = 0; int maxi2 = 180; int mini3 = 0; int maxi3 = 180; int mini4 = 0; int maxi4 = 180; int mini5 = 0; int maxi5 = 180; int mini6 = 0; int maxi6 = 180; // Учурдагы абалдан кошулуучу же кемитилүүчү даражалар int darajaFoward = 5; // Кечигүү, ошондуктан эки функция туура эмес тартипте болбойт int delayBetweenSteps = 100; void setup () {// Ар бир мотор myservo1.attach (3) үчүн көзөмөл казыктарын коюңуз; myservo2.attach (4); myservo3.attach (5); myservo4.attach (6); myservo5.attach (7); myservo6.attach (8); // Бардык моторлорду myservo1.write (current1) баштапкы абалына коюңуз; myservo2.write (current2); myservo3.write (current3); myservo4.write (current4); myservo5.write (current5); myservo6.write (current6); // сериялык байланышты баштоо @9600 bps Serial.begin (9600); } void loop () {if (Serial.available ()) {// if char data = Serial.read (); // муну бул чарга салыңыз // Мотор башкаруу элементтери эгерде (val == 'a' && current1 + градус мини1) {myservo1.write (current1 - dərəcəFoward); current1 = current1 - градусFoward; кечиктирүү (delayBetweenSteps); } if (val == 'c' && current2 mini2) {myservo2.write (current2 - dərəcəFoward); current2 = current2 - градусFoward; кечиктирүү (delayBetweenSteps); } if (val == 'e' && current3 mini3) {myservo3.write (current3 - dərəcəFoward); current3 = current3 - градусFoward; кечиктирүү (delayBetweenSteps); } if (val == 'g' && current4 mini4) {myservo4.write (current4 - dərəcəFoward); current4 = current4 - градусFoward; кечиктирүү (delayBetweenSteps); } if (val == 'i' && current5 mini5) {myservo5.write (current5 - dərəcəFoward); current5 = current5 - градусFoward; кечиктирүү (delayBetweenSteps); } if (val == 'k' && current6 mini6) {myservo6.write (current6 - dərəcəFoward); current6 = current6 - градусFoward; кечиктирүү (delayBetweenSteps); } // Ылдамдыкты көзөмөлдөйт if (val == 'w') {// Эгерде 1 -ылдамдык баскычы градуска басылсаFoward = 1; кечиктирүү (delayBetweenSteps); } if (val == 'x') {// Эгерде 5 -ылдамдык баскычы градуска басылсаFoward = 5; кечиктирүү (delayBetweenSteps); } if (val == 'y') {// If speed 10 button pressed градусFoward = 10; кечиктирүү (delayBetweenSteps); } if (val == 'z') {// If 20 speed button pressed IfFoward = 20; кечиктирүү (delayBetweenSteps); } if (val == 'r') {// Эгерде 20 -ылдамдык баскычы басылса myservo1.write (90); current1 = 90; myservo2.write (90); current2 = 90; myservo3.write (90); current3 = 90; myservo4.write (90); current4 = 90; myservo5.write (90); current5 = 90; myservo6.write (90); current6 = 90; кечиктирүү (delayBetweenSteps); }}}
Кодду иштетүү:
импортту иштетүү.сериал.*; импортту көзөмөлдөөP5.*; // импорт ControlP5 китепкана Сериялык порт; ControlP5 cp5; // ControlP5 объектисин түзүү PFont; void setup () {// arduino программанын өлчөмү менен бирдей (300, 700); // терезенин өлчөмү, (туурасы, бийиктиги) printArray (Serial.list ()); // бардык жеткиликтүү сериялык портторду басып чыгарат // Эгер көйгөйгө туш болсоңуз, бул бул жерден келип чыгышы мүмкүн String portName = Serial.list () [0]; порт = жаңы серия (бул, portName, 9600); // мен arduino'yu com3кө туташтырдым, ал Linux жана mac osдо башкача болмок // бош терезеге cp5 = buton кошууга мүмкүнчүлүк берет = жаңы ControlP5 (бул); font = createFont ("Arial", 13); // баскычтар жана аталыштар үчүн ыңгайлаштырылган шрифттер // Ылдамдыкты көзөмөлдөө баскычтары cp5.addButton ("Бир") // "Бир" - бул баскычтын аты.setPosition (50, 50) // баскычтын жогорку сол бурчунун x жана y координаттары..setSize (55, 25) // (туурасы, бийиктиги).setFont (шрифт); cp5.addButton ("Беш").setPosition (110, 50).setSize (55, 25).setFont (шрифт); cp5.addButton ("Он").setPosition (170, 50).setSize (55, 25).setFont (шрифт); cp5.addButton ("Жыйырма").setPosition (230, 50).setSize (55, 25).setFont (шрифт); cp5.addButton ("Кайра коюу").setPosition (110, 2).setSize (55, 25).setFont (шрифт); cp5.addButton ("Servo_1_Foward").setPosition (50, 90).setSize (190, 40).setFont (шрифт); // Моторду башкаруу баскычтары cp5.addButton ("Servo_1_Back").setPosition (50, 140).setSize (190, 40).setFont (шрифт); cp5.addButton ("Servo_2_Foward").setPosition (50, 190).setSize (190, 40).setFont (шрифт); cp5.addButton ("Servo_2_Back").setPosition (50, 240).setSize (190, 40).setFont (шрифт); cp5.addButton ("Servo_3_Foward").setPosition (50, 290).setSize (190, 40).setFont (шрифт); cp5.addButton ("Servo_3_Back").setPosition (50, 340).setSize (190, 40) // (туурасы, бийиктиги).setFont (шрифт); cp5.addButton ("Servo_4_Foward").setPosition (50, 390).setSize (190, 40).setFont (шрифт); cp5.addButton ("Servo_4_Back").setPosition (50, 440).setSize (190, 40) // (туурасы, бийиктиги).setFont (шрифт); cp5.addButton ("Servo_5_Foward").setPosition (50, 490).setSize (190, 40).setFont (шрифт); cp5.addButton ("Servo_5_Back").setPosition (50, 540).setSize (190, 40).setFont (шрифт); cp5.addButton ("Servo_6_Foward").setPosition (50, 590).setSize (190, 40).setFont (шрифт); cp5.addButton ("Servo_6_Back").setPosition (50, 640).setSize (190, 40).setFont (шрифт); } void draw () {// arduino фонундагы цикл менен бирдей (192, 215, 249); // терезенин фон түсү (r, g, b) же (0дон 255ке чейин) // Текстти кошуңуз, ылдамдыкты көзөмөлдөө ылдамдыкты контролдоо деп айтылат (0, 10, 25); // тексттин түсү (r, g, b) textFont (шрифт); текст ("Ылдамдыкты көзөмөлдөө", 50, 40); // ("текст", x координаты, y координаты)} // биздин баскычтарга кээ бир функцияларды кошууга мүмкүндүк берет // андыктан кайсы бир баскычты басканыңызда, ал белгилүү бир чарды сериялык порт аркылуу жөнөтөт // Мен саптарды жөнөтүү мүмкүн экенине ишенем тамгалардын ордуна, жана бул көбүрөөк мааниге ээ болмок, бирок мен муну кантип кылууну билбейм // Ылдамдыкты башкаруу командалары void One () {port.write ('w'); } void Five () {port.write ('x'); } void Ten () {port.write ('y'); } жараксыз Twenty () {port.write ('z'); } // Моторду башкаруу командалары жараксыз Servo_1_Foward () {port.write ('a'); } жараксыз Servo_1_Back () {port.write ('b'); } жараксыз Servo_2_Foward () {port.write ('c'); } жараксыз Servo_2_Back () {port.write ('d'); } void Servo_3_Foward () {port.write ('e'); } void Servo_3_Back () {port.write ('f'); } void Servo_4_Foward () {port.write ('g'); } void Servo_4_Back () {port.write ('h'); } void Servo_5_Foward () {port.write ('i'); } void Servo_5_Back () {port.write ('j'); } void Servo_6_Foward () {port.write ('k'); } void Servo_6_Back () {port.write ('l'); } void Reset () {port.write ('r'); }
31 -кадам: Көбүрөөк сүрөттөр
Сунушталууда:
Кармагы бар робот колу: 9 кадам (сүрөттөр менен)
Кармагы бар роботтук кол: Лимон дарактарын жыйноо дарактардын чоңдугуна жана лимон дарактары отургузулган аймактардын ысык климатына байланыштуу оор жумуш болуп эсептелет. Мына ошондуктан бизге айыл чарба кызматкерлерине жумуштарын аягына чыгарууга жардам берүү үчүн дагы бир нерсе керек
Bluetooth көзөмөлдөгөн Stepper Motors менен 3D робот колу: 12 кадам
3D робот колу Bluetooth менен башкарылган тепкич моторлору менен: Бул үйрөткүчтө биз 28byj-48 тепкичтүү кыймылдаткычтары, servo мотору жана 3D басылган бөлүктөрү менен 3D робот колун кантип жасоону көрөбүз. Басылган схема, баштапкы код, электр схемасы, баштапкы код жана көптөгөн маалымат менин веб -сайтымда камтылган
Арзан смартфондун башкарылуучу колу (+ Option Saving Position): 5 кадам
Арзан смартфондун башкарылуучу колу (+ Option Saving Position): Проект Bluetooth технологиясын колдонгон смартфон башкарган робот колун айдап жүрүңүз. Бонус режими: бизде ардуинонун позицияны эстеп калуусуна мүмкүнчүлүк берген баскыч бар. Каалаган убакта, башка баскыч менен бул сакталган позицияга бара алабыз. FRLE PROJET буйругу
DIY Arduino робот колу, Кадам менен: 9 кадам
DIY Arduino Robotic Arm, Step by Step: Бул окуу куралы сизге робот колун кантип курууну үйрөтөт
Ардуиного Bluetooth аркылуу жаңсап башкарылуучу машыктыруучу робот колу: 4 кадам
Ардуиного Bluetooth аркылуу жаңсап башкарылуучу машыктыруучу робот колу: Колунда эки режим бар. Биринчиден, кол менен уюлдук телефонуңуздагы Bluetooth менен колуңузду жылдыра аласыз. Ошол эле учурда, сиз позицияңызды сактап кала аласыз жана ойной аласыз … Экинчиси, сиздин PHди колдонгон Жаңдоо режими