Სარჩევი:

რეალურ დროში Rubik's Cube Blindfolded Solver Raspberry Pi და OpenCV გამოყენებით: 4 ნაბიჯი
რეალურ დროში Rubik's Cube Blindfolded Solver Raspberry Pi და OpenCV გამოყენებით: 4 ნაბიჯი

ვიდეო: რეალურ დროში Rubik's Cube Blindfolded Solver Raspberry Pi და OpenCV გამოყენებით: 4 ნაბიჯი

ვიდეო: რეალურ დროში Rubik's Cube Blindfolded Solver Raspberry Pi და OpenCV გამოყენებით: 4 ნაბიჯი
ვიდეო: ამ რობოტმა რუბიკის კუბი გადაწყვიტა მსოფლიო რეკორდულ დროში 2024, ნოემბერი
Anonim

ეს არის რუბიკის კუბის ინსტრუმენტის მე –2 ვერსია, რომელიც შექმნილია თვალდახუჭულთა მოსაგვარებლად. პირველი ვერსია შემუშავებულია javascript– ით, თქვენ შეგიძლიათ ნახოთ პროექტი RubiksCubeBlindfolded1

წინა ვერსიისგან განსხვავებით, ეს ვერსია იყენებს OpenCV ბიბლიოთეკას ფერების გამოსავლენად და შესასვლელებში და უზრუნველყოფს ვიზუალიზაციის უკეთეს ტექნიკას.

ამ უახლეს ვერსიაში ყველაზე დიდი პრობლემაა გამომავალი მონაცემების ვიზუალიზაცია, თანმიმდევრობის ელემენტები ნაჩვენებია დახატულ კუბიზე 1 ერთდროულად. ვინაიდან კუბი არის 3D ფორმა, ძნელია ყველა მხარის ჩვენება ერთდროულად. შედეგები ნახეთ ჩემს YouTube არხზე YouTube ვიდეოზე

მე ვიყენებ სტიკერის კუბს, ამას სჭირდება პერსონალური ამოცნობა და ღია კოდების უმეტესობა არ არის მხარდაჭერილი. მე გამოვიყენე კიმ კუმენის მიერ შემუშავებული ეს ღია წყარო, რომელიც განსაზღვრავს კამერის ჩარჩოს ფიქსირებულ ადგილებს კუბის სახეების სწორი ფერების გამოსაჩენად qbr პროექტი

ნაბიჯი 1: საჭირო კომპონენტები

  • ჟოლო პი
  • ვებკამერა

ან შეგიძლიათ გამოიყენოთ თქვენი ლეპტოპი

ნაბიჯი 2: დამოკიდებულებები

  • პითონი 3
  • დაბუჟებული ბიბლიოთეკა
  • OpenCV ბიბლიოთეკა

$ sudo apt-get დააინსტალირეთ python3-opencv

Rubiks თვალდახუჭული პაკეტი

$ pip3 დააინსტალირეთ RubiksBlindfolded

ნაბიჯი 3: მომზადება

თქვენ უნდა დააკალიბროთ ფერის ამოცნობა, როგორც წინასწარი ნაბიჯი. HSV ფერის კოდები განსხვავდება განათების, კამერის ხარისხისა და გარჩევადობის გამო და თავად კუბის ფერები. ჩემს შემთხვევაში, მე ვაერთიანებ თეთრ და ყვითელ შუქებს სწორი შედეგის მისაღებად.

განაახლეთ get_color_name (hsv) ფუნქცია colordetection.py- ზე

ორიგინალური წყაროს კოდი იყენებს kociemba პაკეტს კუბის ამოსახსნელად, ის წყვეტს ნებისმიერი შეჯახების საპირისპირო საფეხურების პოვნით. ამ ვერსიაში მე გამოვიყენე ჩემი გადაჭრის პაკეტი სახელად RubiksBlindfolded, რომელიც გამოქვეყნდა PyPI– ზე. იხილეთ აღწერა, რომ იცოდეთ როგორ გამოიყენოთ იგი RubiksBlindfolded

ნაბიჯი 4: გამოყენება

გამოყენება
გამოყენება
გამოყენება
გამოყენება

ყველა დამოკიდებულების დაყენების და კამერის დაყენების შემდეგ, ეს დროა თვალდახუჭული.პი სკრიპტის გასაშვებად

პირველ რიგში, თქვენ უნდა დაასკანიროთ თქვენი კუბი სწორი ორიენტაციით. ეს არის კუბის სტრუქტურა, სახეების სკანირების რიგი არ არის მნიშვნელოვანი. გაითვალისწინეთ, რომ ეს არის კუბის სახეების ნაგულისხმევი ფერები, თქვენ შეგიძლიათ შეცვალოთ ისინი თვალდახუჭული.პაი სკრიპტზე აღნიშვნის ლექსიკონის განახლებით

სკანირების გასაკეთებლად დააჭირეთ სივრცის ღილაკს, რომ შეინახოთ ხედი და ESC გასაღები დასრულების შემდეგ

მეორე, თქვენ შეგიძლიათ ნახოთ გადაწყვეტის თანმიმდევრობა კონსოლზე და პარიტეტულობის შემოწმება, რათა გითხრათ, გჭირდებათ პარიტეტული ალგორითმის გამოყენება თუ არა

მესამე, შეიქმნება ახალი ჩარჩო, რომელიც აჩვენებს 2 დახატულ კუბს კიდეების თანმიმდევრობით და კუთხის მიმდევრობით. თქვენ შეგიძლიათ გამოიყენოთ მარცხენა და მარჯვენა ისრის ღილაკები თანმიმდევრობის ელემენტებს შორის გადასაადგილებლად, ხოლო ზემოთ და ქვემოთ ისრები ღილაკზე ზღვარსა და კუთხეს შორის გადართვისთვის. ღია ნაცრისფერი ფერი წარმოადგენს მიმდინარე თანმიმდევრობას.

თქვენ შეგიძლიათ ნახოთ მიმდინარე ბუფერის ფერები, რომლებიც დინამიურად იცვლება ისრის ღილაკებით. ნაცრისფერი ფერები წარმოადგენს სამიზნე კუბიკს, ხოლო ვარდისფერი ფერი ცვლის სახეზე

Საწყისი კოდი

github.com/mn-banjar/blindfolded2

გირჩევთ: