Мазмұны:

EV3: 6 қадамдарын қолданатын автоматты соқыр ашқыш
EV3: 6 қадамдарын қолданатын автоматты соқыр ашқыш

Бейне: EV3: 6 қадамдарын қолданатын автоматты соқыр ашқыш

Бейне: EV3: 6 қадамдарын қолданатын автоматты соқыр ашқыш
Бейне: Лекция 1. LEGO Education Mindstorms EV3 робот техникасы алғашқы қадамдары 2024, Қыркүйек
Anonim
EV3 көмегімен автоматты соқыр ашқыш
EV3 көмегімен автоматты соқыр ашқыш
EV3 көмегімен автоматты соқыр ашқыш
EV3 көмегімен автоматты соқыр ашқыш

Менің жатын бөлмемде роликті жалюзи жалюзи бар, мен оны таңертең немесе кешке ашуды немесе жабуды ұмытып кетемін. Мен ашылу мен жабылуды автоматтандырғым келеді, бірақ мен өзгерген кезде.

1 -қадам: Ықтимал идеялар немесе шешімдер

YouTube, Instructables және Thingiverse сияқты әр түрлі сайттарды қарап шыққаннан кейін мен табылған моторды немесе серво көмегімен жалюзиді орайтын және босататын катушканы қозғалту ең кең таралған шешім екенін таптым. Мен әр түрлі артықшылықтары мен кемшіліктері бар 2 негізгі нұсқаны таптым.

Идея 1: Қозғалтқыш пен беріліс катушканың ішінде орналасқан спул әдісі. Бұл артықшылықтары бар, бұл ұқыпты және талғампаз әдіс, бірақ кемшіліктері бар, ол соқырларға үлкен өзгертулерді қажет етеді, сым енді қолданылмайды және құрастыру кезінде техникалық қызмет көрсету үшін кіру өте қиын болады.

Идея 2: қозғалтқыш пен беріліс сымға бекітілген сым әдісі. Бұл артықшылығы - бұл қарапайым және жинауға оңай қол жетімді. Бірақ оның жағымсыз жағы бар, ол ұсқынсыз және көлемді болуы мүмкін, сонымен қатар оны іске асырған кезде төсенішке бекіту керек.

Мен сымның әдісін қолданғанды жөн көремін, ол сымды қолмен қолдануға кедергі жасамайды, ал соқырлар үлкен өзгерістерді қажет етпейді. Мен ESP8266 көмегімен соңғы нұсқаны жасаған кезде оны мүмкіндігінше жасырын және ықшам етіп жасауды жоспарлап отырмын.

2 -қадам: Ассамблея құру

Ассамблея құру
Ассамблея құру
Ассамблея құру
Ассамблея құру

Мен бұл жобаны EV3 Lego mindstorms EV3 көмегімен жасадым, оның функционалдығы бар, мен жобаның жұмыс істей алатынын көрсетуім керек және мен көп көмектесті бағдарламалық жасақтаманы жақсы білемін. Соқырлар катушканы басқару үшін шарикті тізбекті қолданатындықтан, Lego редукторлары сәйкес келмейтіндіктен, мен ең жақсы шешім- дөңгелекті сыртынан дұрыс аралықпен- стандартты «крест тәрізді» тесікпен жасау деп шештім. орталығы, онда мен дизайнды 3D басып шығаратын едім. Осы кезде мен калибрлеу түймесін жасадым және терезеге жарық сенсорын, сонымен қатар ауыстыру қызметін атқаратын түймені қостым.

3 -қадам: Соқыр редуктордың дизайны

Соқыр редуктордың дизайны
Соқыр редуктордың дизайны
Соқыр редуктордың дизайны
Соқыр редуктордың дизайны
Соқыр редуктордың дизайны
Соқыр редуктордың дизайны
Соқыр редуктордың дизайны
Соқыр редуктордың дизайны

Мен иінді қалай толығырақ көрінетінін көру үшін соқырларды бөлшектедім. Бөлшектеу кезінде мен керілген катушкамен бекітілген 16 тісті шағын редукторды таптым, бұл мен іздеген бөлік. Редуктордың көшірмесін жасағаннан кейін мен Lego үйлесімді саңылауларды қостым, 3 бөлікті басып шығардым және ақырында оларды супплеймен байланыстырдым. Бастапқыда мен Lego бөлігін үйлесімді етуде қиындықтарға тап болдым, яғни менің 3D принтерімде «x» саңылауын жасауға жеткілікті рұқсат жоқ, бірақ оның екі жағындағы дөңгелек тесіктерде ешқандай проблемалар болған жоқ. Мен «x» белгісін дөңгелек тесікке ауыстырдым, ол жақсы басып шығарылды. Содан кейін, аз мөлшерде тестілеуден кейін мен оның момент пен соқырлардың салмағын көтере алатынын көрдім. Мен өзімнің конструкцияларымды төмендегі редуктормен байланыстырамын немесе сіз оны Thingiverse сайтынан таба аласыз:

4 -қадам: Соқырларды кодтау

Соқырларды кодтау
Соқырларды кодтау

Мен белгілі бір жарық деңгейіне жеткенде соқырларды автоматты түрде ашатын және жабатын кодты алғым келді, бірақ сонымен бірге перделерді қалаған кезде ашуға немесе жабуға мүмкіндік беретін ауыстыру түймесі болды. Мен GitHub -ты кодтың соңғы нұсқасымен байланыстырдым:

Жобаның кодын толтыру үшін маған бірнеше күн қажет болды, менде бағдарламаның негізгі логикасы жарық сенсорымен дұрыс жұмыс істеді, бірақ уақытша ауыстыру түймесі дұрыс жұмыс істемеді. Ол басылған кезде соқырдың жағдайын өзгертті, бірақ соқырдың орнында қалуын білдіретін «бекіту» функциясы жоқ еді, яғни соқырлар оны бұрынғы күйіне қайтарады. Мен мұны төменде түсіндіретін жарық сенсоры мен сенсордың мәндерін оқитын логикалық НЕМЕСЕ қақпаға байланған «күте тұру» блогының көмегімен түзеттім.

Код қозғалтқыштар мен соқырларды калибрлеуден басталады, перделер толығымен ашылып, төменгі жағындағы сенсор сенсорына тигенше төмен түсіреді, төменгіге жету үшін неше тоқсан айналу керектігін есептейді, ол «Айналу қажет» ретінде сақталады. айнымалы Содан кейін ол соқырлардың жағдайын бақылау үшін қолданылатын «BlindOpen» айнымалысына «жалған» деп жазады. Бұл кезде код 4 циклге бөлінеді.

Бұл ілмектердің бірі - батырманың күйін «ButtonPressed» деп аталатын айнымалыға үнемі жариялайтын «Buttonstate» циклы. Бұл сценарийге бірнеше түйме блоктарын қою қажеттілігін жояды.

Екінші цикл - бұл «ашық немесе қараңғы», ол терезенің сыртындағы жарық деңгейін кодта бұрын анықталған тұрақтылықпен үнемі салыстырады. Егер нәтиже осы тұрақты мәннен төмен болса, цикл «ItIsLight» айнымалысына «жалған» деп жазады, ал егер ол мәннен жоғары болса, ол «шын» деп жазады.

Үшінші циклде 3 нұсқа бар сандық тізім бар, олар негізінен соқырларға не істеу керектігін айтады, 0 = соқыр, 1 = соқыр, 2 = ештеңе жасамаңыз, себебі соқыр дұрыс жерде. Цикл соқырдың дұрыс жұмыс жасауын көрсететін «BlindShould» айнымалысын оқудан басталады, содан кейін бұл тапсырманы орындайды, «BlindOpen» айнымалысын дұрыс опцияға өзгертеді, содан кейін «BlindShould» айнымалысы өзгергенше бос болады. ол қайталанады. Ол «RotationsNeeded» мәнін, сондай-ақ соқырларды толығымен ашық немесе жабық күйге келтіру үшін +/- 100% қуатты пайдаланады.

Төртінші және соңғы цикл - бұл ең күрделі, ол барлық деректерді өңдейтін және әрбір ауыстырумен не істеу керектігін шешетін «Decider» циклы. Ол мұны логикаға негізделген «жолдағы айырықтар» көмегімен жасайды, мұнда «түйме басылады», «жарық деңгейі», «соқыр ашық» - бұл дұрыс немесе жалған сұрақтар. Барлық ауыстыруларда қатаң кодталған жауап бар, ол 0 = соқыр, 1 = жоғары немесе 2 = ештеңе жасамайды - бұл мән «BlindShould» айнымалысына жазылады, оны алдыңғы цикл өңдейді. Кейбір жауаптар сценарийді аяқтамас бұрын «ItIsLight» және/немесе «ButtonPressed» айнымалы мәнінің өзгеруін күтеді, бұл тек түйменің ауысқан ауысуына қатысты, әйтпесе ол өз орнын түзетуге тырысады, яғни соқырлар қайтып келеді бастапқы күйіне. Содан кейін бұл процесс оңай қосылатын және жөндеуге болатын берік және салыстырмалы түрде қарапайым автоматты жүйе жасау үшін циклмен өңделеді. Пфх.

5 -қадам: Түртуді аяқтау

Аяқталатын жанасулар
Аяқталатын жанасулар

Кейіннен мен EV3 -ке 9В қуат көзін «ағаш батареялар» ретінде ағаш дюбельдер мен бұрандаларды пайдаланып қосуды шештім, бұл өнімді батареяларға сенімсіз етті және батареяларды әр екі күнде ауыстырып тұруға мүмкіндік бермеді.

6 -қадам: Жобаны бағалау

Менің ойымша, бұл жоба жақсы өтті, мен автоматты жалюзи жұмысының прототипімен аяқталдым, мен оны жоба барысында тапқан барлық қажетті ақпаратты алып, соңғы нұсқаға енгізе аламын. Мен құрылғыны сәтті кодтадым, кейінірек осы уақытқа дейін кодпен ешқандай маңызды мәселе таппадым. Мен құрылғыны көрнекі түрде тартымды еткім келеді, бірақ бұл тағы бір рет тұжырымдаманың дәлелі және мен ESP8266 көмегімен соңғы нұсқаны жасаған кезде оны жақсы етіп жасауға тырысамын. Мен қайтадан жобаны жасаған кезде, моторды соқырдың ішінде отырғызатын етіп жасаймын, себебі оны жасыру оңайырақ болады. Мен үйренген ең үлкен сабақ - бұл менің логиканы түзету және оны іске қоспас бұрын кодты ойластыру, құжаттау және тексеру.

Ұсынылған: