Мазмуну:

Робот бамперлерди жасаңыз (код менен): 4 кадам
Робот бамперлерди жасаңыз (код менен): 4 кадам

Video: Робот бамперлерди жасаңыз (код менен): 4 кадам

Video: Робот бамперлерди жасаңыз (код менен): 4 кадам
Video: Ол өмір бойы жарақат алды ~ Американдық соғыс ардагерінің тастап кеткен үйі 2024, Ноябрь
Anonim
Робот бамперлерди жасаңыз (код менен)
Робот бамперлерди жасаңыз (код менен)

Бул нускоочу окурмандарды Boe-ботто бамперлерди кантип түзүү жана коддоо керектигин үйрөтөт, ал тоскоолдуктарды аныктоодо лабиринтте чуркай алат. Долбоорду коддоо BASIC Stamp программалоо программасын жана Boe-Bot роботун колдонуу менен жасалган жана бул бамперлерди түзүүдө ийгиликке жетүү үчүн схема жана программалоо боюнча негизги түшүнүк талап кылынат.

Жабдуулар

Бул бамперлерди түзүү үчүн сизге керек болот:

- Boe-Bot роботу

- BASIC Stamp программалоо программасы

- Попсикула таякчалары

- Губка

- Алюминий фольга

- Клиптер

- 8 татыктуу узун зымдар (жок дегенде 6 дюйм)

- 2 LED жарык

-2 күрөң-кара-сары резистор

-2 кызыл-кызыл-күрөң каршылыгы

- Лента жана ысык клей (же окшош чаптама)

- Бое-Ботуңуз үчүн батареялар

1 -кадам: 1 -кадам: Районду түзүү

1 -кадам: Районду түзүү
1 -кадам: Районду түзүү
1 -кадам: Районду түзүү
1 -кадам: Районду түзүү

Нан тактаңызды багыттоо жана иштетүү үчүн схема түзүү үчүн жогорудагы нан тактасын аткарыңыз. Акыр -аягы, сиздин нандын үстөлү сол жактагы сүрөттө окшош болушу керек.

Эске алчу нерселер:

- LED туура абалда экенин текшериңиз. Бул LEDдин жалпак буту терс жагында, экинчи буту оң жагында болушу керек дегенди билдирет.

- Vss бул нандын үстүндө жер катары кызмат кылат, демек ал нөлгө барабар, ал эми Vdd 1ге барабар.

- Иштеп жаткан схеманын мааниси 0. Өчүрүлгөн схеманын мааниси 1.

2-кадам: 2-кадам: Бое-бот үчүн программалоо

Төмөнкү код роботту бамперлердин кайсынысы басылганына жараша солго жана оңго 90 градуска бурууну программалайт (кийинки кадамда бамперди түзүү жөнүндө кененирээк маалымат). Бул код робот оң бампер зымдары басылганда солго, ал эми сол бампер зымдары басылганда оңго бурула тургандыгын аныктайт.

Кээ бир негизги тил котормолору:

- GOSUB = кичи программа (коддун талабы менен коштолушу керек)

- If.. Else = аткарылышы керек болгон коддун тобун аныктайт, эгер шарттар туура болсо жана шарттар жалган болсо көрсөтмөлөрдү аткарат

Код:

'{$ STAMP BS2}

'{$ PBASIC 2.5}' ***************************************** ******************************** "Кайра баштоо кодун калыбына келтирүү" Роботту токтотуу жана баштоо үчүн баштапкы абалга келтирүү баскычын колдонуңуз ** ************************************************ *********************** temp VAR Byte 'RunStatus DATA $ 00 убактылуу дүкөнү' ROM READда сакталган өзгөрмөсү RunStatus, temp 'ROM temp'инен өзгөрмөнү окуңуз ~ ~ темп '0 маанисин 1ге же 1ге айландырыңыз RunStatus, темп' Өзгөрмөнү кайра ROMго жазыңыз ЭГЕР (темп> 0) ОНДО АКЫРКЫ БӨТҮР 'Мааниси 1 болсо, текшериңиз анда программаны ТЫНЫТУУ 3000' Тындыруу Сиз "баштапкы абалга келтирүү баскычын басканда" колуңузду жылдырасыз ************************************* ************************************ '************* ************************************************ *********** 'Pins AND Constants' программалоону жөнөкөйлөтүү үчүн колдонулат '*************************** ******************************************* LMOTOR PIN 15 RMOTOR PIN 14 RFast CON 650 LFast CON 850 RSlow CON 700 LSlow CON 780 MStop CON 750 RFastRev CON 8 50 LFastRev CON 650 RSlowRev CON 800 LSlowRev CON 700 TurnLeft90 CON 90 TurnRight90 CON 90 '********************************* **************************************** '********* ************************************************ ************** 'Variables' программалоону жөнөкөйлөтүү үчүн колдонулат '************************** ******************************************** MLoopC VAR Word 'For.. Кийинки Variable 65000ish тарапка чейинCount VAR байт кезеги Angle VAR Word '******************************** ************************************** '----------- -------------------------------------------------- ------------- 'Негизги код' --------------------------------- ----------------------------------------- ЭМНЕ БОЛСУН IN10 = 0 ОШОНДО 'Эгерде 10-зымдагы зым күйүк, андан кийин солго буруңуз GOSUB LeftTurn90 GOSUB LFastRev GOSUB RFastRev ELSEIF IN11 = 0 ОНДО 'Эгерде 11-пинте зым болсо, анда оңго буруңуз GOSUB RightTurn90 GOSUB LFastRev GOSUB RFastRev ENDIF GOSUB ForwardFast' Бир импульс LOOP алдыга жылуу '- --------------------------------- ------------------------------------- '** БАШКЫ КОДДУН АЯГЫ ****** ********************************************** '- -------------------------------------------------- --------------------- '**************************** ****************************************** '** Sub-тартибин / Sub-тартиби / Методдор ****************************** '*********** ************************************************ *********** '************************************ ********************************** '*************** ************************************************ ******* RightTurn90: 'Subdecdure to 90deg Right' ******************************** ************************** Lfast 'бир импульсту алдыга жылдырат PULSOUT RMOTOR, RfastRev' казыктарды жана константаларды колдонуу PAUSE 20 '20mS роботко КИЙИНКИге өтүүгө мүмкүндүк берет "КИЙИНКИ ПУЛЬСУ КАЙТУУГА чейин" ******************** ************************************************ * LeftTurn90: 'Subdecessure to 90deg Right' ** ************************************************ ******************* HIGH 0 LOW 1 FOR MLoopC = 1 to 22 PULSOUT LMOTOR, LfastRev 'бир импульсту алдыга жылдыруу RMOTOR, Rfast' казыктарын жана константаларын колдонуу PAUSE 20 ' 20mS роботко КИЙИНКИге "КИЙИНКИ импульстун кайтып келишине чейин" жылууга мүмкүндүк берет ************************************ ********************************* ForwardFast: 'Роботту бир чарчы тез алдыга жылдыруунун субпроцедурасы' **** ************************************************ ***************** FOR MLoopC = 1 to 55 PULSOUT LMOTOR, LFast PULSOUT RMOTOR, RFast PAUSE 20 NEXT RETURN '************** ************************************************ ****** ReverseTurnLeft: 'Оң бампер басылганда роботту солго жана артка буруу үчүн субпроцесс' *************************** *************************************************************************************** үчүн MLoopC = 1ден 55ке чейин LMOTOR, LSlowRev PULSOUT RMOTOR, RFastRev PAUSE 20 NEXT RETURN '************************************ ********************************* ReverseTurnRight: 'Subproce сол бампер "********************************** басканда роботту артка буруп, оңго бургула. ********************************************************************* үчүн MLoopC = 1ден 55ке чейин LMOTOR, LFastRev PULSOUT RMOTOR, RSlowRev PAUSE 20 КИЙИНКИ КАЙТУУ '****************************************** ************************* 'КИЙИНКИ АЯКТАР' ******************** ************************************************ *

3 -кадам: 3 -кадам: Алюминий фольга жана зым бамперлери үчүн попсикула таяктарын колдонуу

3 -кадам: Алюминий фольга жана Попсикула таяктарын зым бамперлери үчүн колдонуу
3 -кадам: Алюминий фольга жана Попсикула таяктарын зым бамперлери үчүн колдонуу
3 -кадам: Алюминий фольга жана Попсикула таяктарын зым бамперлери үчүн колдонуу
3 -кадам: Алюминий фольга жана Попсикула таяктарын зым бамперлери үчүн колдонуу
3 -кадам: Алюминий фольга жана Попсикула таяктарын зым бамперлери үчүн колдонуу
3 -кадам: Алюминий фольга жана Попсикула таяктарын зым бамперлери үчүн колдонуу
3 -кадам: Алюминий фольга жана Попсикула таяктарын зым бамперлери үчүн колдонуу
3 -кадам: Алюминий фольга жана Попсикула таяктарын зым бамперлери үчүн колдонуу

Бул кадамды баштоодон мурун, панелдин 4 зымынын (1 -кадамды караңыз) жуптарга бөлүнгөндүгүн текшериңиз, ар бир жуп оң же сол бамперди башкарат. Бул жагдайда LEDлар коддун оң жана сол бамперлерде эффективдүү экенин текшерүү үчүн иштейт. Popsicle таякчаларында ар бир жуптан бирден зым Popsicle таякчасынын бир учун бөлүшөт (бул ошол эле жуптун зымдары бир бамперде болушу мүмкүн эмес дегенди билдирет).

4 фольгадан кичине тик бурчтуктарды кесип, бирин колдонуп, зымдын эки учуна Popsicle таякчасын ороп коюңуз. Бул Popsicle таякчасынын өткөрүмдүүлүк бетинин аянтын жогорулатат, ошондой эле таяктардын тийиши үчүн чоңураак аянтты камсыз кылат.

Фольганы жана зымдарды Попсикула таякчаларына жабыштырбоо үчүн, материалдарды чогуу кармоо үчүн 1-2 кыстыргычты колдонуңуз. Кычкачтар дагы көп кийлигишүүсүз Popsicle таякчаларына тийүү үчүн көбүрөөк мүмкүнчүлүктү камсыз кылат. Кагазды кадимки эле кагаз бумаларындагыдай эле Popsicle таякчасынын үстүнө жылдырыңыз. Муну фольганын бардык төрт кесими жана эки Попсикуланын ар бир учу үчүн кайталаңыз.

4 -кадам: 4 -кадам: Калган бамперлерди чогултуу

4 -кадам: Калган бамперлерди чогултуу
4 -кадам: Калган бамперлерди чогултуу
4 -кадам: Калган бамперлерди чогултуу
4 -кадам: Калган бамперлерди чогултуу
4 -кадам: Калган бамперлерди чогултуу
4 -кадам: Калган бамперлерди чогултуу
4 -кадам: Калган бамперлерди чогултуу
4 -кадам: Калган бамперлерди чогултуу

Алюминий фольга жана кыскычтар зымдарды ар бир Попсикула таякчасына кармап турууга жөндөмдүү болгондон кийин, губканын эки кичинекей кубугун кесип, таякчалардын ортосуна ар бир кубду жабыштырыңыз (ар бир таякчанын учунда ысык желим жабыштыргыч кийлигишпейт. Губкалар робот дубалга тийген сайын бамперлердин тийишин камсыз кылат.

Кошумча: Попсикула таякчасын экиге бөлүп, сырткы Popsicle таякчасынын бамперинин учуна бурч менен чаптаңыз. Бул бампердин дубалга тийип, бурулушун күчөтөт.

Бамперлер Бот-боттун алдында ийилип турушу үчүн, зымдардын ийилгенин унутпаңыз.

Сунушталууда: