Агуулгын хүснэгт:

Цахилгаан сүнсний түвшинг бий болгох: 15 алхам
Цахилгаан сүнсний түвшинг бий болгох: 15 алхам

Видео: Цахилгаан сүнсний түвшинг бий болгох: 15 алхам

Видео: Цахилгаан сүнсний түвшинг бий болгох: 15 алхам
Видео: Лучший из ЛУЧШИХ???. Радиоприемник TECSUN PL680 ПОЛНЫЙ ОБЗОР!!! #tecsun 2024, Долдугаар сарын
Anonim
Цахилгаан сүнсний түвшинг бий болгох
Цахилгаан сүнсний түвшинг бий болгох

Энэхүү сүнсний түвшинг ашиглан хавсаргасан аливаа зүйлийн хазайлтыг хурдан бөгөөд хялбархан харуулаарай!

Raffles Institution -ээс Kaitlyn бүтээсэн.

Алхам 1: Зорилго

Налууг микро: битийн хурдасгуураар уншиж сурах.

Micro: bit -ийн 5х5 хэмжээтэй LED дэлгэцтэй ажиллаж сураарай!

Алхам 2: Материал

1 x BBC микро: бит

1 x Micro USB кабель

2 x АА батерей

1 x Давхар АА батерейны багц

Алхам 3: Урьдчилан кодлох: Микро: битээ холбоно уу

  1. Бичил USB кабель ашиглан BBC micro: bit -ийг компьютерт холбоно уу.
  2. 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) хэлбэрээр зурна. Массивыг тодорхойлохын тулд бид төрөл дугаар ашиглан төрөл: хувьсагчийн үүрлэсэн массивыг заана.

Алхам 6: Алхам 2: Хазайлтын утгыг түвшин болгон хөрвүүлэх

5x5 LED матриц нь зөвхөн маш их мэдээлэл харуулдаг тул хазайлтын бодит утга нь дэлгэцэнд ашиггүй болно.

Үүний оронд tiltExtent () функц нь акселерометрийн хазайлтын утгыг илэрхийлдэг num параметрийг авч, эдгээр хазайлтын утгуудыг (num) 0 -ээс 4 хүртэл хазайлтын түвшинд хөрвүүлнэ.

0 нь өгөгдсөн чиглэлд хазайлт байхгүй, 4 нь маш том хазайлтыг илэрхийлдэг бол алдаа гарсан тохиолдолд -1 буцаана.

Энд tiltBoundary ба tiltSensitivity -ийг хазайлтын түвшин хоорондын хилийн утга болгон ашигладаг.

Алхам 7: Алхам 3: Хазайлтын түвшинг эмхэтгэх

CheckRoll () ба checkPitch () гэсэн хоёр функц нь tiltExtent () -ээс олж авсан хазайлтын түвшинг тус тусдаа өнхрөх (зүүнээс баруун тийш) болон давирхай (урагш хойш) тэнхлэгийн хувьд tiltList болгон бичнэ.

Хазайлтын утгыг ашиглахаасаа өмнө бид дараа нь бичсэн шалгалт тохируулгын функцээс олж авсан давирхай (zeroPitch) ба өнхрөх (zeroRoll) хоёуланг нь тэглэсэн утгыг ашиглан шалгалт тохируулга хийдэг.

Акселерометрийн уншилт нь зүүн болон урагш хазайхад сөрөг байдаг тул бид Math.abs () функцийг ашиглан tiltExtent () функцэд өгөх сөрөг утгын модулийг эдгээр хоёр чиглэлд параметр болгон авах хэрэгтэй.

Алхам 8: Алхам 4: LEDPlotList функцийг бичнэ үү

TiltList -ийн хазайлтын түвшинг олж авсны дараа бид үүсч болох янз бүрийн тохиолдлуудад зориулагдсан график зурах функцийг бичиж болно.

  • plotSingle (): Параметр болгон өгөгдсөн чиглэлд хазайлтын хэмжээг харгалзан зөвхөн нэг чиглэлд хазайлгана.
  • plotDiagonal (): Параметр болгон аль ч чиглэлд хазайлтын хэмжээг харгалзан ижил хэмжээтэй хоёр чиглэлд хазайлгана.
  • plotUnequal (): Янз бүрийн хэмжээтэй хоёр чиглэлд хазайлгах ба чиглэл бүрт хазайлтын хэмжээг параметр болгон авна. Эхлээд plotDiagonal () ашигладаг бөгөөд дараа нь ledPlotList массив дээр нэмдэг.

Эдгээр диаграмын функцууд нь ledPlotList -д LED координатын массивыг бичээд дараа нь зурна.

Алхам 9: Алхам 5: Кейс бүрийн хувьд LED матрицыг зур

4 -р алхам дээрх гурван тохиолдлын диаграмын функцийг ашиглан одоо налуу түвшний янз бүрийн хослолуудын хувьд бодит LED матрицыг зурж болно. 4 -р алхам дээрх гурван функц нь чиглэлийг ялгадаггүй тул LED -ийг зөв чиглэлд байрлуулахын тулд LED матрицад дамжуулсан координатын утгыг тохируулах шаардлагатай байна.

PlotResult () нь хазайлтын төрлийг шалгаж, LED.plot (x, y) ашиглан LED матрицыг зохих ёсоор зурах нөхцлүүдийг агуулдаг. Хазайлтын боломжит хослолууд нь:

Ганц чиглэл: Зөвхөн зүүн эсвэл баруун

Нэг чиглэл: Зөвхөн урагш эсвэл зөвхөн урагш

Хоёр чиглэл: Урагш-зүүн эсвэл Арагш-зүүн

Хоёр чиглэл: Урагш-баруун эсвэл Арагш-баруун

Тэмдэглэл: Хоёр чиглэлд хазайлгахын тулд хослол бүр ижил эсвэл өөр хэмжээтэй байж болно (maxX ба maxY -ийг харьцуулж шалгана).

Алхам 10: Алхам 6: Калибровк хийх функцийг бичнэ үү

Кодын ихэнх хэсгийг дуусгасны дараа бид calibTilt () болон resetTilt () функцуудыг нэмж оруулав.

calibTilt () нь хэрэглэгчдэд micro: bit -ийн одоогийн байрлал дахь хазайлтыг тэг болгож тааруулах боломжийг олгодог

resetTilt () нь самбарын шалгалт тохируулгыг анхны төлөвт нь буцаана.

Алхам 11: Алхам 7: Улсын функцийг бичих

Бид хазайлтын түвшин өмнөх давталтаас өөрчлөгдсөн эсэхийг шалгахын тулд checkState () функцийг нэмж өгдөг.

Хэрэв өмнөх давталтаас хазайлтын түвшин өөрчлөгдөөгүй бол stateChange == 0 байвал бид дараагийн давталт руу шууд шилжиж, LED матрицын диаграмыг алгасаж, шаардлагатай тооцооллыг бууруулж болно.

Алхам 12: Алхам 8: Бүгдийг хамтад нь оруулах 1 -р хэсэг

Одоо бид шаардлагатай бүх функцийг эцэс төгсгөлгүй давтан ажиллуулахын тулд micro: bit -ийн хязгааргүй гогцоонд байрлуулж болно.

Нэгдүгээрт, бид micro: bit товчлуурыг calibTilt () ба resetTilt () функцуудыг input.onButtonPressed () ашиглан тохируулж, шалгалт тохируулга дууссаны дараа LED матриц дээр тэмдэг тавина.

Алхам 13: Алхам 9: Бүгдийг нэгтгэх 2 -р хэсэг

Дараа нь 0 -р алхам дахь кодын урсгалын дагуу шаардлагатай функцуудыг ажиллуулж төлөв байдлын өөрчлөлтийг шалгана уу (сүүлийн давталтаас хойш micro: bit -ийн хазайлт өөрчлөгдсөн гэсэн үг).

Хэрэв хазайлтын түвшин өөрчлөгдсөн бол stateChange == 1 байвал код нь prevState -ийг шинэ хазайлтын түвшинд шинэчилж, дараагийн давталтын хувьд stateChange -ийг буцааж 0 болгож, PlotResult () ашиглан LED матриц дээр шинэ хазайлтын түвшинг зурна.

Алхам 14: Алхам 10: Чуулган

Дууссан кодыг өөрийн микро: бит рүү шарна уу.

Микро: бит болон батерейны хайрцгийг ямар ч объектод найдвартай холбож, ашиглахад бэлэн боллоо!

Гайхалтай

Цахилгаан сүнснийхээ түвшинг сайхан өнгөрүүлээрэй! Та үүнийг хийж байхдаа хазайлтын мэдрэгчийн чадавхийг өргөжүүлж, тоглоом болгон хувиргахыг оролдож яагаад болохгүй гэж?

Энэ нийтлэлийг TINKERCADEMY -ээс авсан болно.

Алхам 15: Эх сурвалж

Энэ нийтлэлийг:

Хэрэв танд ямар нэгэн асуулт байвал та [email protected] хаягаар холбоо барьж болно.

Зөвлөмж болгож буй: