Orodha ya maudhui:

Mradi wa BricKuber - Raspberry Pi Rubiks Cube Kutatua Robot: Hatua 5 (na Picha)
Mradi wa BricKuber - Raspberry Pi Rubiks Cube Kutatua Robot: Hatua 5 (na Picha)

Video: Mradi wa BricKuber - Raspberry Pi Rubiks Cube Kutatua Robot: Hatua 5 (na Picha)

Video: Mradi wa BricKuber - Raspberry Pi Rubiks Cube Kutatua Robot: Hatua 5 (na Picha)
Video: Dexter Industries at DevFest 2018 in Washington DC 2024, Desemba
Anonim
Image
Image

BricKuber inaweza kutatua mchemraba wa Rubik kwa chini ya dakika 2.

BricKuber ni chanzo wazi roboti ya kutatua mchemraba unaoweza kujijenga

Tulitaka kujenga mchemraba wa kusuluhisha mchemraba wa Rubiks na Raspberry Pi. Badala ya kwenda kwa kasi, tulikwenda kwa urahisi: ikiwa una Raspberry Pi, kit cha BrickPi, na kiwango cha LEGO Mindstorms EV3 au NXT Kit, unapaswa kufuata nyayo zetu kwa urahisi. Programu imeandikwa katika lugha ya programu ya Python. Unaweza kuona nambari yote ya chanzo kwenye Github hapa.

Asili Mchemraba wa Rubik hivi karibuni umeanza kurudi. Iliyoundwa katika 1974, ni toy ya kuuza zaidi duniani. Lakini kuyatatua kunahitaji mawazo, bidii, na ustadi… kwa nini usiruhusu roboti ifanye? Katika mradi huu, tunachukua Raspberry Pi, BrickPi, na seti ya LEGO Mindstorms na tunaunda roboti ya kutatua mchemraba wa Rubik. Weka tu mchemraba wa Rubik ambao haujasuluhishwa kwenye suluhisho, endesha programu ya chatu, na mchemraba wako wa Rubik umetatuliwa! Mradi hutumia Pi kutatua moja kwa moja mchemraba wa Rubik. BrickPi3 inachukua mchemraba wa Rubik ambao haujasuluhishwa na Raspberry Pi inachukua picha ya kila upande wa mchemraba wa Rubik na Kamera ya Raspberry Pi. Pi huunda ramani ya maandishi ya miraba ya rangi ambayo inaonyesha ni wapi iko kwenye mchemraba. Wakati ina ramani kamili ya mchemraba, Pi hutumia maktaba ya "kociemba" ya chatu kuorodhesha hatua zinazohitajika kusuluhisha mchemraba wa Rubik. Habari hii inachukuliwa na Pi na BrickPi3 kutatua mchemraba wa Rubik kwa kutumia motors za LEGO. Matokeo yake: mchemraba wa Rubik uliotatuliwa.

Hatua ya 1: Zana na Vifaa

Jenga
Jenga
  • BrickPi3 - Tutatumia BrickPi kudhibiti motors za LEGO zinazotatua suluhisho la mchemraba wa Rubik.
  • Raspberry Pi - The Pi atakuwa akifanya usindikaji, kupiga picha, na kuagiza BrickPi.
  • Kamera ya Raspberry Pi - Kamera ya Pi itachukua picha ya mchemraba wa Rubiks ambao haujasuluhishwa.
  • Cable ya Ethernet - Utahitaji mashine yako kuunganishwa kwenye mtandao. Ikiwa unataka kufanya hii juu ya wifi, hiyo ni sawa pia!
  • Raspbian kwa Kadi za Robots SD - Programu inayoendesha Raspberry Pi. Hii inakuja na programu nyingi zinazohitajika kwa mafunzo haya. Unaweza pia kupakua programu bila malipo.
  • LEGO Mindstorms EV3 Kit (31313) - Utahitaji rundo la LEGO na motors mbili kubwa, na motor moja ya servo, na Sensor ya Ultrasonic.
  • Mchemraba wa Rubik - Tulipata moja ambayo inazunguka kwa uhuru hapa. Unaweza kutumia tu kuhusu mchemraba wowote wa 9x9x9 Rubik ingawa.

Hatua ya 2: Jenga

Jenga
Jenga
Jenga
Jenga

Kujenga Solver

Ubunifu huu uliongozwa na muundo wa MindCub3r wa LEGO EV3. Ili kujenga BricKuber, anza kwa kujenga MindCub3r. Maagizo kamili ya jengo la LEGO yanaweza kupatikana hapa.

Ubunifu wa suluhisho la mchemraba wa Rubiks una sehemu kuu tatu zinazohamia. Ya kwanza ni utoto wa kushikilia mchemraba wa Rubik. Ya pili ni shuffler, mkono ambao hutumiwa kugeuza mchemraba wa Rubik.

Mwishowe, tunaongeza mkono wa kamera. Katika muundo wa asili na MindCubr, hii ilishikilia sensorer ya rangi ya EV3 juu ya mchemraba wa Rubik. Katika muundo wetu uliobadilishwa, inashikilia Kamera ya Raspberry Pi juu ya mchemraba wa Rubik. Tunatumia motors mbili za LEGO Mindstorms kudhibiti mchemraba: wa kwanza huketi chini ya utoto ili kuzungusha mchemraba, na ya pili inasonga mkono wa shuffler kuzungusha mchemraba kwenye mhimili ulio kinyume.

Kusanya BrickPi3

Unaweza kupata maagizo ya mkutano wa BrickPi3 hapa. Tutahitaji kukusanya kesi, ambatanisha BrickPi3, Raspberry Pi, Raspberry Pi Camera, ongeza Kadi ya SD, na uongeze betri. Ili kurahisisha usanidi wa programu, Raspbian ya Robots huja na programu nyingi utahitaji usanidi tayari. Utahitaji angalau Kadi ya SD ya 8 GB, na utataka kupanua diski ili kutoshea saizi kamili ya Kadi ya SD.

Ambatisha BrickPi3

Tunaongeza BrickPi3 kwenye mkutano wa LEGO. Tulitumia "mabawa" ya LEGO EV3 kusaidia BrickPi3 na kuifanya iwe sawa na mwili wa BricKuber. Hii ni hatua nzuri ya kuongeza betri 8XAA kwenye kifurushi cha umeme na ambatanisha kifurushi cha nguvu cha BrickPi3 kwenye mkutano wa LEGO. Kwa programu unaweza kuwasha BrickPi3 kupitia nguvu ya USB kwa Raspberry Pi, hata hivyo kusonga motors utahitaji kusambaza umeme na Ufungashaji wa Power.

Unganisha Motors kwa BrickPi3

Ambatisha Shuffler Motor kwa bandari ya magari "MD". Ambatisha gari la utoto kwenye bandari ya "MA" kwenye BrickPi3. Ambatisha motor sensor ya kamera kwenye bandari ya "MC" (hii ni motor ndogo kama servo). Ingawa hatutasogeza kamera, unaweza kutaka kurekebisha eneo la kamera kwa kutumia motors.

Ambatisha Kamera ya Raspberry Pi

Kutumia msaada wa Kamera ya LEGO, ambatanisha kamera. Lens ndogo nyeusi ya kamera inapaswa kutoshea kati ya msaada wa boriti mbili za LEGO. Salama kamera mahali pa msaada wa LEGO na mkanda wa umeme. Huu ni wakati mzuri wa kuhakikisha kuwa kamera iko katika nafasi ya kuweza kukamata mchemraba mzima wa Rubik. Unaweza kuchukua picha ya jaribio na amri ya raspistill

raspistill -o cam.jpg

Angalia kwamba mchemraba umezingatia katikati ya picha.

Hatua ya 3: Andaa Programu

Unaweza kutumia toleo lolote la Raspbian au Raspbian kwa Robots, picha yetu ya kawaida ambayo inakuja na BrickPi3 tayari imewekwa. Ikiwa unatumia toleo la kawaida la Raspbian, unaweza kufunga maktaba ya BrickPi3 ukitumia amri

Sura ya curl -kL dexterindustries.com/update_brickpi3 | bash

Hatua hii itaweka maktaba zote zinazohitajika kuendesha BrickPi3 kwenye Picha yako ya Raspbian. Ruka hatua hii ikiwa unatumia Raspbian kwa Robots: BrickPi3 tayari imewekwa.

Mwishowe, weka utegemezi wote wa mradi ukitumia amri:

curl ya sudo https://raw.githubusercontent.com/DexterInd/Brick ……. | bash

Kwa hatua hii BrickPi3 yako itahitaji kuunganishwa kwenye mtandao. Kuna maktaba kadhaa ambayo mradi unategemea, pamoja na zile muhimu na Daniel Walton (@ dwalton76) kwenye Github, ambazo hutumiwa kutatua mchemraba wa Rubik.

Hatua ya 4: Tatua Mchemraba wa Rubik

Tatua Mchemraba wa Rubik
Tatua Mchemraba wa Rubik
Tatua Mchemraba wa Rubik
Tatua Mchemraba wa Rubik
Tatua Mchemraba wa Rubik
Tatua Mchemraba wa Rubik

Weka mchemraba wa Rubik ambao haujasuluhishwa kwenye utoto. Endesha amri

sudo python ~ / Dexter / BrickPi3 / Miradi / BricKuber / BricKuber.py

Roboti itageuza mchemraba kwa kila uso na kamera itachukua picha 6, moja ya kila upande wa Mchemraba. Raspberry Pi itaamua usanidi wa mchemraba kutoka picha sita. Usanidi wa mchemraba utapelekwa kwa maktaba ya kociemba Python kupata suluhisho bora. Mwishowe, roboti itafanya hatua za kutatua Mchemraba wa Rubik!

Hatua ya 5: Nambari ya Chanzo

Nambari yote ya chanzo ya BricKuber inaweza kupatikana katika chanzo chetu cha wazi cha github hapa.

Mradi huu unatumia vifurushi vya programu vifuatavyo vilivyowekwa na amri

Ilipendekeza: