Агуулгын хүснэгт:

LEGO болон Raspberry Pi -ээр хийсэн шатрын робот: 6 алхам
LEGO болон Raspberry Pi -ээр хийсэн шатрын робот: 6 алхам

Видео: LEGO болон Raspberry Pi -ээр хийсэн шатрын робот: 6 алхам

Видео: LEGO болон Raspberry Pi -ээр хийсэн шатрын робот: 6 алхам
Видео: SCP-261 Пан-мерное Торговый и эксперимент Войти 261 объявление Де + полный + 2024, Арваннэгдүгээр
Anonim
Image
Image

Энэхүү шатрын роботоор найзуудаа гайхшруулаарай!

Хэрэв та өмнө нь LEGO робот хийж байсан бол компьютерийн програмчлал, Линуксийн талаар бага зэрэг мэдлэгтэй бол бүтээхэд тийм ч хэцүү биш юм.

Робот өөрийн хөдөлгөөнийг хийдэг бөгөөд хүний тоглогчийн хөдөлгөөнийг тодорхойлохын тулд харааны таних аргыг ашигладаг.

Энэхүү роботын шинэлэг зүйл бол хөдөлгөөн таних код юм. Энэхүү алсын харааны кодыг бусад олон аргаар бүтээсэн шатрын роботуудад ашиглах боломжтой (жишээлбэл, миний ChessRobot Lynxmotion робот гар ашиглан).

Шатрын тусгай самбар, зэгс унтраалга эсвэл бусад шаардлагатай зүйл байхгүй (хүний хөдөлгөөнийг харааны танилтаар тодорхойлдог).

Миний кодыг хувийн хэрэгцээнд ашиглах боломжтой.

Алхам 1: Шаардлага

Гэрэл, камер, үйлдэл!
Гэрэл, камер, үйлдэл!

Бүх кодыг Python дээр бичсэн бөгөөд энэ нь Raspberry Pi дээр ажиллах болно.

Raspberry Pi бол кредит картны хэмжээтэй компьютер бөгөөд дэлгэц, гар дээр залгагдах боломжтой. Энэ бол хямд өртөгтэй (ойролцоогоор 40 доллар), чадвартай жижиг компьютер бөгөөд үүнийг электроникийн төсөл, робот техник, ширээний компьютерт ашигладаг олон зүйлд ашиглах боломжтой юм.

Миний робот Raspberry Pi, Lego ашигладаг. RPi болон Lego Mindstorms EV3 мотор ба мэдрэгчүүдийн хоорондох тоног төхөөрөмжийн интерфейсийг Dexter Industries -аас BrickPi3 хангадаг.

Lego -ийн бүтээн байгуулалт нь Lego Mindstorms процессороос илүү RPi ашиглах горимыг оруулаад Darrous Hadi -ийн "Charlie Chess Robot" дээр үндэслэсэн болно. Lego Mindstorms EV3 мотор, мэдрэгчийг ашигладаг.

Мөн танд ширээ, камер, гэрэлтүүлэг, гар, дэлгэц, заагч төхөөрөмж (жишээ нь хулгана) хэрэгтэй болно.

Мэдээжийн хэрэг, шатар, самбар.

Би эдгээр бүх зүйлийг дараагийн алхамуудад илүү нарийвчлан тайлбарласан болно.

Алхам 2: Тоног төхөөрөмжийг бүтээх

Image
Image

Өмнө дурьдсанчлан, алсын харааны кодын зүрх нь олон янзын бүтэцтэй ажиллах болно.

Би роботоо Дарроуз Хадигийн "Чарли шатрын робот" (EV3 хувилбар) дээр үндэслэсэн бөгөөд уг хуудсан дээрх мэдээлэл нь бүтээх зааврыг хэрхэн авах талаар өгүүлсэн болно. Сэлбэгийн жагсаалт энд байна.

Би роботыг хоёр янзаар өөрчилсөн.

1. Баривч. Энэ нь надад тохирсонгүй. Араа нь гулссан тул үүнээс урьдчилан сэргийлэхийн тулд би Lego -ийн нэмэлт хэсгүүдийг нэмж оруулав. Тэгээд тогоруу буулгахад ихэвчлэн гацдаг байсан тул үүнээс урьдчилан сэргийлэхийн тулд би Ватт холболтыг нэмж өгсөн.

Дээрх нь баригдсан холбогчийг харуулсан үйлдэл юм.

2. Анхны бүтээц нь Lego Mindstorms EV3 процессорыг ашигладаг бол би Raspberry Pi ашигладаг бөгөөд энэ нь Python -ийг ашиглахад хялбар болгодог.

3. Би Raspberry Pi 3 Model B ашигладаг.

4. RPi -ийг Lego руу холбохын тулд би Dexter Industries -аас BrickPi3 ашигладаг. BrickPi нь Raspberry Pi -д залгагдсан бөгөөд LEGO Mindstorms NXT эсвэл EV3 тоосгоны хамт орлуулжээ.

Хэрэв танд Lego Digital Designer файл байгаа бол LEGO хэсгүүдийг авах тухай асуулт гарч ирнэ. Та тоосго LEGO дэлгүүрээс шууд авах боломжтой бөгөөд энэ нь тэдгээрийг авах хамгийн хямд арга юм. Гэсэн хэдий ч тэдэнд хэрэгтэй бүх зүйл байхгүй бөгөөд тоосго ирэхэд хэдэн долоо хоног эсвэл түүнээс дээш хугацаа шаардагдана.

Та мөн Rebrickable -ийг ашиглаж болно: данс нээж, LDD файлыг байршуулж, үүнээс худалдагчдын жагсаалтыг авах боломжтой.

Өөр нэг сайн эх сурвалж бол Bricklink юм.

Алхам 3: Роботыг хөдөлгөж буй програм хангамж

Бүх кодыг Python 2 дээр бичсэн болно.

  1. Dexter Industries нь EV3 моторыг хөдөлгөх гэх мэт кодыг нийлүүлдэг. Энэ нь BrickPi3 -тэй хамт ирдэг.
  2. Би моторыг шатрын хэсгүүдийг хөдөлгөх байдлаар хөдөлгөх кодыг өгдөг!
  3. Шатрын хөдөлгүүр бол Stockfish бөгөөд ямар ч хүнийг ялж чадна! "Stockfish бол дэлхийн хамгийн хүчирхэг шатрын хөдөлгүүрүүдийн нэг юм. Мөн хүний шилдэг шатрын их мастеруудаас хамаагүй хүчтэй юм."
  4. Шатрын хөдөлгүүрийг жолоодох, нүүлгэн шилжүүлэхийг баталгаажуулах код бол ChessBoard.py юм.
  5. Үүнтэй холбогдохын тулд би https://chess.fortherapy.co.uk сайтаас зарим кодыг ашигладаг.
  6. Миний код (дээрх 2 -т) үүнтэй интерфэйс болно!

Алхам 4: Хүний хөдөлгөөнийг таних програм хангамж

Тоглогч хөдөлгөөнөө хийсний дараа камер гэрэл зураг авдаг. Шатрын самбар нь дараагийн дүр төрхтэй яг таарч байхын тулд код үүнийг тарааж, эргүүлнэ. Шатрын самбарын талбайнууд дөрвөлжин хэлбэртэй байх ёстой! Самбарын ирмэгүүд нь самбарын төвөөс илүү камераас хол байгаа тул зураг дээр гажуудал гарч байна. Гэсэн хэдий ч, камер нь хангалттай хол байгаа тул тайрсны дараа энэ гажуудал нь ач холбогдолгүй болно. Робот нь компьютер шилжсэний дараа бүх хэсгүүд хаана байдгийг мэддэг тул хүн хөдөлсний дараа хийх ёстой зүйл бол код нь дараах гурван тохиолдлын ялгааг хэлж чаддаг байх явдал юм.

  • Хоосон дөрвөлжин
  • Ямар ч төрлийн хар ширхэг
  • Ямар ч төрлийн цагаан ширхэг.

Энэ нь castling, passant зэрэг бүх хэргийг хамарна.

Робот хүний хийсэн алхам зөв эсэхийг шалгаж, хэрэв тийм биш бол тэдэнд мэдэгдэнэ. Хүний тоглогч ломбардыг хатан бус болгон сурталчилсан тохиолдолд л хамрагдаагүй болно. Тоглогч дараа нь сурталчилсан хэсэг нь юу болохыг роботод хэлэх ёстой.

Одоо бид дүрсийг шатрын самбарын талбайн хувьд авч үзэх боломжтой.

Самбарын анхны тохиргоонд цагаан, хар бүх хэсгүүд хаана байгааг, хоосон квадратууд хаана байгааг бид мэднэ.

Хоосон квадратууд нь эзэлсэн квадратуудаас хамаагүй бага өнгөний өөрчлөлттэй байдаг. Бид бүх пикселийн дагуу дөрвөлжин бүрийн гурван RGB өнгөний стандарт хазайлтыг тооцоолно. Аливаа хоосон дөрвөлжингийн хамгийн их стандарт хазайлт нь эзлэгдсэн квадратуудын хамгийн бага стандарт хазайлтаас хамаагүй бага бөгөөд энэ нь дараагийн тоглогчийн шилжилт хийсний дараа аль квадрат хоосон байгааг тодорхойлох боломжийг бидэнд олгодог.

Хоосон ба эзлэгдсэн квадратуудын босго утгыг тодорхойлсны дараа одоо эзлэгдсэн квадратуудын хэсгийн өнгийг тодорхойлох хэрэгтэй.

Эхний самбар дээр R, G, B тус бүрийн хувьд цагаан дөрвөлжин тус бүрийн пикселийн дундаж (дундаж) утгыг (дөрвөлжингийн хилийн ойролцоох цэгүүдээс бусад) тооцоолно. Цагаан квадратуудын хувьд эдгээр хэрэгслийн хамгийн бага хэмжээ нь хар дөрвөлжин дээрх хамгийн их хэмжээнээс их байдаг тул эзлэгдсэн квадратуудын хэсгийн өнгийг тодорхойлох боломжтой болно. Өмнө дурьдсанчлан, хүний тоглогчийн алхам юу болохыг тодорхойлохын тулд энэ бол бидний хийх ёстой зүйл юм.

Шатрын самбар нь хэсгүүдийн өнгөнөөс нэлээд хол өнгөтэй байвал алгоритмууд хамгийн сайн ажилладаг! Миний роботод эдгээр хэсгүүд нь цагаан, хүрэн өнгөтэй, шатрын самбар нь гараар хийгдсэн бөгөөд цайвар ногоон өнгөтэй бөгөөд "хар" ба "цагаан" талбайн хооронд ялгаа багатай байдаг.

2018 оны 10 -р сарын 17 -ны өдрийн засвар: Би одоо хүрэн хэсгүүдийг бүдэг хараар будсан бөгөөд энэ нь алгоритмыг илүү хувьсах гэрэлтүүлгийн нөхцөлд ажиллуулдаг.

Алхам 5: Гэрэл, камер, үйлдэл

Гэрэл

Самбар дээр жигд гэрлийн эх үүсвэр хэрэгтэй. Би үнэхээр хямд үнийг amazon.co.uk сайтаас ашигладаг бөгөөд amazon.com дээр үүнтэй төстэй зүйл байдаг нь эргэлзээгүй. Өрөөний гэрэл унтарсан үед.

Шинэчлэлт: Гэрлийн илүү жигд эх үүсвэрийг өгөхийн тулд би одоо хоёр гэрэлтэй боллоо

Камер

Та Raspberry Pi камерын тусгай модулийг (урт кабелиар) ашиглаж болох нь эргэлзээгүй, гэхдээ би USB камер ашигладаг - "Logitech 960-001064 C525 HD вэбкамер - Хар" - RPi -тэй ажилладаг. Та цамхаг босгох эсвэл хаа нэг газар бэхлэх замаар самбар нь самбартай харьцуулахад хөдлөхгүй байх ёстой. Геометрийн гажуудлыг багасгахын тулд камер нь самбараас нэлээд өндөр байх ёстой. Миний камер самбараас 58 см өндөр байна.

Шинэчлэлт: Би одоо HP Webcam HD 2300 -ийг илүү найдвартай гэж үзсэн тул үүнийг илүүд үздэг.

Хүснэгт

Танд бат бөх хэрэгтэй. Би үүнийг худалдаж авсан. Дээрээс нь надад БСХС -ийн дөрвөлжин дүрс байгаа бөгөөд тэргэнцэр хөдлөхөд робот үсэрч унахаас сэргийлж болно. Камерыг самбар дээр ижил байрлалд байлгах нь зүйтэй юм!

Гар

RPi -д анхны тохиргоог хийхийн тулд USB гар хэрэгтэй. Би үүнийг код боловсруулахад ашигладаг. Роботод гар хэрэгтэй цорын ганц зүйл бол програмыг эхлүүлэх, шатрын цагны цохилтыг дуурайх явдал юм. Би эдгээрийн нэгийг авсан. Гэхдээ үнэн хэрэгтээ танд зөвхөн хулгана эсвэл RPi-тэй холбогдсон GPIO товчлуур хэрэгтэй болно

Дэлгэц

Би хөгжихийн тулд том дэлгэц ашигладаг боловч робот танд хэрэгтэй зүйл бол таны хөдөлгөөн буруу, шалгах гэх мэтийг хэлэх явдал юм. Би эдгээрийн нэгийг amazon.com дээрээс авах боломжтой.

Гэхдээ дэлгэц шаардахын оронд робот эдгээр хэллэгийг ярих болно! Би үүнийг энд тайлбарласан кодыг ашиглан текстийг ярианд хөрвүүлж, жижиг чанга яригчийг хавсаргаж хийлээ. (Би "Гамбургер мини чанга яригч" ашигладаг).

Робот хэлэхдээ:

  • Шалгах!
  • Шатрын тамирчин
  • Буруу алхам
  • Та хожлоо!
  • Мухардмал байдал
  • Гурван удаа давтаж зур
  • 50 алхамаар зурах дүрэм

Шатрын тавин нүүдлийн дүрэмд тоглогч сүүлийн тавин хөдөлгөөнд ямар ч олз аваагүй, ямар ч ломбард хөдөлгөөгүй бол тэнцэх эрх авах боломжтой гэж заасан байдаг (энэ зорилгоор "алхам" нь ээлжээ дуусгасан тоглогчоос бүрдэнэ. өрсөлдөгч ээлжээ дуусгасан).

Та роботыг "тэнэгийн анд" гэсэн богино видеонд ярьж байгааг сонсож болно (хэрэв та дуугаа нэлээд өндөр болговол)!

Алхам 6: Програм хангамжийг хэрхэн яаж авах вэ

1. Загас

Хэрэв та Raspi -ийг RPi дээр ажиллуулж байвал Stockfish 7 хөдөлгүүрийг ашиглах боломжтой - энэ нь үнэгүй. Зүгээр л гүй:

sudo apt-get stockfish-ийг суулгаарай

2. ChessBoard.py

Үүнийг эндээс аваарай.

3. https://chess.fortherapy.co.uk/home/a-wooden-chess… дээр үндэслэсэн код

Миний кодтой хамт ирдэг.

4. BrickPi3 -ийн Python драйверууд:

Эдгээрийг эндээс аваарай.

5. Дээрх бүх кодыг дуудаж, роботыг хөдөлгөхөд хүргэдэг миний код, миний алсын харааны код.

Сэтгэгдэл бичих замаар үүнийг надаас аваарай, би хариулах болно.

Зөвлөмж болгож буй: