Съдържание:

Шахматен робот Raspberry Pi Lynxmotion AL5D Ръка: 6 стъпки
Шахматен робот Raspberry Pi Lynxmotion AL5D Ръка: 6 стъпки

Видео: Шахматен робот Raspberry Pi Lynxmotion AL5D Ръка: 6 стъпки

Видео: Шахматен робот Raspberry Pi Lynxmotion AL5D Ръка: 6 стъпки
Видео: A Robot Playing Chess 2024, Юли
Anonim
Image
Image

Изградете този шахматен робот и вижте как той побеждава всички!

Създаването е доста лесно, ако можете да следвате инструкциите как да изградите ръката и ако имате поне елементарни познания по компютърно програмиране и Linux.

Човекът, играейки бяло, прави ход. Това се открива от системата за визуално разпознаване. След това роботът се замисля и след това прави своя ход. И така нататък …

Може би най -новото нещо в този робот е кодът за разпознаване на ходове. Този код за визия може да се използва и за роботи за шах, изградени по много други начини (като моя робот за шах с LEGO build).

Тъй като ходът на човека се разпознава от зрителна система, не е необходим специален хардуер за шахматна дъска (като тръстикови превключватели или каквото и да е друго).

Моят код е достъпен за лична употреба.

Стъпка 1: Изисквания

Изграждането на хардуера
Изграждането на хардуера

Целият код е написан на Python, който ще работи, наред с други неща, на Raspberry Pi.

Raspberry Pi е малък, евтин (около $ 40) едноплатен компютър, разработен от Raspberry Pi Foundation. Оригиналният модел стана много по -популярен от очакваното, като се продаваше за приложения като роботика

Моят робот използва Raspberry Pi, а рамото на робота е изградено от комплект: Lynxmotion AL5D. Комплектът се предлага със серво контролер. (Връзката, която току -що дадох, е към американския сайт на RobotShop; кликнете върху едно от знамената в горния десен ъгъл на страниците на сайта им за вашата страна, например Великобритания).

Ще ви трябват също маса, камера, осветление, клавиатура, екран и посочващо устройство (например мишка). И разбира се, шахматни фигури и дъска. Описвам всички тези неща по -подробно в следващите стъпки.

Стъпка 2: Изграждане на хардуер

Изграждането на хардуера
Изграждането на хардуера

Както вече посочих, сърцевината на кода за визия ще работи с различни версии.

Тази конструкция използва роботизиран комплект за ръце от Lynxmotion, AL5D. В комплекта е включена платка за серво контролер SSC-32U, която се използва за управление на двигателите в рамото.

Избрах AL5D, защото ръката трябва да може да прави многократни точни движения и да не се отклонява. Грайберът трябва да може да влиза между парчетата, а ръката трябва да може да достига до далечната страна на дъската. Все още трябваше да направя някои модификации, както е описано по -долу.

Raspberry Pi, който използвам, е Raspberry Pi 3 Model B+. Това говори с платката SSC-32U чрез USB връзка.

РЕДАКТИРАНЕ: Raspberry Pi 4 вече е наличен. Ще ви трябва:

  • 15W USB-C захранване-препоръчваме официалното захранване Raspberry Pi USB-C
  • MicroSD карта, заредена с NOOBS, софтуерът, който инсталира операционната система (купете предварително заредена SD карта заедно с Raspberry Pi или изтеглете NOOBS, за да заредите картата сами)
  • Клавиатура и мишка (вижте по -късно)
  • Кабел за свързване към дисплей чрез микро HDMI порт на Raspberry Pi 4

Имах нужда от по -нататъшно обхващане на рамото на робота, затова направих някои малки модификации в него, използвайки допълнителни части Lynxmotion, които могат да бъдат закупени от RobotShop:

1. Сменена 4,5-инчова тръба с 6-инчова-Lynxmotion част AT-04, продуктов код RB-Lyn-115.

2. Опитах да използвам допълнителен комплект пружини, но се върнах към една двойка, когато приложих т. 3 по -долу

3. Увеличете височината с помощта на 1-инчов дистанционер-част Lynxmotion HUB-16, код на продукта RB-Lyn-336.

4. Увеличен обхват на грайфера с помощта на резервни подложки за захващане, прикрепени от някои резервни LEGO парчета, които имах, и еластични ленти (!) Това работи много добре, тъй като въвежда гъвкавост при повдигане на парчета.

Тези модификации могат да се видят на изображението по -горе вдясно.

Над шахматната дъска е монтирана камера. Това се използва за определяне на хода на човека.

Стъпка 3: Софтуерът, който премества робота

Целият код е написан на Python 2. Кодът на обратната кинематика е необходим, за да се движат правилно различните двигатели, така че шахматните фигури да могат да се преместват. Използвам библиотечен код от Lynxmotion, който поддържа движението на двигателите в две измерения и добавих към това със собствен код за три измерения, ъгъл на захващане и движение на челюстта на грайфера.

И така, тогава имаме код, който ще премества парчета, взема парчета, замък, поддържа en passant и т.н.

Шахматният двигател е Stockfish - който може да победи всеки човек! "Stockfish е един от най -силните шахматни двигатели в света. Освен това е много по -силен от най -добрите човешки шахматни гросмайстори."

Кодът за задвижване на шахматната машина, потвърждава, че ходът е валиден и т.н. е ChessBoard.py

Използвам някакъв код от https://chess.fortherapy.co.uk за взаимодействие с това. Моят код (по -горе) след това взаимодейства с това!

Стъпка 4: Софтуерът, който разпознава движението на човека

Описах това подробно в инструкцията за моята конструкция Lego на Chess Robot - така че няма нужда да го повтарям тук!

Моите „черни“парчета първоначално бяха кафяви, но ги боядисах в матово черно (с „боя за черна дъска“), което прави алгоритъма да работи по -добре при по -променливи условия на осветление.

Стъпка 5: Камера, светлини, клавиатура, маса, дисплей

Камера, светлини, клавиатура, маса, дисплей
Камера, светлини, клавиатура, маса, дисплей
Камера, светлини, клавиатура, маса, дисплей
Камера, светлини, клавиатура, маса, дисплей

Те са същите като в моята версия Lego на Chess Robot, така че няма нужда да ги повтарям тук.

Само че този път използвах различен и значително по -добър високоговорител, Lenrui Bluetooth високоговорител, който свързвам към RPi чрез USB.

Предлага се от amazon.com, amazon.co.uk и други търговски обекти.

Също така сега използвам различна камера - HP Webcam HD 2300, тъй като не можах да накарам предишната камера да се държи надеждно.

Алгоритмите работят най -добре, ако шахматната дъска има цвят, който е далеч от цвета на фигурите! В моя робот фигурите са почти бели и кафяви, а шахматната дъска е ръчно изработена от карта и е светлозелена с малка разлика между "черните" и "белите" квадратчета.

Алгоритмите се нуждаят от определена ориентация на камерата към борда. Моля, коментирайте по -долу, ако имате проблем. Ръката има ограничен обхват и затова квадратният размер трябва да бъде 3,5 см.

Стъпка 6: Получаване на софтуера

1. Запас

Ако стартирате Raspbian на вашия RPi, можете да използвате двигателя Stockfish 7 - това е безплатно. Просто бягай:

sudo apt-get install stockfish

2. ChessBoard.py Вземете това от тук.

3. Код, базиран на https://chess.fortherapy.co.uk/home/a-wooden-chess… Идва с моя код.

4. Библиотека с обратна кинематика на Python 2D -

5. Моят код, който извиква целия код по -горе и който кара робота да прави движенията, и моят код за зрение. Вземете това от мен, като първо се абонирате за канала ми в YouTube, след това щракнете върху бутона „Любими“в горната част на тази инструкция и след това публикувате коментар в тази инструкция и аз ще отговоря.

Препоръчано: