Mundarija:

Lego Mindstormdan Arduino boshqariladigan robot qo'l: 6 qadam
Lego Mindstormdan Arduino boshqariladigan robot qo'l: 6 qadam

Video: Lego Mindstormdan Arduino boshqariladigan robot qo'l: 6 qadam

Video: Lego Mindstormdan Arduino boshqariladigan robot qo'l: 6 qadam
Video: Joystick Robot | Best Arduino Project #shorts 2024, Iyul
Anonim
Image
Image

Lego Mindstorm -ning ikkita eski dvigatelini Arduino Uno tomonidan boshqariladigan ushlagichga aylantiring.

Bu Hack Sioux Falls loyihasi bo'lib, biz bolalarni Arduino bilan ajoyib narsa qurishga chaqirdik.

1 -qadam: kerakli qismlar

Kerakli materiallar:

  • Lego ev3 uchun ikkita katta dvigatel
  • Lego texnik qismlari va viteslarining assortimenti
  • Arduino Uno
  • Motor taxtasi
  • Perfboard taxtasi
  • Uzoq simlar
  • 4 ta rezistor
  • 4 tugma
  • Portativ USB batareyasi
  • USB zaryadlovchi
  • Lehim va lehim temir
  • Tornavidalar to'plami
  • Tel kesuvchi

2 -qadam: Dvigatel korpusini olib tashlang

Ikkala dvigatelning orqa qismidagi vintlarni, so'ngra oq qopqoqlarni olib tashlash bilan boshlang. Keyin ularni tashlab yuborishingiz mumkin.

Dvigatellarni torting, ichki tishli qutilarini olib tashlamang. Agar siz biron bir vitesni olib tashlasangiz, ularni joyiga qo'ying.

Dvigatellar chiqarilgandan so'ng, motor uchidagi plaginni simli kesgich bilan kesib oling.

3 -qadam: Uzunroq simlarga lehim

Dvigatel platasiga motorlar qo'shing
Dvigatel platasiga motorlar qo'shing

Yangi, uzunroq simga lehim. Bu ko'rinadiganidan ancha oson va agar nima qilayotganingizni bilsangiz, bir necha soniya kifoya qiladi.

Dvigatelni plastik korpusga qayta joylashtiring, keyin uni burab qo'ying. Endi qo'lning qurilishini boshlashingiz mumkin. Siz o'zingizning dizayningizni yaratishingiz yoki rasmdagi dizayndan chiqib ketishingiz mumkin.

4 -qadam: Dvigatel panelini motorga qo'shing

Dvigatellardan keladigan simlarni rasmda ko'rsatilgandek dvigatel kartasiga ulash uchun Phillips tornavida foydalaning. Keyin taxtani Arduino Uno -ga ulang.

USB zaryadlovchini yarmini kesib, ichidagi simni oching. Izolyatsiyani olib tashlang, so'ngra ikkita ijobiy va salbiy simni olib tashlang. Keyin uni motor paneliga ulang

5 -qadam: O'chirish paneli yaratish

O'chirish paneli yaratish
O'chirish paneli yaratish
O'chirish paneli yaratish
O'chirish paneli yaratish
O'chirish paneli yaratish
O'chirish paneli yaratish

Rezistorlar, kalitlar va simlardagi lehim, rasmdagi kabi, pervaz paneliga.

Rasmda ko'rsatilgandek, pervaz paneli va dvigatel taxtasiga bir nechta urg'ochi pin ulang, so'ng ikkisini ulang.

6 -qadam:

Rasm
Rasm
Rasm
Rasm

Arduino -ni kompyuterga ulang va ushbu kodni Arduino -ga yuklang.

Biz bu motor haydovchilar kutubxonasidan Adafruit -dan foydalanganmiz, lekin boshqa haydovchilar kutubxonasi ham ishlaydi.

#qo'shing

int buttonLeft = A0; int buttonRight = A1; int tugmasiOpen = A2; int tugmasiClose = A3; AF_DCMotor motorli aylantirish (1); AF_DCMotorli vositaGrabber (2); void setup () {Serial.begin (9600); // ketma -ket kutubxonani 9600 bps tezlikda sozlash Serial.println ("Motor testi!"); pinMode (tugmachaning chap, kirish); pinMode (tugmachaning o'ng, kirish); pinMode (tugma Ochish, Kirish); pinMode (tugmaYopish, Kirish); // motorRotate.setSpeed motorini yoqish (200); motorGrabber.setSpeed (200); motorRotate.run (RELEASE); motorGrabber.run (RELEASE); } void loop () {int buttonStateLeft = digitalRead (buttonLeft); int buttonStateRight = digitalRead (buttonRight); int buttonStateOpen = digitalRead (buttonOpen); int buttonStateClose = digitalRead (buttonClose); if (buttonStateLeft == HIGH) {Serial.println ("Chap tugma"); motorRotate.run (Orqaga); kechikish (250); motorRotate.run (RELEASE); } if if (buttonStateRight == HIGH) {Serial.println ("O'ng tugma"); motorRotate.run (Oldinga); kechikish (250); motorRotate.run (RELEASE); } else if (buttonStateOpen == HIGH) {Serial.println ("Button Open"); motorGrabber.run (Orqaga); kechikish (150); motorGrabber.run (RELEASE); } else if (buttonStateClose == HIGH) {Serial.println ("Tugmani yopish"); motorGrabber.run (Oldinga); kechikish (150); motorGrabber.run (RELEASE); }}

Tavsiya: