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

Минималист унадаг дугуйн заагч, мэдрэгчтэй!: 10 алхам (зурагтай)
Минималист унадаг дугуйн заагч, мэдрэгчтэй!: 10 алхам (зурагтай)

Видео: Минималист унадаг дугуйн заагч, мэдрэгчтэй!: 10 алхам (зурагтай)

Видео: Минималист унадаг дугуйн заагч, мэдрэгчтэй!: 10 алхам (зурагтай)
Видео: Бүтээлч суут ухаанаар бүтээгдсэн 15 тээврийн хэрэгслийн шинэчлэл 2024, Арваннэгдүгээр
Anonim
Image
Image

Сайн байна уу! Энэ бол миний анхны зааварчилгаа юм. Би ямар нэгэн зүйлийг өөрийн хэрэгцээнд нийцүүлэн өөрчилж чадвал энэ нь хэрхэн ажилладаг, хэн өөрөө DIY (өөрөө хий) гэх зүйлд дургүй болохыг харахын тулд бүх зүйлийг эхнээс нь хийхийг хүсдэг байсан уу? DIY хийх нь хичнээн сонирхолтой санагдаж болох ч үүнийг хэрэгжүүлэхийн тулд бага зэрэг хүчин чармайлт шаардагдана. Instructables вэбсайтыг үзэх нь таны DIY хүсэл тэмүүллийг эхлүүлэх гайхалтай арга бөгөөд ингэснээр би зарим төслүүдээ эхлүүлж эхэлсэн боловч үүнийг хийх болно гэж бодож байсангүй.

Надад боломж олдсоны адил би минималист дизайнтай, мэдрэгчтэй дугуйн индикатор хийсэн. Унадаг дугуйн заагчийн олон зааварчилгаа эсвэл онлайн эх сурвалж байдаг гэдгийг би мэднэ, гэхдээ тэдний ихэнх нь арай илүү зай эзэлдэг, эсвэл тодорхой байдлаар өөрчлөх чадваргүй байсан. Хэрэв та өөрийн хэрэгцээг хангахуйц ухаалаг хэрэгцээг хайж байгаа бөгөөд хэрэгцээнд нийцүүлэн өөрчлөх боломжийг танд олгож байгаа бол энэхүү зааварчилгаа нь танд зориулагдсан болно!

Яагаад унадаг дугуйн индикатор гэж?

Би хотын эргэн тойронд дугуй унах дуртай! Би дугуйгаа аваад өглөө эсвэл оройн цагаар зугаалдаг. Заримдаа шөнийн цагаар машин унах нь хэцүү байдаг, учир нь таны ард байгаа замын хөдөлгөөн таныг анзаарах боломжгүй бөгөөд энэ нь аюултай дохио юм. Тийм ч учраас би гэртээ байгаа бүх материалаараа индикаторыг өөрөө бүтээхийг хүсч байсан бөгөөд индикаторыг асаахад хотод унадаг дугуй унах нь үнэхээр сайхан харагдаж байна!

Ямар ч асуудалгүй төсөл хийх нь тийм зүйл болохгүй! Гэхдээ би үүнийг хийх гэж оролдсонгүйн тулд үүнийг хийж байхдаа хийсэн бүх алдаагаа "Хэрхэн зөвлөгөө" болгон хэлэх болно. YouTube -ийн видеонд уг төслийг хэрхэн бүтээсэн тухай дүрслэл, бүх зүйл хэрхэн ажилладаг, индикатор зам дээр хэрхэн харагдаж байгааг харуулсан жижиг анимацууд багтсан болно! Хамгийн дэлгэрэнгүй мэдээллийг энэхүү зааварчилгаанд өгсөн болно. Үргэлжлүүлэхийн хэрээр би youtube видеоныхоо сегментүүдийг "Цаг хугацааны хуваарь" гэж тэмдэглэх болно. Та тодруулсан линкүүд дээр дарж дэлгэрэнгүй мэдээлэл авах боломжтой.

Энэ төслийн онцлог:

  • Баруун эргэх заалт
  • Зүүн эргэх заалт
  • Шөнийн харааны заалт
  • Touch-идэвхжүүлсэн

Алхам 1: Эхлэх материал

Туршилтын бүрэлдэхүүн хэсгүүд
Туршилтын бүрэлдэхүүн хэсгүүд
  • Резистор (330 Ом ба 120 Ом): 330 Ом ба 120 Ом
  • Raspberry Pi 3: RPi 3
  • Breadboard: Breadboard
  • Холбогч утас (эрэгтэй-эрэгтэй, эрэгтэй-эмэгтэй, эмэгтэй-эмэгтэй): холбогч утас
  • Олон судалтай утас: Олон судалтай утас
  • Capacitive Touch Sensor (TTP223) - (2): Холбоос
  • RGB LED (нийтлэг катодын төрөл) - (13): RGB LED нийтлэг катод
  • Энгийн LED - (2): LED
  • Гагнуурын материал: Гагнуурын хэрэгсэл
  • Perf Board: Perf Board
  • Powerbank: Powerbank
  • 1 микро Фарад электролитийн конденсатор: электролитик конденсатор
  • LDR (Хөнгөн хамааралтай эсэргүүцэл): LDR
  • Кабелийн холболт: Кабелийн холболт
  • Кабель хамгаалагч: Кабель хамгаалагч
  • Нийлэг будаг ба сойз (заавал биш): будаг ба сойз
  • Угсрах зориулалттай хоёр хадгалах хайрцаг. (1 том, 1 дунд хэмжээтэй)

Дээр дурдсан зүйлийн талаар үргэлж нэмэлт тоо хэмжээ авч байгаарай. Би Amazon дээрх бүрэлдэхүүн хэсгүүдийг холбож, гагнуурын материал худалдаж авах шилдэг хэрэгслүүдийг холбосон болно!

Хугацаа: Материал цуглуулах

Алхам 2: Бүрэлдэхүүн хэсгүүдийг турших

Туршилтын бүрэлдэхүүн хэсгүүд
Туршилтын бүрэлдэхүүн хэсгүүд
Туршилтын бүрэлдэхүүн хэсгүүд
Туршилтын бүрэлдэхүүн хэсгүүд
Туршилтын бүрэлдэхүүн хэсгүүд
Туршилтын бүрэлдэхүүн хэсгүүд

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

RGB LED -ийн төрлийг шалгах

Зах зээлийг олж мэдэх хоёр төрлийн RGB LED байдаг. Нийтлэг катодын төрөл ба нийтлэг анодын төрөл.

Энэ бол хэрэгтэй зөвлөгөө (том хэмжээтэй ч гэсэн), учир нь би энэ видеон дээрх LED-ийг энд холбосон бөгөөд хэлхээг хэд хэдэн удаа хөндлөн шалгасны дараа ч гэсэн гэрэл асахгүй байна. Дараа нь би энэ LED хоёр төрөл байдаг гэдгийг олж мэдээд мэдээллийн хуудсыг судалж үзээд эцэст нь шийдлийг олж авлаа! Миний хэлхээний асуудал бол ердийн катодын зүү нь дээр дурдсанчлан 3.3V -тэй холбогдсон байсан бөгөөд би GPIO зүүгээр HIGH -д хадгалагдаж байсан тул ердийн катодын зүү болон бусад 3 зүү хоёулаа ижил чадвартай байв.

Шийдэл: Би нийтлэг катодын зүүг газарт холбосон бөгөөд LED нь ассан! GPIO тээглүүрийг бага байлгахын тулд би кодоо өөрчилөөгүй шалтгаан нь бид дараа нь илүү олон LED ашиглах бөгөөд RPi нь бидэнд 3.3 В -т ердөө хоёр зүү өгдөг бөгөөд энэ нь бидэнд бусад зорилгоор хэрэгтэй болно!

Төрлийг хэрхэн шалгах вэ?

Мультиметрийг тасралтгүй горимд байлга. Мультиметрийн улаан үзүүр, хар үзүүрээр хамгийн урт хар тугалга дээр дараад бусад утсыг нь дарна уу.. Хэрвээ тийм биш бол мултиметр үзүүрийг одоо буцаана уу. Хар үзүүр, улаан үзүүрээр хамгийн урт хар тугалга дээр дарахад LED нь ердийн катодын RGB LED гэдгийг харуулна.

Хэрэгтэй зөвлөгөө: Би энэ төсөлд нийтлэг катодын төрлийг ашигласан. Зөвхөн эдгээр төрлийг авахыг хичээгээрэй, гэхдээ өөр төрөл байгаа ч санаа зовох хэрэггүй. Хэлхээний холболтууд хэвээр байгаа бөгөөд цорын ганц ялгаа нь та өөрчлөх ёстой кодын шугамын хажууд тайлбар болгон өгөх болно. Амьсгаа авах.

Хугацаа: RGB тест хийх

Лавлагаа: RGB -ийг хэрхэн шалгах вэ

RGB LED асдаг

Үүнийг хийхийн тулд дээрх зурган дээр үзүүлсэн холболтын диаграмыг шалгаж, зүүгээр талхны самбараар холбоно уу (үүнийг аюулгүй байлгахын тулд).

RED: Pin 11 (330-ом эсэргүүцэл)

НОГООН: Pin 13 (120 ом эсэргүүцэл)

Цэнхэр: Pin 15 (120 ом эсэргүүцэл)

Цахилгаан дамжуулагчийн урвуу хүчдэл өөр өөр байдаг тул эсэргүүцлийн утга өөр өөр байдаг.

Та тэдгээрийг зөв холбосны дараа RPi -ийг өөрийн суулгасан python IDE дээр кодлоорой.

RPi. GPIO -г GPIO болгон импортлох

#Пин дугаарууд нь RPi GPIO Red_pin = 11 Green_pin = 13 Blue_pin = 15 #Нийтлэг катодын зүүг Pin 6 def turnOn (pin): GPIO.setmode (GPIO. BOARD) GPIO.setup (pin, GPIO) дээр холбоно.. OUT) GPIO.output (pin, GPIO. HIGH) #Turn an Off (pin) анодын нийтлэг төрлийн GPIO.output (pin, GPIO. LOW): GPIO.setmode (GPIO. BOARD) GPIO.setup (pin, GPIO. OUT) GPIO.output (pin, GPIO. LOW) #GPIO.output (pin, GPIO. HIGH) def redOn (): turnOn (Red_pin) def redOff (): turnOff (Red_pin) def ногоонOn (): turnOn (Green_pin) def greenOff (): turnOff (Green_pin) def blueOn (): turnOn (Blue_pin) def blueOff (): turnOff (Blue_pin) оролдох: while True: cmd = input ("тушаалаа бичнэ үү:") хэрэв cmd == "улаан асаалттай байвал ": #type оролтын тушаалуудыг яг дотор нь бичсэнчлэн" "redOn () elif cmd ==" red off ": redOff () elif cmd ==" green on ": greenOn () elif cmd ==" green off ": greenOff () elif cmd == "blue on": blueOn () elif cmd == "blue off": blueOff () other: print ("Хүчин төгөлдөр бус тушаал") KeyboardInterrupt -ээс бусад: GPIO.cleanup ()

Би энэ зааварчилгааг дурдсан, дэлгэрэнгүй тайлбар, кодыг эндээс үзээрэй!

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

Гарын авлага: Та ижил зүү хэлбэрийн параллелийг холбосон эсэхээ шалгаарай. Өөрөөр хэлбэл нэг LED -ийн улаан зүү нь зөвхөн нөгөө LED -ийн улаан зүүтэй холбогддог.

Он цагийн хэлхээс: Тэднийг гэрэлтүүлээрэй!

TouchPad тест

Цахилгаан хэлхээний холболтыг энд үзүүлсэн шиг харуулав (Хугацаа). Дараах кодыг ашиглан тэдгээрийг үзүүлсэн шиг холбож, мэдрэгч самбараа туршина уу.

Код:

RPi. GPIO -г GPIO болгон импортлох

цаг импортлох унтах GPIO.setmode (IO. BOARD) touchpad1 = 11 #pin 11 touchpad2 = 13 #pin 13 GPIO.setup (touchpad1, GPIO. IN) GPIO.setup (touchpad2, GPIO. IN) #Бид хоёуланг нь тоглуулах боломжтой Дээрх мэдэгдлүүдийг # GPIO.setup ([touchpad1, touchpad2], GPIO. IN) гэж хамтад нь үзээрэй: while True: if (GPIO.input (touchpad1) == True): хэвлэх ("Touchpad 1 хүрсэн") унтах (2) elif (GPIO.input (touchpad2) == Үнэн): хэвлэх ("Touchpad 2 хүрсэн") унтах (2) өөр: гараас бусад тохиолдолд хэвлэх ("Хүрээгүй") таслах: GPIO.cleanup () #CTRL-C гарахын тулд

LED туршиж байна

LED -ээ туршихын тулд энэхүү гайхалтай зааварчилгааг үзнэ үү!

Дээрх бүх бүрэлдэхүүн хэсгүүдийг туршиж үзсэний дараа та түүний том хувилбарыг бүтээхэд бэлэн байна.

Алхам 3: Үзүүлэлтийн самбарыг гагнах

Үзүүлэлтийн самбарыг гагнах
Үзүүлэлтийн самбарыг гагнах
Үзүүлэлтийн самбарыг гагнах
Үзүүлэлтийн самбарыг гагнах
Үзүүлэлтийн самбарыг гагнах
Үзүүлэлтийн самбарыг гагнах

Хэрэв та гагнуур хийх гэж байгаа бол эндээс зарим анхан шатны мэдлэгийг авахын тулд энэ хичээлийг үзнэ үү (Хэрхэн гагнах вэ). Хэрэв та гагнуурын чиглэлээр мэргэшсэн бол эхлүүлцгээе!

Үзүүлэлтийн самбар

Та тэдгээрийг хэрхэн яаж гагнах тухай дүрсийг дээрх зурган дээрээс олж болно.

Бид самбар дээр 13 RGB LED ашигладаг. Тэдгээрийг зүүн, баруун, төв гэсэн гурван хэсэгт хуваана.

Чухал: LED -ийн зай

Би LED -ийн хооронд 3 эгнээ үлдээсэн. Хоёрдахь зурган дээр үзүүлсэн шиг энэ нь LED хавтанг сайхан харагдуулж, мэдрэхэд чухал ач холбогдолтой юм. LED нь орон зайг их хэмжээгээр нэмэгдүүлэх эсвэл гэрлийг алсаас ялгах чадваргүй байхыг бид хүсэхгүй байна.

Хэрэгтэй зөвлөгөө: Эхлээд бүх нийтлэг катодын зүүг гагнахаас эхэлнэ

Гарын авлага: LED-ийг хооронд нь холбоход бат бөх, гулзайлгахад хялбар тул олон утастай утсыг ашиглаарай. Та богино зайг холбохын тулд LED-ийн нэмэлт таслагч тээглүүрийг ашиглаж болно

Баруун хэсэг: (5 LED)

  • Бүх Улаан тээглүүрийг хооронд нь холбоно уу
  • Бүх ногоон зүүг хооронд нь холбоно уу
  • Бүх нийтлэг катодын зүүг хооронд нь холбоно уу

Зүүн хэсэг: (5 LED)

  • Бүх Улаан тээглүүрийг хооронд нь холбоно уу
  • Бүх ногоон зүүг хооронд нь холбоно уу
  • Бүх нийтлэг катодын зүүг хооронд нь холбоно уу

Төв хэсэг: (3 LED)

Хэрэгтэй зөвлөгөө: Энэ хэсэг нь хангалттай болгоомжтой байхыг шаарддаг. Дээрх хоёр хэсэгт хийсэн шиг бүх тээглүүрийг гагнах хэрэггүй!

  • Бүх Улаан тээглүүрийг хооронд нь холбоно уу
  • Зөвхөн дээд ба доод LED -ийг холбоно уу.
  • Бүх нийтлэг катодын зүүг хооронд нь холбоно уу

Утас

Самбарыг GPIO самбартай холбохын тулд бидэнд илүү урт утас хэрэгтэй болно.

Хэрэгтэй зөвлөгөө:

  • Нэг утастай утас ашиглана уу! Тэд механик хүчдэлийг тэсвэрлэх хангалттай бат бөх!
  • Утаснуудыг самбар ба RPi хоорондох бодит уртаас арай урт байлга (энэ нь дараа нь утсыг удирдахад маш тохиромжтой! (Хугацаа: Хэмжилт)
  • Гагнуурын дараа дулаална! Маш чухал

Гагнахдаа холбогч утас ба нэг утастай утас ашиглана уу. Холбогч утасны нэг үзүүр нь эмэгтэй холбогч байх ёстой. Энд үзүүлсэн шиг гагнана уу (Хугацаа)

Утаснуудыг улаан, ногоон, хар гэж өнгөөр кодлоорой. Энэ нь Улаан зүү, Ногоон зүү, Нийтлэг катодын зүүтэй тохирч байна.

Бидэнд 3 Хар утас, 3 Улаан утас, 3 Ногоон утас хэрэгтэй.

Утаснууд бэлэн болмогц. Утасыг заагч LED руу гагнана.

Хэрэгтэй зөвлөмжүүд:

  • LED -ийг өгсөн холболтын дагуу гагнаж байгаа эсэхийг шалгаарай.
  • Зөв эсэргүүцлийн утгыг байрлуулсан эсэхээ шалгаарай. Хэрэв утгыг өөрчилвөл энэ нь LED -ийн гэрэлтүүлэгт нөлөөлнө
  • Таны бүх LED ажиллаж байгаа эсэхийг шалгах нэг арга бол 2 -р алхамд заасан мултиметр тоолуурыг ашиглах явдал юм. Энэ нь богино залгааны үед LED асахгүй байхыг мэдэх болно.
  • Утасны үзүүрийг шаардагдах хугацаанаас илүү урт бүү салга. Энэ нь тэдгээрийг байрандаа байлгахад хэцүү байх бөгөөд богино холболт үүсэх эрсдэл өндөр болно.
  • LED хооронд холбохын тулд олон утастай утас ашиглана уу.
  • Хэсгийг RPi руу холбохдоо нэг утастай утас ашиглана уу.

Алхам 4: Үзүүлэлтийн самбарыг туршиж үзээрэй

Үзүүлэлтийн самбарыг туршиж үзээрэй
Үзүүлэлтийн самбарыг туршиж үзээрэй
Үзүүлэлтийн самбарыг туршиж үзээрэй
Үзүүлэлтийн самбарыг туршиж үзээрэй
Үзүүлэлтийн самбарыг туршиж үзээрэй
Үзүүлэлтийн самбарыг туршиж үзээрэй

Баяртай! Хэрэв та самбарыг зөв гагнасан бол. Үзүүлэлтийг кодлох ажлыг үргэлжлүүлье.

Өмнө дурьдсанчлан бид баруун тийш, зүүн тийш эргэж, шөнийн харааг асаах/унтраахыг зааж өгөх болно.

3 -р алхам дахь хэлхээний холболтыг үзнэ үү.

Самбарын утсыг доор дурдсанчлан холбоно уу.

  • Улаан баруун - 7 -р зүү
  • Ногоон баруун - Pin 11
  • Нийтлэг катодын баруун талд - 6 -р зүү (GND)
  • Зүүн улаан - Зүү 13
  • Зүүн ногоон - 15 -р зүү
  • Зүүн нийтлэг катод - Pin 9 (GND)
  • Улаан улаан - Зүү 16
  • Ногоон төв (дээд ба доод) - Pin 18
  • Нийтлэг катодын төв - Pin 14 (GND)

Туршилтын код:

RPi. GPIO -г GPIO болгон импортлох

цаг импортлох унтах #Доорх пин дугааруудын дагуу холбоно уу Red_right = 7 Green_right = 11 Red_left = 13 Green_left = 15 Red_center = 16 Green_top_bottom = 18 GPIO.setmode (GPIO. BOARD) def right_turn (): хэвлэх ("Баруун эргэх") анивчих (Green_right, Green_top_bottom, 0) def left_turn (): print ("Зүүн тийш эргэх") анивчих (Green_left, Green_top_bottom, 0) def blink (pin1, pin2, pin3): if (pin3 == 0): GPIO.setup ([pin1, pin2], GPIO. OUT) x -ийн хувьд (10): GPIO.output ([pin1, pin2], GPIO. HIGH) унтах (0.5) GPIO.output ([pin1, pin2], GPIO. LOW) (0.5) өөр: GPIO.setup ([pin1, pin2, pin3], GPIO. OUT) x for range (10): GPIO.output ([pin1, pin2, pin3], GPIO. HIGH) унтах (0.5) GPIO.output ([pin1, pin2, pin3], GPIO. LOW) унтах (0.5) def night_sight (): хэвлэх ("Night Sight ON") анивчих (Red_left, Red_right, Red_center) оролдох: while True: cmd = оролт (" Туршилтын LED: ") хэрэв cmd ==" баруун эргэх ": баруун_ эргэх () elif cmd ==" зүүн эргэх ": left_turn () elif cmd ==" шөнийн хараа ": шөнийн хараа () өөр: хэвлэх (" Буруу тушаал ")) Ke -ээс бусад yboardInterrupt: GPIO.cleanup ()

Хэрэв таны самбар кодын дагуу бүх туршилтын үе шатыг цэвэрлэвэл сайн байна! Дараагийн алхамд бэлэн байгаарай

Хэрэв самбар асахгүй бол бүх алхамыг зөв дагаж, хэрэгтэй зөвлөмжүүдийг өмнө нь харсан эсэхээ шалгаарай. Асуудал үргэлжилсээр байвал доор коммент бичих боломжтой, би танд туслахад бэлэн байна.

Он цагийн хэлхээс: НЭГДҮГЭЭР турших (Ажлын загварыг үзэхийн тулд видеог үзээрэй)

Алхам 5: Үзүүлэлтийн самбарыг мэдрэгч самбараар нэгтгэх

Үзүүлэлтийн самбарыг мэдрэгч самбараар нэгтгэх
Үзүүлэлтийн самбарыг мэдрэгч самбараар нэгтгэх
Үзүүлэлтийн самбарыг мэдрэгч самбараар нэгтгэх
Үзүүлэлтийн самбарыг мэдрэгч самбараар нэгтгэх
Үзүүлэлтийн самбарыг мэдрэгч самбараар нэгтгэх
Үзүүлэлтийн самбарыг мэдрэгч самбараар нэгтгэх

Үүнийг RPi руу холбож байна

Дээрх зурагт үзүүлсэн шиг холболтыг хий.

Баруун самбар

Мэдрэгч самбар:

  • GND зүү - 34 -р зүү
  • VCC зүү - 1 -р зүү
  • SIG зүү - 29 -р зүү

LED:

Анод (+) зүү - 33 -р зүү

Зүүн самбар

Мэдрэгч самбар:

  • GND зүү - 30 -р зүү
  • VCC зүү - 17 -р зүү
  • SIG зүү - 31 -р зүү

LED:

Анод (+) зүү - Зүү 35

Нийтлэг GND: Pin 39 (LED -ийн катодын хувьд) - Нийтлэг газрын гагнуур (Хугацаа)

Туршилтын код:

RPi. GPIO -г GPIO болгон импортлох

цаг импортлох унтах Red_right = 7 Green_right = 11 Red_left = 13 Green_left = 15 Red_center = 16 Green_top_bottom = 18 right_touch = 29 left_touch = 31 right_led = 33 left_led = 35 triggered = 0 GPIO.setmode (GPIO. BOARD) GPIO.setup ([right_led, left_led], GPIO. OUT) GPIO.setup (right_touch, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (left_touch, GPIO. IN, pull_up_down = GPIO. PUD_UP) def right_turn (channel): GPIO.output (right_led, GPIO. HIGH) глобал өдөөгдсөн = 1 хэвлэх ("Баруун тийш эргэх") анивчих (Green_right, Green_top_bottom) def left_turn (суваг): GPIO.output (left_led, GPIO. HIGH) дэлхий даяар өдөөгдсөн = 1 хэвлэх ("Turning Зүүн ") анивчих (Green_left, Green_top_bottom) GPIO.add_event_detect (right_touch, GPIO. FALLING, callback = right_turn, bouncetime = 500) GPIO.add_event_detect (left_touch, GPIO. FALLING, callback = left_turn, bouncetime = 500) pin2): x муж дахь GPIO.setup ([pin1, pin2], GPIO. OUT) (10): GPIO.output ([pin1, pin2], GPIO. HIGH) унтах (0.5) GPIO.outpu t ([pin1, pin2], GPIO. LOW) унтах (0.5) GPIO.output ([баруун_лед, зүүн_харагдсан], GPIO. LOW) глобал идэвхжүүлсэн = 0 def night_sight (): while (Үнэн): GPIO.setup ([Red_center, Red_left, Red_right], GPIO. OUT) хэрэв дэлхий даяар идэвхжсэн бол (идэвхжүүлсэн == 0): хэвлэх ("Night Sight ON") GPIO.output ([Red_center, Red_left, Red_right], GPIO. HIGH) унтах (0.27) GPIO.output ([Red_center, Red_left, Red_right], GPIO. LOW) унтах (0.27) өөр: хэвлэх ("Night Sight OFF") GPIO.output ([Red_center, Red_left, Red_right], GPIO. LOW) оролдох: night_sight () KeyboardInterrupt -ээс бусад: GPIO.cleanup ()

Мэдрэгч самбар дээр дарж гэрэл гялалзаж байгааг хараарай

Хугацаа (заагч LED байхгүй): Хоёр дахь туршилт

Хугацаа (заагч LED -тай): Туршилт 3

Кодын тайлбар: Бид шөнийн харааг тасралтгүй ажиллуулахыг хүсч байгаа бөгөөд мэдрэгчтэй самбар дээр хүрэхэд мэдрэгчтэй самбарын функцийг гүйцэтгэх ёстой. Үүнийг нэгэн зэрэг хийхийн тулд бид питонд "тасалдал" гэж нэрлэдэг зүйлийг ашигладаг. Энэ нь ердийн кодоо ажиллуулах боломжийг олгодог бөгөөд энэ нь шөнийн хараа юм. Бид шөнийн харааг зогсоохын тулд идэвхжүүлсэн хувьсагчийг туг болгон ашигладаг.

Тасалдлын талаар дэлгэрэнгүй мэдээлэл авахыг хүсвэл энэ холбоосыг үзнэ үү.

Самбарыг гагнах

Одоо унадаг дугуйны бариул руу орох мэдрэгчтэй самбарыг гагнана уу. Дээрх зурагт үзүүлсэн холболтуудыг үзнэ үү.

Одоо та LED болон мэдрэгч самбараа туршиж үзсэн тул та явахад тохиромжтой. Хэрэв та хараахан туршиж үзээгүй бол энэ алхам болон өмнөх алхамуудыг үзнэ үү.

Мэдрэгч самбарыг видеонд үзүүлсэн шиг бариулын ойролцоо байрлуул. Энэ нь баруун мэдрэгч самбарын хувьд мэдрэгч самбар нь баруун талд, зүүн талд нь зүүн тийш байрладаг. Үүний нэгэн адил, зүүн мэдрэгч самбарын хувьд удирдагч нь баруун талд, зүүн талд байгаа нь эрхий хуруунд хүрэхэд хялбар болгодог.

Жич: Би мэдрэгчтэй самбарыг дахин ашиглах гэж байгаа тул түүнийг самбар дээр гагнахгүй байна. Тиймээс би үүнийг хоёр талт соронзон хальсны тусламжтайгаар самбар дээр байрлуулсан.

Урт утас ашиглан самбарыг RPi -д холбоно уу

Алхам 6: Үүнийг ухаалаг болго

Үүнийг ухаалаг болго!
Үүнийг ухаалаг болго!
Үүнийг ухаалаг болго!
Үүнийг ухаалаг болго!
Үүнийг ухаалаг болго!
Үүнийг ухаалаг болго!

Тийм ээ! Одоо бид индикаторын үндсэн шаардлагатай бүх зүйлийг ажиллуулж эхэллээ. Ухаалаг болгохын тулд үүнийг нэг алхам урагшлуулцгаая.

Энд ухаалаг нь батерейгаа хэмнэхийг тодорхойлдог. Шөнийн хараа үргэлж асаалттай байдаг бөгөөд заримдаа нартай өдөр үүнийг хийх шаардлагагүй байдаг. Энэ асуудлыг даван туулахын тулд LDR (Light Dependent Resistor) -ийг нэгтгэж, гэрлийн эрч хүчний өгөгдлийг бидэнд өгч, ингэснээр индикатороо цуглуулж боловсруулж болно.

LDR -ийг туршиж байна

Би гэрлийн эрч хүч, ямар утгыг буцааж өгөхийг шалгахын тулд LDR -ийг туршихын тулд энэ вэбсайтыг ашигласан.

Дээрх тэмдэглэгдсэн вэбсайтаас LDR -ийн ажлын код болон дээжийн кодыг үзнэ үү.

LDR -ийг манай кодтой нэгтгэх

Дээрх холболтын диаграммд үзүүлсэн шиг LDR -ийг мэдрэгч самбарын баруун талд гагнана.

Зүүг зөв газарт гагнсаны дараа кодчилох сүүлчийн цаг нь болно. Эцсийн код!

  • Конденсатор ба LDR-ийн катодын (-) нийтлэг цэгийг RPi дээрх Pin 36-тай холбоно уу.
  • Конденсаторын анод нь 5 -р алхамд дурдсан нийтлэг газардуулгын цэг рүү холбогдсон байна

Эцсийн код:

RPi. GPIO -г GPIO болгон импортлох

цаг импортлох унтах Red_right = 7 Green_right = 11 Red_left = 13 Green_left = 15 Red_center = 16 Green_top_bottom = 18 right_touch = 29 left_touch = 31 right_led = 33 left_led = 35 ldr = 36 trigger = 0 GPIO.setmode (GPIO. BOARD) GPIO. тохиргоо ([right_led, left_led], GPIO. OUT) GPIO.setup (right_touch, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (left_touch, GPIO. IN, pull_up_down = GPIO. PUD_UP) def right_turn (суваг): GPIO.output (right_led, GPIO. HIGH) глобал өдөөгдсөн = 1 хэвлэх ("Баруун тийш эргэх") анивчих (Green_right, Green_top_bottom) def left_turn (суваг): GPIO.output (left_led, GPIO. HIGH) дэлхий даяар өдөөгдсөн = 1 хэвлэх ("Зүүн тийш эргэх") анивчих (Green_left, Green_top_bottom) GPIO.add_event_detect (right_touch, GPIO. FALLING, callback = right_turn, bouncetime = 500) GPIO.add_event_detect (left_touch, GPIO. FALLING, callback = left_tens) (ldr): count = 0 #GPIO.setup (ldr, GPIO. OUT) GPIO.output (ldr, GPIO. LOW) унтах (0.1) #Чан e PIN -ийг GPIO.setup (ldr, GPIO. IN) руу буцааж оруулах): X мужид GPIO. тохиргоо ([pin1, pin2], GPIO. OUT)], GPIO. LOW) унтах (0.5) GPIO.output ([баруун_лед, зүүн_харсан], GPIO. LOW) глобал идэвхжүүлсэн = 0 def night_sight (): while (True): GPIO.setup ([Red_center, Red_left, Red_right], GPIO. OUT) дэлхий идэвхжсэн бол (light_sensing (ldr)> 7800): if (trigger == 0): print ("Night Sight ON") GPIO.output ([Red_center, Red_left, Red_right], GPIO. HIGH) унтаж байвал (0.27) GPIO.output ([Red_center, Red_left, Red_right], GPIO. LOW) унтах (0.27) өөр: хэвлэх ("Night Sight OFF") GPIO.output ([Red_center, Red_left, Red_right], GPIO. LOW) оролдох: night_sight () KeyboardInterrupt -ээс бусад: GPIO.cleanup ()

Воила! Мөн индикатор өнхрөхөд бэлэн байна.

Хэрэгтэй зөвлөгөө: RPi болон бусад бүрэлдэхүүн хэсгүүдийг мөчлөгт угсрахаасаа өмнө энэ програмыг зөв туршиж үзсэн эсэхээ шалгаарай. Алдаа засахын тулд үүнийг хэд хэдэн удаа ажиллуулна уу.

Алхам 7: Уран зураг ба угсралт

Уран зураг ба угсралт
Уран зураг ба угсралт
Уран зураг ба угсралт
Уран зураг ба угсралт
Уран зураг ба угсралт
Уран зураг ба угсралт

Шаардлагатай материал:

  • Утас огтлох/ хуулалт хийх хэрэгсэл
  • Raspberry Pi -д багтах нэг том хадгалах хайрцаг
  • Үзүүлэлтийн самбарт тохирох нэг жижиг хадгалах хайрцаг
  • Будаг
  • Будгийн багс

Үзүүлэлтийн самбар болон мэдрэгч самбарыг хар өнгөөр будаж эхэл. Би энд нийлэг будаг хэрэглэсэн бөгөөд та тэдгээрийг хүссэнээрээ ашиглаж болно. LED самбарыг илүү эрч хүчтэй, илүү тод харагдуулахын тулд хар дэвсгэр ашиглаарай. Хуванцарыг хайлуулахын тулд халаасан халив эсвэл ямар нэгэн металл объектыг ашиглан нүх гарга.

Жич: Нүх гаргахдаа болгоомжтой байгаарай.

Хугацаа: Будаг

Хэрэгтэй зөвлөгөө: Би хуванцар хайрцаг хэрэглэдэг байсан бөгөөд будаг амархан арилдаг. Сайн чанарын будаг хэрэглэж байгаа эсэхээ шалгаарай

Үзүүлэлт ба хавтанг будсаны дараа наранд хатааж, угсрахад бэлэн болно.

Би орон зайг хэмнэхийн тулд заагч самбар болон урд талын самбар дээрх нэмэлт самбарын нэмэлт ирмэгийг хайчилж авлаа.

Угсрах видеог үзээрэй!

Он цагийн хэлхээс: Өшөө авагчид! Угсрах. (Үзүүлэлтийн самбар ба RPi -ийг хайрцгаар угсрах)

Видео бичлэгээс үзэхэд том хайрцагт гурван нүх гаргаж утсыг зохих ёсоор тавь. Нэг нь RPi цахилгаан банкны утас, нэг нь мэдрэгчтэй самбар, нэг нь индикаторын самбар юм. Жижиг хайрцагт зөвхөн нэг нүх хэрэгтэй.

Гарын авлага: Утасны тусгаарлагчийг шалгаж, утсыг хайрцагт холбохын өмнө зөв гагнасан эсэхийг шалгаарай.

Алхам 8: VNC болон эцсийн код ашиглан алсын зайнаас тест хийх

VNC болон эцсийн код ашиглан алсын зайнаас туршилт хийх
VNC болон эцсийн код ашиглан алсын зайнаас туршилт хийх
VNC болон эцсийн код ашиглан алсын зайнаас туршилт хийх
VNC болон эцсийн код ашиглан алсын зайнаас туршилт хийх

Үзүүлэлт бүрэн бэлэн болохоос өмнө нэг эцсийн туршилт. RPi -ээ VNC Viewer -тэй холбож програмыг ажиллуулна уу.

Би үргэлж VNC серверийг ашиглан програмыг ажиллуулж, програмын алдааг олж засварладаг. Ийм байдлаар би RPi -ийг мониторыг гаднаас нь холболгүйгээр туршиж үзэхийг хүссэн газартаа шууд байрлуулж болно.

RPi -г VNC сервер рүү холбохын тулд энэ хуудсыг шалгана уу. (VNC сервер)

Та RPi -ийг VNC Сервертэй холбосны дараа. Та кодыг виртуал ширээний компьютер дээр ажиллуулж, алдаагаа засах боломжтой.

Он цагийн хэлхээс: Эхлэл дээр ажиллуулна уу

Хэрэгтэй зөвлөгөө: Та Raspberry Pi -ээ виртуал ширээний компьютерт холбосны дараа RPi -ийн IP хаягаар нэвтрэх болно. Гэхдээ хэрэв танд RPi холболтоос татгалзсан гэсэн алдаа гарвал энэ нь RPI дахь IP хаяг өөрчлөгдсөнтэй холбоотой юм. Хэрэв та чиглүүлэгч эсвэл WiFi сүлжээний цэгийг дахин эхлүүлээд хуучин хаягаар нэвтрэхийг оролдвол ийм зүйл тохиолдож болно. Чиглүүлэгч таныг дахин асаах бүрт шинэ IP оноож өгдөг боловч хэрэв та хуучин IP хаягийг санаж байвал сүүлийн цифрийг 1 -ээр нэмээд нэвтэрнэ үү. Жишээ нь: Хэрэв хуучин IP хаяг 190.148.1.100 бол 190.148 ашиглан нэвтэрнэ үү..101

Бүгд зөв ажиллаж байгаа эсэхийг шалгасны дараа эцсийн угсрах цаг болжээ.

Бид үргэлж питон скриптийг хянах эсвэл ажиллуулах виртуал ширээний компьютертай байдаггүй. Тиймээс эхлүүлэхдээ үүнийг хийцгээе.

RPi -ийг асаасны дараа бид програмаа ажиллуулахыг хүсч байна. Энэ талаархи дэлгэрэнгүй мэдээллийг энэ вэбсайтаас үзнэ үү!

Хэрэв таны RPi автоматаар нэвтрэх тохиргоонд байгаа бол үргэлжлүүлээрэй;

RPi терминал дээр дараах тушаалуудыг ажиллуулна уу

sudo nano /etc /profile

Доод тал руу гүйлгээд дараах мөрийг нэмнэ үү.

sudo python file_path &

Энд байгаа file_path нь таны эцсийн кодыг хадгалсан python файлын замыг хэлнэ.

Тэмдэглэл: Файлын төгсгөлд байгаа Ampersand (&) -ийг нэмж оруулах хэрэгтэй бөгөөд ингэснээр таны програм системийн ачаалахтай зэрэгцэн ажиллах болно. Манай програм төгсгөлгүй давталт агуулдаг тул энэ алхам нь заавал байх ёстой бөгөөд ингэснээр програм төлөвлөсний дагуу ажиллаагүй байсан ч гэсэн бид RPi ширээний тусламжтайгаар тохиргоог өөрчлөх боломжтой хэвээр байна.

Үүний дараа CTRL-X, дараа нь Enter товчийг хоёр удаа дарахад та командын терминал руу буцах болно.

Pi -г дахин ачаална уу

Одоо код эхлэх үед ажиллах ёстой

Алхам 9: Кабелийн менежмент ба эцсийн угсралт

Кабелийн удирдлага ба эцсийн угсралт
Кабелийн удирдлага ба эцсийн угсралт
Кабелийн менежмент ба эцсийн угсралт
Кабелийн менежмент ба эцсийн угсралт
Кабелийн менежмент ба эцсийн угсралт
Кабелийн менежмент ба эцсийн угсралт

Баяр хүргэе! энэ төслийг дуусгах тухай. Би танд хамгийн бага гэдэг үгийг өгсөн. Таны харж байгаагаар бид шаардлагатай бүх заалтыг харуулахын тулд цөөн тооны LED ашиглаж, өөрчилсөн өнгөөр харуулсан болно. LED -ийнхээ хувьд өөр өөр өнгийг ашиглаж болно, жишээлбэл, эргэлтийн үзүүлэлт эсвэл шар гэх мэт.

Хэрэв та энэ төслийг хэрэгжүүлсэн бол "Би үүнийг хийсэн" дээр дарж туршлагаасаа хуваалцаарай. Энэ төслийн талаархи санал бодол, санал хүсэлтээ хуваалцаарай. Би үүнийг сонсох дуртай байсан!

Кабелийн менежмент

Тийм ээ! Таны анзаарсан шиг мөчлөгт маш олон утас орж ирдэг бөгөөд тэдгээрийг удирдах нь маш хэцүү байдаг. Би утсыг нуухын тулд кабелийн таг, тусгаарлагч соронзон хальс, кабелийг ашиглаж, мөн харсан шигээ хараар будсан.

Хэрэгтэй зөвлөгөө: Та утсандаа шаардлагатай хэмжээнээсээ илүү инч үлдээсэн тул тэдгээрийг ачаалалгүйгээр зөв удирдах нь ашигтай байдаг! RPi -т холбогдсон холбогч утаснууд сул холбоо барих болно. Хэрэв энэ хэвээр байвал эрэгтэй, эмэгтэй холбогч утсыг ашиглан утсыг сунгаж, холбоно уу. Утаснууд хөдлөхгүй байхын тулд кабелийн бэхэлгээ ашигла.

Одоо индикаторыг унахаар тохирууллаа! Үүнийг сайхан өнгөрүүлээрэй

Жич: Дараагийн зааварчилгааны дагуу хэлхээний утаснуудын тоог багасгаж, илүү сайн төлөвлөгөө гаргахыг хүсч байна. Хэрэв би үүнийг хийвэл энэ талаар зааварчилгаа хуваалцах болно!

Алхам 10: Үзүүлэлтийн зарим зураг

Шалгуур үзүүлэлтийн зарим зураг
Шалгуур үзүүлэлтийн зарим зураг
Шалгуур үзүүлэлтийн зарим зураг
Шалгуур үзүүлэлтийн зарим зураг
Шалгуур үзүүлэлтийн зарим зураг
Шалгуур үзүүлэлтийн зарим зураг
Шалгуур үзүүлэлтийн зарим зураг
Шалгуур үзүүлэлтийн зарим зураг

Энэхүү зааварчилгааг уншсанд баярлалаа. Үүнийг хийхэд миний хийсэн шиг танд таалагдсан гэж найдаж байна

Цагийн хуваарь: Эцсийн шалгалт Дээрх сегмент дээр өрөө харанхуй болмогц "Шөнийн хараа" асаж, гэрэл гэгээтэй болоход тэр даруй унтарч байгааг харж болно!

Он цагийн хэлхээс: Өнхрөхөд бэлэн байна Үзүүлэлтийг бусдын анхаарлын төвд харуулахын тулд авсан зарим видео бичлэгүүд. Эгч дүүс маань дугуй унаж видео бичлэг хийсэн бүх гавьяа!

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