Turinys:

„Walking Strandbeest“, „Java“/„Python“ir valdomos programos: 4 žingsniai (su nuotraukomis)
„Walking Strandbeest“, „Java“/„Python“ir valdomos programos: 4 žingsniai (su nuotraukomis)

Video: „Walking Strandbeest“, „Java“/„Python“ir valdomos programos: 4 žingsniai (su nuotraukomis)

Video: „Walking Strandbeest“, „Java“/„Python“ir valdomos programos: 4 žingsniai (su nuotraukomis)
Video: SerialMonitor running on Raspberry Pi 2024, Lapkritis
Anonim

Sekite daugiau autoriaus:

Eksperimentinis paprasto harmoninio judesio tyrimas
Eksperimentinis paprasto harmoninio judesio tyrimas
Eksperimentinis paprasto harmoninio judesio tyrimas
Eksperimentinis paprasto harmoninio judesio tyrimas

Šis „Strandbeest“rinkinys yra „pasidaryk pats“kūrinys, pagrįstas Theo Janseno išrasta „Strandbeest“. Nustebintas genialiu mechaniniu dizainu, noriu jį aprūpinti visišku manevringumu, o vėliau - kompiuteriu. Šioje instrukcijoje mes dirbame su pirmąja dalimi - manevringumu. Taip pat aptariame kreditinės kortelės dydžio kompiuterio mechaninę struktūrą, kad galėtume žaisti su kompiuterio vizija ir AI apdorojimu. Siekdamas supaprastinti statybos darbus ir nenaudojau „arduino“ar panašaus programuojamo kompiuterio, aš sukūriau „Bluetooth“aparatūros valdiklį. Šis valdiklis, veikiantis kaip terminalas, sąveikaujantis su robotų aparatine įranga, yra valdomas galingesnės sistemos, tokios kaip „Android“telefono programa arba „RaspberryPi“ir kt. Valdymas gali būti mobiliojo telefono vartotojo sąsajos valdymas arba programuojamas valdymas python arba „Java“kalba. Vienas SDK kiekvienai programavimo kalbai yra atvirojo kodo, pateiktas

Kadangi mini „Strandbeest“vartotojo vadove gana aiškiai paaiškinami statybos etapai, šioje instrukcijoje mes sutelksime dėmesį į informaciją, kuri paprastai nėra aprašyta vartotojo vadove, ir į elektrines/elektronines dalis.

Jei mums reikia daugiau intuityvios idėjos apie mechaninį šio rinkinio surinkimą, galima rasti nemažai gerų vaizdo įrašų surinkimo tema, pvz.,

Prekės

Norint sukonstruoti šio „Strandbeest“mechaninę dalį ir atlikti visus elektros sujungimus, reikia užtrukti mažiau nei 1 valandą, jei neskaičiuojama 3D spausdinimo laukimo trukmė. Tam reikia šių dalių:

(1) 1x standartinis „Strandbeest“rinkinys (https://webshop.strandbeest.com/ordis-parvus)

(2) 2x nuolatinės srovės variklis su pavarų dėže (https://www.amazon.com/Greartisan-50RPM-Torque-Re…)

(3) 1x „Bluetooth“valdiklis (https://ebay.us/Ex61kC?cmpnId=5338273189)

(4) 1x LiPo baterija (3,7 V, jūsų pasirinkta talpa mAh)

(5) 12x M2x5.6mm medvaržčiai

(6) 2 mm skersmens anglies arba bambuko strypas

3D spausdinkite šias dalis:

(1) 1x pagrindinis robotikos korpusas

(Atsisiųsti tik 3D spausdinimo dizaino failą su „Bluetooth“valdikliu)

(3D spausdinimo dizaino failas su papildomu „OrangePi Nano“atsisiuntimu)

(2) 2x pavaros veleno flanšas (3D spausdinimo dizaino failo atsisiuntimas)

(3) 2x maitinimo sistemos įrenginys (atsisiųsti 3D spausdinimo dizaino failą)

Kiti:

„Android“mobilusis telefonas. Eikite į „Google Play“parduotuvę, ieškokite M2ROBOTS ir įdiekite valdymo programą.

Jei sunku pasiekti „Google Play Store“, apsilankykite mano asmeniniame pagrindiniame puslapyje, kur rasite alternatyvų programos atsisiuntimo būdą

1 žingsnis: dalių organizavimas

Dalių organizacija
Dalių organizacija
Dalių organizacija
Dalių organizacija
Dalių organizacija
Dalių organizacija
Dalių organizacija
Dalių organizacija

Šiame etape mes suorganizuosime visas surinktas dalis. 1 pav. parodytos visos supakuotos plastikinės dalys, kurias naudojame kurdami „Strandbeest“modelį. Jie gaminami liejimo būdu, kuris yra labai efektyvus, palyginti su kitais apdirbimo gamybos metodais, tokiais kaip 3D spausdinimas ar frezavimas. Štai kodėl mes norime maksimaliai išnaudoti masinės gamybos produkto pranašumus ir pritaikyti tik mažiausią dalių kiekį.

Kaip parodyta 2 pav., Kiekvienas plastikinės plokštės gabalas turi paženklintą abėcėlę, o atskira dalis neturi etiketės. Kai jie bus išardyti, ženklinimo nebebus. Norėdami išspręsti šią problemą, galime įdėti to paties tipo dalis į skirtingas dėžutes arba tiesiog pažymėti kelias sritis popieriaus lape ir įdėti vienos rūšies dalis į vieną sritį, žr. 3 pav.

Norėdami nupjauti plastikinę dalį nuo didesnės surinkimo plastikinės plokštės, žirklės ir peilis gali būti ne tokie efektyvūs ir saugūs kaip replė, parodyta 4 ir 5 pav.

Viskas čia pagaminta iš plastiko, išskyrus tai, kad pirštų medžiaga yra guma, žr. 6 pav. Pjaustyti galime pagal iš anksto paruoštus pjūvius. Minkšta gumos medžiaga suteikia geresnį sukibimo su sukibimu efektyvumą. Tai ypač pasakytina lipant į šlaitą. Vėlesnėse temose galime išbandyti jo gebėjimą lipti skirtingu nuolydžio kampu, su guminiais pirštais ir be jų. Kai nėra slydimo, tai vadinama statine trintis. Kai jis praranda sukibimą, jis tampa kinetine trintis. Trinties koeficientas priklauso nuo naudojamų medžiagų, todėl turime guminius pirštus. Kaip suplanuoti eksperimentą, pakelti ranką ir kalbėti.

Paskutiniame paveikslėlyje yra šio modelio „Strandbeest“„ECU“, „Power train“ir važiuoklė.

2 žingsnis: Taškai, į kuriuos verta atkreipti dėmesį mechaninio surinkimo metu

Taškai, į kuriuos verta atkreipti dėmesį mechaninio surinkimo metu
Taškai, į kuriuos verta atkreipti dėmesį mechaninio surinkimo metu
Taškai, į kuriuos verta atkreipti dėmesį mechaninio surinkimo metu
Taškai, į kuriuos verta atkreipti dėmesį mechaninio surinkimo metu
Taškai, į kuriuos verta atkreipti dėmesį mechaninio surinkimo metu
Taškai, į kuriuos verta atkreipti dėmesį mechaninio surinkimo metu

„Mini-Strandbeest“turi gana gerą vartotojo vadovą. Turėtų būti lengva sekti instrukciją ir užbaigti surinkimą. Praleisiu šį turinį ir pabrėšiu keletą įdomių dalykų, vertų mūsų dėmesio.

1 pav. Viena gumos pirštus laikanti plyšio pusė yra 90 laipsnių kampas, o kita pusė turi 45 laipsnių nuolydį, kuris oficialiai vadinamas nuožulnumu. Toks nuolydis nukreipia guminį pirštą, kad jis tilptų į plastikinę koją. Pabandykite uždėti pirštus iš šono su nuožulnumu, žr. 2 pav., Tada išbandykite kitą pusę. Skirtumas labai pastebimas. Dešinėje 3 paveikslo pusėje yra mūsų „Stranbeest“švaistiklis. Jis labai panašus į variklio, automobilio variklio, motociklo variklio alkūninį veleną, visi turi tą pačią struktūrą. „Strandbeest“, kai alkūnė sukasi, ji skatina kojas judėti. Varikliui tai stūmoklio judesys, verčiantis sukti alkūnę. Toks 120 laipsnių atskyrimas apskritime taip pat lemia trifazį variklį arba generatorių, elektros galia yra 120 laipsnių viena nuo kitos, parodyta 4 pav. Surinkę kairiojo ir dešiniojo korpuso mechanines dalis, dabar pradedame dirbti su dalimis, kurias pridedame prie „Strandbeest“, žr. 5 pav. 6 pav. Yra žingsnis, kuriuo mes naudojame 3-D spausdintą variklio spaustuką, kad pritvirtintume variklį prie 3-D spausdintos važiuoklės. Šiame etape triukas yra tas, kad nė vienas varžtas neturėtų būti priveržtas prieš sureguliuojant variklio padėtį taip, kad šoninis važiuoklės paviršius būtų toks pat kaip variklio paviršius. Kai būsime patenkinti lygiavimu, galime priveržti visus varžtus. Pereikite prie 7 pav. Mes dirbame su flanšo movos montavimu, prijungdami variklio išėjimą prie švaistiklio. Variklio pusę yra sunkiau sumontuoti nei alkūninės pusės jungtį, žr. 8 pav. Todėl pirmiausia prijungiame variklio šoninį flanšą. Kai sumontuota abiejų variklių flanšo mova, kaip parodyta 9 pav., Važiuoklę ir kairę/dešinę einančią konstrukciją sujungiame dviem 2 mm skersmens anglies strypais. Tai vyksta FIg.10. Iš viso šiems subjektams sujungti naudojame 3 gabalus anglies strypų. Tačiau šiame žingsnyje mes sujungiame tik du iš jų, nes turime pasukti alkūnę ir pritaikyti jungę tarp flanšo ir alkūnės. Jei buvo 3 anglies strypų dalys, bus sunkiau sureguliuoti santykinę padėtį ir jas sujungti. Galiausiai, mes turime galutinę surinktą mechaninę sistemą, 11 pav. Kitas žingsnis - dirbkime su elektronika.

3 žingsnis: elektros prijungimas

Elektrinis sujungimas
Elektrinis sujungimas
Elektrinis sujungimas
Elektrinis sujungimas
Elektrinis sujungimas
Elektrinis sujungimas

Visoms elektroninėms sistemoms reikalingas maitinimas. 1 elemento bateriją galime įdėti kur nors patogioje vietoje, pavyzdžiui, po 1 pav. Maitinimo šaltinio poliškumas yra toks svarbus, kad jį reikia aptarti. 2 pav. Parodyta akumuliatoriaus jungtis. Valdiklio plokštėje poliškumas pažymėtas „+“ir „GND“, žr. 3 pav. Kai akumuliatoriuje išsikrauna sultys, akumuliatoriui įkrauti naudojamas USB kabelis, žr. 4 pav. Šviesos diodas, rodantis „įkrovimo procesas“, automatiškai išsijungs, kai akumuliatorius vėl bus pilnas. Paskutinis žingsnis yra prijungti variklio išėjimus prie variklio jungčių valdiklio plokštėje. Yra 3 variklio jungtys, pažymėtos numeriu 16 3 pav. 5 pav. Kairysis variklis yra prijungtas prie kairiausio jungties, pažymėtos PWM12, o dešinysis - prie vidurinės jungties. Šiuo metu bako (diferencinio važiavimo transporto priemonės) sukimas į kairę yra užkoduotas kaip variklio įėjimo galios, prijungtos prie PWM12 variklio prievado, sumažėjimas. Todėl variklis, prijungtas prie PWM12 prievado, turėtų vairuoti kairę koją. Vėliau visas maišymo funkcijas paversiu vartotojo konfigūruojamais. kaip pakeisdami variklio jungties pasirinkimą arba pakeisdami variklio jungties kryptį, mes galime išspręsti tokią problemą kaip „Strandbeest“juda atgal, kai jam liepta judėti į priekį, sukant neteisingą kryptį, nepamirškite, kad nuolatinės srovės variklis keičia savo sukimosi kryptį, jei įvesties laidas yra prijungtas prie valdymo maitinimo atvirkštine tvarka.

4 veiksmas: programos nustatymai ir veikimas

Programos nustatymai ir veikimas
Programos nustatymai ir veikimas
Programos nustatymai ir veikimas
Programos nustatymai ir veikimas
Programos nustatymai ir veikimas
Programos nustatymai ir veikimas
Programos nustatymai ir veikimas
Programos nustatymai ir veikimas

Pirmiausia atsisiunčiame „Android“programą iš „Google Play“parduotuvės, žr. 1 pav. Ši programa turi daug kitų funkcijų, kurių negalime apimti šioje instrukcijoje, mes sutelksime dėmesį tik į tiesiogiai susijusias „Strandbeest“temas.

Įjunkite aparatūros „Bluetooth“valdiklį, jis bus rodomas atradimų įrenginių sąraše. Ilgai paspaudus, mes pateksime į tiesioginio atsisiuntimo funkciją, kurią vėliau galėsime „nurodyti“. Prieš spustelėdami ir pradėdami valdyti, pirmiausia atlikime keletą konfigūracijų spustelėdami viršutinį dešinįjį kampą „Nustatymai“. 2 pav. Jis paslėptas po… piktograma. 3 pav. Parodytos kelios nustatymų kategorijos. Šie programoje sukonfigūruoti nustatymai yra įgyvendinami trimis būdais: 1) kai kurie nustatymai turi įtakos tik programos veikimui, pavyzdžiui, aritmetika, skirta gauti kiekvieno variklio galios valdymo komandą iš jūsų vairo ir droselio komandos. Jie gyvena programėlėje. Kai kuriose vėlesnėse instrukcijose parodysime, kaip jas pakeičiame savo „Python“/„Java“programomis. 2) kai kurie nustatymai siunčiami į aparatinę įrangą kaip ore esantis valdymo protokolas, pvz., Perjungimas tarp tiesioginio valdymo (servo posūkis tiksliai nurodytas kampas) ir skraidymas laidu (įmontuotas autonominio valdiklio funkcijos modulis valdo servo kanalas pagal vartotojo komandą ir esamą požiūrį) 3) kai kurie nustatymai bus siunčiami į nepastovią atmintį aparatūros valdiklyje. Taigi aparatūra laikysis šių nustatymų kiekvieną kartą, kai bus įjungta be konfigūracijos. Pavyzdys bus įrenginio „Bluetooth“transliacijos pavadinimas. Norint, kad tokie nustatymai įsigaliotų, reikalingas maitinimo ciklas. Pirmoji kategorija, į kurią mes pasineriame, yra „Bendrieji nustatymai“4 pav. 5 pav. „Programos valdymo funkcija“apibrėžia, kokį vaidmenį atlieka ši programa - aparatūros įrenginio valdiklis tiesioginiu „Bluetooth“ryšiu; tiltas per intranetą/internetą, skirtas nuotolinio dalyvavimo kontrolei; ir tt Toliau, 6 pav. puslapis „HW type“nurodo programai, kad dirbate su diferencialine vairavimo transporto priemone, todėl reikia pasirinkti „bako“režimą. Iš viso turime 6 PWM išėjimus. „Strandbeest“atveju turime sukonfigūruoti 1–4 kanalą pagal 7 pav. Kiekvienas PWM kanalas veikia vienu iš šių režimų: 1) servo normalus: RC servo valdomas nuo 1 iki 2 ms PWM signalo variklis ar koks nors elektros elektros prietaisas, gali būti valdomas darbo ciklo režimu, 0% yra išjungtas, 100% visada įjungtas. 4) nuolatinės srovės variklio darbo ciklo atvirkštinė eiga: vėl valdiklis pakeis vartotojo valdymą savo išėjimui. Kadangi mes naudojame nuolatinės srovės variklį ir rūpinamės variklio sukimosi kryptimi pagal aparatūros laidų tvarką, mes pasirenkame „nuolatinės srovės variklio darbo ciklą“1 kanalui 4, žr. 8 pav. Mes taip pat turime sujungti 2 PWM kanalus į 1 H tiltą, kad būtų galima valdyti dvi puses. Šis žingsnis parodytas 9 pav. Režimu „2 PWM kanalai į 1 H tiltą“1, 3 ir 5 kanalai naudojami valdyti abu susietus kanalus. Tai reiškia, kad reikia perjungti droselio valdiklį, vairasvirtės valdymą aukštyn žemyn iš numatytojo 2 kanalo į 3 kanalą. Tai pasiekiama 10 pav. Nustatymuose. Kaip parodyta 11 pav., Kiekvienas kanalas sukonfigūruotas priimti vieną savavališką įvesties šaltinį.

Bingo, dabar atlikome minimalią reikiamą konfigūraciją ir galime grįžti į puslapį, kuriame rodomas matomas „Bluetooth“įrenginys, ir jį prijungti. 12 pav. Pabandykite paleisti vairasvirtę ir galėsime smagiai praleisti laiką su šiuo „Strandbeest“. Pabandykite įkopti į tam tikrą šlaitą, prisiminkite trinties tarp medžiagų tipų analizę ir perskaitykite skrydžio valdiklio apskaičiuotą požiūrį, kuris parodytas eilutėje, pažymėtoje „RPY (deg)“, keturi šios eilutės įrašai yra riedėjimas, žingsnis, posūkio kampas įvertintas laive esančiu giroskopu ir akselerometru; paskutinis įrašas yra kompaso išvesties kompensavimas.

Būsimas darbas: šiose instrukcijose mes palaipsniui apimsime jo programavimo sąsają, pasirinksime mėgstamą kalbą „Java“arba „Python“, kad galėtumėte bendrauti su „Strandbeest“, ir nebeskaitysime „strandbeest“būsenos iš mobiliojo telefono ekrano. Taip pat pradėsime programuoti „RaspberryPi“tipo „Linux“kompiuteryje, kad gautumėte daugiau pažangių programavimo temų, žr. Paskutinį paveikslėlį. Patikrinkite 3D spausdinimo mechanines dalis https://xiapeiqing.github.io/doc/kits/strandbeest/roboticKits_strandbeest/ ir SDK ir pavyzdinį kodą https://github.com/xiapeiqing/m2robots.git, jei norite nedelsdami pradėti. Leiskite man žinoti, kokia yra jūsų pageidaujama programavimo kalba, jei ne „Java“ar „Python“, galiu pridėti naują SDK versiją.

Mėgaukitės įsilaužimu ir sekite toliau nurodytas instrukcijas.

Rekomenduojamas: