Мазмуну:
- 1 -кадам: Максаттар
- 2 -кадам: материалдар
- 3 -кадам: Алдын ала коддоо: Микро: Битти туташтырыңыз
- 4 -кадам: 0 -кадам: Коддун агымы
- 5 -кадам: 1 -кадам: Өзгөрмөлөрдү аныктоо
- 6 -кадам: 2 -кадам: Tilt баалуулуктарын деңгээлге айландыруу
- 7 -кадам: 3 -кадам: эңкейиш деңгээлин түзүңүз
- 8 -кадам: 4 -кадам: LEDPlotList функцияларын жазыңыз
- 9 -кадам: 5 -кадам: Ар бир учур үчүн LED Matrix планын түзүңүз
- 10 -кадам: 6 -кадам: Калибрлөө функцияларын жазыңыз
- 11 -кадам: 7 -кадам: Мамлекеттик функцияны жазыңыз
- 12 -кадам: 8 -кадам: Бардыгын бириктирүү 1 -бөлүк
- 13 -кадам: 9 -кадам: Баарын бириктирүү 2 -бөлүк
- 14 -кадам: 10 -кадам: Ассамблея
- 15 -кадам: Булак
Video: Электр рухунун деңгээлин түзүңүз: 15 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:42
Тиркелген нерсенин эңкейишин тез жана оңой көрсөтүү үчүн бул деңгээлди колдонуңуз!
Raffles институтунан Кайтлин тарабынан түзүлгөн.
1 -кадам: Максаттар
Micro: bitтин камтылган акселерометринин жардамы менен эңкейүүнү окуганды үйрөнүңүз.
Micro: bitтин 5x5 LED дисплейи менен иштөөнү үйрөнүңүз!
2 -кадам: материалдар
1 x BBC микро: бит
1 x Micro USB кабели
2 x AA батареялары
1 x Double AA Батарея пакети
3 -кадам: Алдын ала коддоо: Микро: Битти туташтырыңыз
- Би -Би -Си микро: битти микро USB кабели аркылуу компьютериңизге туташтырыңыз.
- Makecode.microbit.org боюнча micro: bit үчүн JavaScript редакторуна кирүү.
4 -кадам: 0 -кадам: Коддун агымы
Кодду жазууну баштоодон мурун, биз программа менен эмнеге жетүүнү каалайбыз жана ар бир компонент кандай тартипте иштеши керек экенин чечишибиз керек.
Электр рухунун деңгээли үчүн, биз ар бир цикл үчүн коддо жасай турган кадамдар:
- Акселерометрден эңкейиш көрсөткүчтөрдү окуу.
- LED матрицасында көрсөтүлө турган эңкейиш көрсөткүчтөрүн эңкейиш деңгээлине айландырыңыз.
- Мурунку циклден эңкейиш деңгээлинин өзгөрүшүн текшериңиз.
- Ар кандай ийилүү учурлары жана багыттары үчүн LED координаттарынын массивин түзүңүз.
- Участоктун LED координаттары микро: бит LED матрицасына.
Биз камтышыбыз керек болгон бир нече кошумча функциялар:
- Баштапкы эңкейүү позициясы үчүн калибрлөө.
- Демейки ийилүү калибрлөөсүнө кайтуу.
5 -кадам: 1 -кадам: Өзгөрмөлөрдү аныктоо
Биз көрсөтүлгөндөй өзгөрмөлөрдү аныктоодон баштайбыз. Бир нече өзгөрмөлөрдүн бөлүнүшү:
- tiltList: 0-4 маанисинен эңкейиштин көлөмүн сактаган массив [Сол, Оң, Алга, Артка]
- tiltBoundary: 0 (эңкейиш жок) жана 1 (эңкейиш) ортосундагы биринчи эңкейиш деңгээлинин чеги
- prevState: Мурунку циклден микро: биттин эңкейиш маанилерин tiltList менен бирдей форматта сактаган массив, итерациялардын ортосундагы ийилүүнүн өзгөрүшүн текшерүү үчүн колдонулат.
- ledPlotList: (x, y) түрүндөгү LED координаттарынын массивин түзүңүз. Массивди аныктоо үчүн, биз: түрдөгү номерди колдонобуз.
6 -кадам: 2 -кадам: Tilt баалуулуктарын деңгээлге айландыруу
5x5 LED матрицасы ушунчалык көп маалыматты көрсөтө алгандыктан, чыныгы кыйшайуу көрсөткүчтөрү дисплей үчүн пайдалуу болбойт.
Анын ордуна, tiltExtent () функциясы акселерометрден эңкейүү маанисине таандык болгон num номерин алат жана бул жантаюу маанилерин (num) 0ден 4кө чейин эңкейиш деңгээлине айландырат.
0 берилген багытта эңкейүүнү көрсөтпөйт жана 4 абдан чоң ийилүүнү билдирет, ал эми ката болгондо -1 кайтарылат.
Бул жерде tiltBoundary жана tiltSensitivity эңкейиш деңгээлинин ортосундагы чек мааниси катары колдонулат.
7 -кадам: 3 -кадам: эңкейиш деңгээлин түзүңүз
CheckRoll () жана checkPitch () эки функциясы tiltExtent () алынган ийилүү деңгээлдерин тиешелүүлүгүнө жараша ролго (солго-оңго) жана чайырга (алдыга-артка) tiltListке жазышат.
Кыйшык маанилерди колдонуудан мурун, биз аларды кийинчерээк жазылган калибрлөө функциясынан алынган чайыр (zeroPitch) жана түрмөк (zeroRoll) үчүн нөлгө салынган маанини колдонуу менен калибрлейбиз.
Акселерометрдин көрсөткүчтөрү солго жана алдыга эңкейиш үчүн терс болгондуктан, биз бул эки багыт үчүн параметр катары tiltExtent () функциясына берилүүчү терс маанинин модулун алуу үчүн Math.abs () функциясын колдонуубуз керек.
8 -кадам: 4 -кадам: LEDPlotList функцияларын жазыңыз
TiltListте эңкейиш деңгээлин алгандан кийин, биз пайда боло турган ар кандай учурлар үчүн жетектөөчү графикалык функцияларды жаза алабыз, тактап айтканда
- plotSingle (): Параметр катары берилген багытта эңкейүүнү алып, бир гана багытта кыйшайтуу.
- plotDiagonal (): Параметри боюнча эки тарапка тең эңкейүүнү алып, бирдей чоңдуктагы эки багытта эңкейүү.
- plotUnequal (): ар кандай чоңдуктагы эки багытта эңкейүү, ар бир багытта эңкейүүнү параметр катары алуу. Алгач plotDiagonal () колдонот жана кийин ledPlotList массивине кошулат.
Бул пландоо функциялары ledPlotListке кийинчерээк пландаштырылуучу LED координаттарынын массивин жазышат.
9 -кадам: 5 -кадам: Ар бир учур үчүн LED Matrix планын түзүңүз
4 -кадамдагы үч учурдун графикалык функцияларын колдонуп, биз азыр ийилген деңгээлдердин ар кандай мүмкүн болгон айкалыштары үчүн чыныгы LED матрицасын түзө алабыз. 4 -кадамдагы үч функция багыты менен айырмаланбагандыктан, LEDди туура багытта пландаштыруу үчүн LED матрицасына өткөрүлгөн координаттык маанилерди тууралашыбыз керек.
PlotResult () эгерде ийилүүнүн түрүн текшерүүчү жана LED.plot (x, y) жардамы менен LED матрицасын түзүүчү шарттарды камтыса. Тилдин мүмкүн болгон айкалыштары:
Бирдиктүү багыт: Солдон гана же Оңдон гана
Бир багыт: Алга гана же Артка
Эки багыт: Алга-солго же Артка-солго
Эки багыт: Алга-оңго же Артка-оңго
Эскертүү: Эки багытта кыйшайуу үчүн, ар бир комбинация бирдей же башка чоңдукка ээ болушу мүмкүн (maxX жана maxY салыштыруу аркылуу текшерилет), демек, тиешелүүлүгүнө жараша plotDiagonal () же plotUnequal () аркылуу пландалган.
10 -кадам: 6 -кадам: Калибрлөө функцияларын жазыңыз
Коддун негизги бөлүгүн бүтүрүп, биз азыр calibTilt () жана resetTilt () функцияларын кошобуз.
calibTilt () колдонуучуларга микро: биттин учурдагы абалында эңкейүүнү нөлгө чейин бурууга мүмкүндүк берет
resetTilt () тактайдын калибрлөөсүн баштапкы абалына кайтарат.
11 -кадам: 7 -кадам: Мамлекеттик функцияны жазыңыз
Биз эңкейүүнүн деңгээлдери мурунку кайталоодон өзгөргөнүн текшерүү үчүн checkState () функциясын кошобуз.
Эгерде мурунку итерациядан, б.а. stateChange == 0, эңкейиш деңгээлинде эч кандай өзгөрүү болбосо, биз түздөн -түз кийинки итерацияга өтүп, LED матрицасынын графигин өткөрүп жиберип, керектүү эсептөөнү азайта алабыз.
12 -кадам: 8 -кадам: Бардыгын бириктирүү 1 -бөлүк
Эми биз акыры бардык керектүү функцияларды micro: bitтин чексиз циклине кайра -кайра иштете алабыз.
Биринчиден, биз micro: A жана B баскычтарын calibTilt () жана resetTilt () функцияларына тиешелүүлүгүнө жараша input.onButtonPressed () функциясын коюп, калибрлөө аяктагандан кийин LED матрицасына белгини коёбуз.
13 -кадам: 9 -кадам: Баарын бириктирүү 2 -бөлүк
Андан кийин 0 -кадамдагы биздин коддун агымына ылайык керектүү функцияларды иштетип, абалдын өзгөрүшүн текшериңиз (акыркы кайталоодон бери micro: bitтин кыйшайышы өзгөрдү дегенди билдирет).
Эгерде ийилүү деңгээлинде өзгөрүү болсо, башкача айтканда stateChange == 1, код prevState'ди жаңы ийилүү деңгээлине чейин жаңыртып, stateChange'ды кийинки итерация үчүн 0гө кайра коёт жана PlotResult () аркылуу LED матрицасында жаңыланган ийилүү деңгээлин пландаштырат.
14 -кадам: 10 -кадам: Ассамблея
Толтурулган кодду микро: битке жаркылдатыңыз.
Micro: bit жана батарейка пакетиңизди каалаган нерсеге бекиңиз жана ал колдонууга даяр!
Керемет
Электр энергияңыздын деңгээли менен көңүл ачыңыз! Жана сиз муну жасап жатканда, эңкейүү сенсорунун мүмкүнчүлүктөрүн кеңейтүүгө же аны оюнга айландырууга эмне үчүн аракет кылбайсыз?
Бул макала TINKERCADEMYден.
15 -кадам: Булак
Бул макала:
Эгерде сизде кандайдыр бир суроолор болсо, төмөнкү дарекке кайрылсаңыз болот: [email protected].
Сунушталууда:
Электр калдыктарынан DIY электр мотору: 6 кадам
Электр калдыктарынан DIY электр мотору: Ol á Pessoal, Eu tinha visto na internet um em a a pessoa monta um motor desesses, fixi muito interessado e resolvi montar um tamb é m para ver se realmente funciona, e ….. Funciona! Como n ã o vi um Instructable que бир
Күнгө негизделген электр станциясынын электр энергиясын алыстан көзөмөлдөө жана бөлүштүрүү системасы: 10 кадам
Күнгө негизделген электр станциясынын электр энергиясын алыстан көзөмөлдөө жана бөлүштүрүү системасы: Бул долбоордун максаты - энергия системаларындагы (күн энергиясы системалары) энергияны көзөмөлдөө жана бөлүштүрүү. Бул системанын дизайны абстракттуу түрдө төмөнкүчө түшүндүрүлөт. Системада болжол менен 2 күн панели бар бир нече тармактар бар
220Втан 24В 15Ага чейин электр менен камсыздоо - Электр энергиясын которуштуруу - IR2153: 8 кадам
220Втан 24В 15Ага чейин электр менен камсыздоо | Электр энергиясын которуштуруу | IR2153: Салам жигит, бүгүн биз 220Втан 24В 15Ага чейин электр менен камсыз кылабыз | Электр энергиясын которуштуруу | ATX электр булагынан IR2153
Компьютердин Электр Жабдуулугун Өзгөрүлмө Скамейкасына Лабораториянын Электр Жабдуулугуна Которуу: 3 кадам
Компьютердин Электр Жабдуулугун Өзгөрүлмө Скамейкага Лабораториянын Электр Жабдуулугуна Которуу: Бүгүнкү күндө лабораториялык энергия менен камсыздоонун баасы 180 доллардан ашат. Бирок эскилиги жеткен компьютердик энергия булагы жумуш үчүн идеалдуу болуп чыкты. Булардын баасы сизге болгону $ 25 жана кыска туташуудан коргоо, жылуулуктан коргоо, ашыкча жүктөөдөн коргоо жана
Тесла Рухунун коркунучтуу радиосу: 17 кадам (сүрөттөр менен)
Коркунучтуу Тесла Спирит Радиосу: Жаңылыктар Flash !!! " Коркунучтуу " жашоосун улантууда! Майк Майклга чоң рахмат, 2015 -жылдын октябрь айына карата, бул сонун долбоордун эң маанилүү бөлүктөрү бар Spooky Tesla Spirit Radio Kit камтыган жаңы веб -сайты бар. The