Мазмуну:
- 1 -кадам: Баштоо үчүн материалдар
- 2 -кадам: Компоненттерди тестирлөө
- 3 -кадам: Индикатор панелин ширетүү
- 4 -кадам: Индикатор панелин тестке коюңуз
- 5 -кадам: Көрсөтүү панелин сенсордук такта менен интеграциялоо
- 6 -кадам: Аны акылдуу кыл
- 7 -кадам: Сүрөт жана монтаж
- 8 -кадам: VNC жана Final Code менен алыскы тестирлөө
- 9 -кадам: Кабелдик башкаруу жана акыркы жыйын
- 10 -кадам: Индикатордун кээ бир сүрөттөрү
Video: Минималист велосипед индикатору, Touch-Enabled!: 10 кадам (сүрөттөр менен)
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:39
Салам! Бул менин биринчи көрсөтмөм. Мен ар дайым нөлдөн баштап, анын кандай иштээрин көрүү үчүн нерселерди кылгым келген жана кимдир бирөө өзүңүздүн муктаждыгыңызга жараша нерсени өзгөртсөңүз, DIY (муну өзүңүз жасаңыз) кимге жакпайт? DIY кандай кызыктуу көрүнсө, аны ишке ашыруу үчүн бир аз аракет керек. Instructables веб -сайтын кароо - бул сиздин DIY каалооңузду баштоонун эң сонун жолу жана мен кээ бир долбоорлорумду ошентип кура баштадым, бирок мен аны жасайм деп эч ойлогон эмесмин.
Мүмкүнчүлүк келип калгандай эле, мен минимализм дизайны жана тийүү мүмкүнчүлүгү бар велосипед индикаторун жасадым. Велосипед индикатору үчүн көптөгөн Instructables же онлайн булактары бар экенин билем, бирок алардын көбү дагы көбүрөөк орунду ээлешкен же аларды белгилүү бир жол менен өзгөртүү үчүн акылдуу болушкан эмес. Эгерде сиз керектөөлөрүңүздү канааттандыруу үчүн акылдуу индикаторду издеп жатсаңыз жана аларды муктаждыгыңызга жараша өзгөртүүгө мүмкүнчүлүк берсеңиз, анда бул Нускамалык сиз үчүн!
Эмне үчүн велосипед индикатору?
Мен шаарды айланып велосипед тепкенди жакшы көрөм! Мен велосипед менен жүрөм жана жөн гана эртең менен же кечинде сейилдөөгө барам. Кээде, түнкүсүн, минүү кыйын, анткени артыңыздагы жол кыймылы сизди байкабай калат жана бул коркунучтуу белги. Мына ошондуктан мен үйдө болгон бардык материалдар менен индикаторду өзүм түзгүм келди, ошондой эле шаарда индикаторлорду күйгүзгөндө велосипедде сонун көрүнөт!
Эч кандай көйгөйгө туш болбостон, долбоорду түзүү эч качан болбойт! Бирок мен муну куруп жатканда, мен жасаган бардык каталарымды, аларды жасоого аракет кылбоо үчүн "Пайдалуу кеңеш" катары айтып берем. YouTube видеосунда долбоордун кандайча курулгандыгы тууралуу иллюстрация, нерселердин кантип иштээрин жана индикатор жолдо кандай көрүнөөрүн көрсөтүү үчүн анимациялар бар! Көбүрөөк маалымат бул Нускамада берилген. Сиз улантып жатканыңызда, мен youtube видеомдун сегменттерин "Убакыт тилкеси" деп белгилеп коем, ошондо сиз иш жүзүндө кандай иштээрин көрөсүз. Сиз берилген маалыматты бөлүп көрсөтүү аркылуу көбүрөөк маалымат ала аласыз.
Бул долбоордун өзгөчөлүктөрү:
- Оңго бурулуу көрсөткүчү
- Солго бурулуу көрсөткүчү
- Түнкү көрүүнүн көрсөткүчү
- Touch-Enabled
1 -кадам: Баштоо үчүн материалдар
- Резисторлор (330 Ом жана 120 Ом): 330 Ом жана 120 Ом
- Raspberry Pi 3: RPi 3
- Breadboard: Breadboard
- Jumper Wires (Эркек-Эркек, Эркек-Аял, Аял-Аял): Jumper Wires
- Multi-Strand Wires: Multi-Strand Wire
- 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 пини менен ЖОГОРКУ сактагам, ошондуктан жалпы катод пини жана башка 3 казык бирдей потенциалга ээ болчу.
Чечим: Мен жалпы катод пинин жерге туташтырдым жана LED күйдү! Мен GPIO казыктарын ТӨМӨН кармап туруу үчүн кодумду өзгөртпөгөнүмдүн себеби, биз кийинчерээк дагы көп светодиоддорду колдонобуз жана RPi бизге 3.3 Вдо эки гана төөнөгүчтү берет, бул бизге башка максаттар үчүн керек!
Түрүн кантип текшерсе болот?
Мультиметрди үзгүлтүксүз режимде кармаңыз. Мультиметрдин кызыл учу менен жана кара учу менен эң узун коргошун таптаңыз, башка коргошундарды таптап коюңуз.. Болбосо, мультиметрдин учун азыр артка кайтарыңыз. Эң узун коргошун кара учу жана башка учтары менен кызыл учу менен таптап коюңуз.
Пайдалуу кеңеш: Мен бул долбоордо жалпы катод түрүн колдондум. Бул түрлөрдү гана алууга аракет кылыңыз, бирок башка түрү бар болсо да, кабатыр болбоңуз. Райондук байланыштар өзгөрүүсүз калууда, бир гана айырманы мен өзгөртүү керек болгон чыныгы линиянын жанына комментарий катары бере турган коддон жасоо керек. Дем алуу.
Убакыт тилкеси: RGB сыноо
Шилтеме: RGB кантип текшерилет
RGB LED жарык
Бул үчүн, жогорудагы сүрөттөрдө берилген байланыш схемасын текшерип, казандын жардамы менен туташтырыңыз (баштоо үчүн коопсуз болуш үчүн).
КЫЗЫЛ: Pin 11 (330-Ом каршылыгы)
Жашыл: Pin 13 (120-Ом каршылыгы)
КӨК: Pin 15 (120-Ом каршылыгы)
Резистордун маанилери коргошундун өзгөрүүчү алдыга чыңалуусунан улам өзгөрүп турат.
Аларды туура туташтыргандан кийин, RPi'ни анын питону IDEге коддоңуз.
GPO катары RPi. GPIO импорттоо
#Пин номерлери RPi GPIO Red_pin = 11 Green_pin = 13 Green_pin боюнча так санга туура келет #6 6 pin turnOn (PIN) үчүн жалпы катод пинин туташтыруу: GPIO.setmode (GPIO. BOARD) GPIO.setup (pin, GPIO). OUT) GPIO.output (pin, GPIO. HIGH) #GPIO.output (pin, GPIO. LOW) жалпы анод түрү def turnOff (pin): 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 greenOn (): turnOn (Green_pin) def greenOff (): turnOff (Green_pin) def blueOn (): turnOn (Blue_pin) def blueOff (): turnOff (Blue_pin) try: while True: cmd = input ("your command:") if if cmd == "red on ": #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 () else: print ("Жарактуу буйрук эмес") KeyboardInterruptдон башка: GPIO.cleanup ()
Мен бул Нускамага кайрылдым, муну деталдуу сүрөттөө жана код үчүн текшериңиз!
Ошол эле кодду колдонуп, аларды бир нече LED диапазонуна параллель туташтырып текшерип, бири -бирине туташтырылган казыктардан бир чекитти алып салсаңыз болот. Светодиоддордун жарыгын текшерүү үчүн ар бир пин үчүн ар кандай резистордук маанилерди колдонуңуз
Пайдалуу кеңеш: Ошол эле пин түрүндөгү параллелди туташтырганыңызды текшериңиз. Башкача айтканда, бир LEDдын кызыл пини башка LEDдин кызыл пинине гана туташат.
Убакыт тилкеси: Аларды жаркыраткыла!
TouchPad тестирлөө
Райондук байланыш бул жерде көрсөтүлгөндөй (Timeline). Аларды көрсөтүлгөндөй туташтырыңыз жана сенсордук тактаңызды төмөнкү кодду колдонуп сынап көрүңүз.
Код:
GPO катары RPi. 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) == True): басып чыгаруу ("Touchpad 2 тийди") уйку (2) башка: басуу ("Тийилген эмес") клавиатурадан башка үзгүлтүккө учуроо: GPIO.cleanup () #CTRL-C чыгуу үчүн
LED сыноо
Сиздин LED сыноо үчүн бул кереметтүү көрсөтмө кайрыл!
Жогорудагы бардык компоненттерди текшергенден кийин, анын чоң версиясын түзүүгө даярсыз.
3 -кадам: Индикатор панелин ширетүү
Эгерде сиз жаңы эле ширетүүнү үйрөнүп жатсаңыз, бул окуу куралын карап көрүңүз, бул жерде анын кээ бир негиздерин билүү үчүн (кантип ширетүү керек). Эгерде сиз ширетүүдө профессионал болсоңуз, анда баштайлы!
Көрсөткүч панели
Аларды кантип ширетүү керектигин иллюстрациядан жогорудагы сүрөттөрдөн таба аласыз.
Биз панель үчүн 13 RGB LEDди колдонобуз. Аларды үч бөлүмгө бөлүңүз: ошого жараша солго, оңго жана борборго.
Маанилүү: LED диапазону
Мен LEDлердин ортосунда 3 катар калтырдым. Экинчи сүрөттө көрсөтүлгөндөй, бул LED панелинин жакшы көрүнүшү жана жакшы болушу үчүн маанилүү. Биз светодиоддордун мейкиндикти көбөйтүшүн же жарыкты алыстан айырмалай албашын каалабайбыз.
Пайдалуу кеңеш: Адегенде жалпы катод казыктарын ширетүү менен баштаңыз
Пайдалуу кеңеш: Светодиоддорду туташтыруу үчүн Multi-Strand Wires колдонуңуз, анткени алар анча бышык жана ийилүүгө оңой. Кыска аралыктарды туташтыруу үчүн LEDдин кошумча кесүү казандарын колдоно аласыз
Оң бөлүм: (5 LED)
- Бардык Кызыл Пиндерди бирге туташтырыңыз
- Жашыл пиндердин бардыгын бириктириңиз
- Бардык Жалпы Катод Пиндерин бириктириңиз
Сол бөлүм: (5 LED)
- Бардык Кызыл Пиндерди бирге туташтырыңыз
- Жашыл пиндердин бардыгын бириктириңиз
- Бардык Жалпы Катод Пиндерин бириктириңиз
Борбордук бөлүм: (3 LED)
Пайдалуу кеңеш: Бул бөлүм жетишерлик сактыкты талап кылат. Жогорудагы эки бөлүмдө болгондой эле, бардык казыктарды чогуу ширетпеңиз!
- Бардык Кызыл Пиндерди бирге туташтырыңыз
- Жогорку жана астыңкы диоддорду, Жашыл пинди гана туташтырыңыз.
- Бардык Жалпы Катод Пиндерин бириктириңиз
Зымдар
Панелди GPIO тактасына туташтыруу үчүн бизге узунураак зымдар керек.
Пайдалуу кеңеш:
- Бир зымдуу зымдарды колдонуңуз! Алар ага колдонулган механикалык стресстерге туруштук бере ала турган бышык!
- Зымдарды панель менен RPi ортосундагы керектүү узундуктан бир аз узунураак кармаңыз (бул кийинчерээк зымдарды башкарууда абдан ыңгайлуу! (Убакыт тилкеси: Ченөө)
- Лайк алгандан кийин жылуулаңыз! Абдан маанилүү
Өткөрүүчү зым менен бир жипти колдонуңуз. Өткөргүч зымдын бир учу ургаачы туташтыргыч болушу керек. Бул жерде көрсөтүлгөндөй аларды солигирип коюңуз (Хронология)
Түстөр коддору зымдарды Кызыл, Жашыл жана Кара. Бул тиешелүү түрдө Кызыл пинге, Жашыл пинге жана Жалпы катод пинине туура келет.
Бизге 3 Кара зым, 3 Кызыл зым жана 3 Жашыл зым керек.
Зымдар даяр болгондон кийин. Зымдарды индикатордук диоддорго туташтырыңыз.
Пайдалуу кеңештер:
- Жарык диоддору берилген туташууларга ылайык ширетилгенин текшериңиз.
- Туура каршылыктын маанилерин өз ордуңузга кошкондугуңузду текшериңиз. Эгерде баалуулуктар өзгөртүлсө, анда ал LED жарыгына таасирин тийгизет
- Бардык Светодиоддоруңуздун иштеп жатканына ынануунун бир жолу - 2 -кадамда берилген мультиметрди колдонуу. Бул абдан ыңгайлуу, эгерде кандайдыр бир кыска туташуу бар болсо, LEDлар күйбөйт.
- Зымдардын учтарын талап кылынгандан узартпаңыз. Бул аларды ордунда кармоо үчүн кыйын болот жана кыска туташуу коркунучу жогору болот.
- Жарык диоддорунун ортосундагы байланыш үчүн көп жиптүү зымды колдонуңуз.
- Бөлүмдөрдү RPiге туташтыруу үчүн бир жипти колдонуңуз.
4 -кадам: Индикатор панелин тестке коюңуз
Ардак! Эгерде сиз панельди туура ширеткен болсоңуз. Келгиле, азыр индикаторду коддоону уланта берели!
Жогоруда айтылгандай, биз оң бурууну, солго бурууну жана түнкү көрүнүштү күйгүзүүнү/өчүрүүнү көрсөтөбүз.
3 -кадамдагы схеманын туташуусун караңыз.
Панелдин зымдарын төмөндө айтылгандай туташтырыңыз:
- Кызыл оң - Pin 7
- Жашыл оң - Pin 11
- Жалпы катод оң - Pin 6 (GND)
- Кызыл сол - Pin 13
- Жашыл сол - Pin 15
- Жалпы катод сол жакта - Pin 9 (GND)
- Кызыл борбор - Pin 16
- Жашыл борбор (үстү жана асты) - Pin 18
- Жалпы катод борбору - Pin 14 (GND)
Сыноо коду:
GPO катары RPi. 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 (): print ("Оңго бурулуу") жымыңдоо (Green_right, Green_top_bottom, 0) def left_turn (): басып чыгаруу ("Солго бурулуу") ирмөө (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 үчүн диапазондо (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) аракет кылыңыз: чын: cmd = киргизүү (" Төмөнкү үчүн LED сыноо: ") эгер cmd ==" оңго бурулуу ": оңго_туруу () elif cmd ==" солго бурулуу ": left_turn () elif cmd ==" түнкү көрүнүш ": night_sight () башка: басып чыгаруу (" Жараксыз буйрук ")) Кеден башка yboardInterrupt: GPIO.cleanup ()
Эгерде сиздин панель коддогудай бардык сыноо этаптарын тазаласа, анда жакшы! Кийинки кадамга даяр болуңуз
Эгерде панель күйбөсө, анда бардык кадамдарды туура аткаргандыгыңызга жана колдонгон кеңештерди карап көрүңүз. Эгерде көйгөй чечилбесе, төмөндө комментарий калтырсаңыз болот, мен жардам берүүгө даярмын.
Убакыт тилкеси: Бир сыноо (Видеонун жумушчу прототиби үчүн текшериңиз)
5 -кадам: Көрсөтүү панелин сенсордук такта менен интеграциялоо
Аны RPiге туташтыруу
Байланыштарды жогорудагы сүрөттө көрсөтүлгөндөй кылыңыз.
Оң панель
Сенсордук такта:
- GND пин - Pin 34
- VCC пин - 1 -пин
- SIG пин - Pin 29
LED:
Анод (+) пин - 33 -пин
Сол панель
Сенсордук такта:
- GND пин - пин 30
- VCC пин - пин 17
- SIG пин - пин 31
LED:
Анод (+) пин - 35 -пин
Жалпы GND: Pin 39 (светодиоддордун катоддору үчүн) - Common Ground Soldering (Timeline)
Сыноо коду:
GPO катары RPi. 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 басып чыгаруу ("Бурулуу Солго ") ирмөө (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): GPIO.setup ([pin1, pin2], GPIO. OUT) x үчүн диапазондо (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 (True): 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 көрсөткүчү менен): Test 3
Коддун түшүндүрмөсү: Биз түнкү көрүнүш үзгүлтүксүз иштешин каалайбыз жана сенсордук тактага тийгенде ал токтоп, сенсордук панелдин функциясын аткарышы керек. Муну бир убакта жасоо үчүн, биз pythonдо "Interrupts" деп аталган нерсени колдонобуз. Бул бизге түнкү көрүнүш болгон кадимки кодубузду иштетүүгө мүмкүнчүлүк берет жана тийүү аныкталганда окуяны баштайт. Биз түнкү көрүнүштү токтотуу үчүн иштетилген өзгөрмөнү желек катары колдонобуз.
Үзгүлтүктөр жөнүндө көбүрөөк маалымат алуу үчүн бул шилтемени караңыз.
Панельди ширетүү
Эми велосипеддин рулуна өтүүчү сенсордук панелдерди ширетели. Жогорудагы сүрөттө берилген байланыштарга кайрылыңыз.
Эми сиз LED жана сенсордук тактаңызды сынап көргөнүңүздөн кийин, барууга болот. Эгерде сиз буга чейин тестирлебеген болсоңуз, анда бул кадамга жана мурунку кадамдарга кайрылыңыз.
Сенсордук панелди видеодо көрсөтүлгөндөй рулдун жанына коюңуз. Башкача айтканда, оң сенсордук такта үчүн сенсордук такта оңдо жана солдо. Ошо сыяктуу эле, сол сенсордук такта үчүн жетектөөчү оң жакта жана сенсордук такта сол жакта, бул бармактын жетүүсүн жеңилдетет.
PS: Мен сенсордук панелди тактага кошкон жокмун, анткени аны кайра колдонууга туура келди. Ошентип, мен аны эки тараптуу скотч менен панелге койдум.
Узун зымдарды колдонуу менен панелди RPiге туташтырыңыз
6 -кадам: Аны акылдуу кыл
Ооба! Эми бизде индикатордун бардык керектүү нерселери иштеп жатат. Келгиле, аны акылдуу кылуу үчүн дагы бир кадам таштайлы.
Бул жерде акылдуу батареяны үнөмдөөнү да аныктайт. Сиз байкагандай, түнкү көрүнүш дайыма күйүп турат, кээде бул ачык күндүү күнү талап кылынбайт. Бул көйгөйдү чечүү үчүн биз LDRди (Light Dependent Resistor) интеграциялоого мүмкүнчүлүк беребиз, жана биз индикаторубузду ошого жараша чогулта алабыз жана иштете алабыз.
LDR тестирлөө
Мен жарыктын интенсивдүүлүгүн жана ал кайтып келген баалуулукту текшерүү үчүн LDRди текшерүү үчүн бул вебсайтка кайрылгам.
Район үчүн жогоруда белгиленген вебсайтка жана LDRдин иштөө кодуна кайрылыңыз.
LDRди биздин кодго интеграциялоо
Жогорудагы байланыш диаграммасында көрсөтүлгөндөй, LDRди сенсордук панелдин оң панелине кошуңуз.
Тиешелүү жерлерди туура жерге салгандан кийин, коддоонун акыркы убактысы. Акыркы код!
- Конденсатор менен LDRдин катодунун (-) жалпы чекитин RPiдеги 36-пинге туташтырыңыз
- Конденсатордун аноду 5 -кадамда айтылган Common Ground чекитине туташкан
Акыркы код:
GPO катары RPi. 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. орнотуу ([оңго], солго карай], GPIO. OUT) GPIO. жөндөө (оңго тийүү, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (солго 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), bouncetime = 500 (ldr): count = 0 #Чыгуу GPIO.setup (ldr, GPIO. OUT) GPIO.output (ldr, GPIO. LOW) уйку (0.1) #Чанг PIN кайра GPIO.setup (ldr, GPIO. IN) кайтууга #Пин жогору болгонго чейин эсептөө (GPIO.input (ldr) == GPIO. LOW): count += 1 return count def blink (pin1, pin2)): 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.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 ()
Voila! Ал эми көрсөткүч жылдырууга даяр.
Пайдалуу кеңеш: RPi жана башка компоненттерди циклге чогултуудан мурун, бул программаны туура текшергениңизди текшериңиз! Мүчүлүштүктөрдү оңдоо үчүн бир нече жолу иштетиңиз.
7 -кадам: Сүрөт жана монтаж
Керектелүүчү материалдар:
- Сым кесүү/ сыйруу куралы
- Raspberry Pi'ге туура келген бир чоң сактоочу куту
- Бир кичинекей сактоочу кутуча индикатор панелине туура келет
- Paint
- Боёк щеткалары
Индикатор панелин жана сенсордук панелдерди кара түскө боёп баштаңыз. Мен бул жерде акрил боёкторун колдондум, сиз аларды өзүңүз каалагандай колдоно аласыз, ал тактай менен жакшы аралашат. LED панелин жандуу жана өзгөчө кылып көрсөтүү үчүн кара фон колдонуңуз. Пластикти эритүү үчүн жылытылган бурагычты же кандайдыр бир металлды колдонуп тешиктерди жасаңыз.
Эскертүү: тешик жасоодо этият болуңуз.
Убакыт тилкеси: Paint
Пайдалуу кеңеш: Мен пластикалык кутучаларды колдондум жана боёк оңой эле түшөт. Жакшы сапаттагы боёкторду колдонгонуңузду текшериңиз
Көрсөткүч жана панельдер боёлгондон кийин, аларды күнгө кургатып, кураштырууга даярданышат.
Мен мейкиндикти үнөмдөө үчүн көрсөткүч панелинде жана алдыңкы панелде перформанын кошумча четтерин кесип алдым.
Видеону чогултуу үчүн текшериңиз!
Убакыт тилкеси: Өч алуучулар! Чогулт. (Көрсөткүч панелин жана RPiди кутулар менен чогултуу)
Видеодо көрүнүп тургандай, чоң кутуга үч тешик жасап, зымдарды ошого жараша коюңуз. Бирөө RPi электр банкынын зымы үчүн, бири сенсордук панелдер үчүн, бири индикатор панели үчүн. Кичинекей куту үчүн бир гана тешик талап кылынат.
Пайдалуу кеңеш: Зымдардын изоляциясын текшериңиз жана аларды зым кутуга туташтыруудан мурун алардын туура ширетилгенин текшериңиз.
8 -кадам: VNC жана Final Code менен алыскы тестирлөө
Индикатор толугу менен даяр боло электе бир акыркы тест. RPiңизди VNC Viewerге туташтырып, программаны иштетиңиз.
Мен дайыма программаны иштетүү жана программада каталарды оңдоо үчүн VNC серверин колдоном. Ушундай жол менен мен RPi түздөн -түз мониторду сырттан туташтырбастан тестирлөөнү каалаган жерге жайгаштыра алам.
RPiңизди VNC Serverге туташтыруу үчүн бул баракты текшериңиз. (VNC Server)
Сиз RPiди VNC Serverге туташтыргандан кийин. Сиз виртуалдык иш столунда кодду иштетип, каталарды оңдой аласыз.
Убакыт тилкеси: Баштоодо иштетүү
Пайдалуу кеңеш: Raspberry Piңизди виртуалдык столго туташтыргандан кийин, сиз RPi IP дареги менен киресиз. Бирок, эгер сиз RPi туташуудан баш тартты деп ката алсаңыз, анда RPIдеги IP дареги өзгөргөндүктөн болот. Бул роутериңизди же WiFi туташуу түйүнүн кайра жүктөп, анан эски дарек менен кирүүгө аракет кылганда болушу мүмкүн. Маршрутизатор аны кайра жүктөгөн сайын жаңы IP дайындайт, бирок эгер сиз RPiнин эски IP дарегин эстесеңиз, акыркы цифраны 1ге көбөйтүңүз жана кириңиз. Мисалы: Эгерде эски IP дареги 190.148.1.100 болсо, анда 190.148 менен кириңиз..1.101
Мунун баары туура иштеп жаткандыгын текшергенден кийин, акыркы жыйынга убакыт келди.
Ар дайым бизде python скриптин көзөмөлдөө же иштетүү үчүн виртуалдык стол боло албайт. Ошентип, келгиле, муну баштоодо жасайбыз.
Биз программабыз RPi жүктөлгөндөн кийин иштешин каалайбыз. Бул тууралуу көбүрөөк маалымат алуу үчүн бул вебсайтты текшериңиз!
Эгерде сиздин RPi Auto-login орнотуусунан болсо, анда улантыңыз;
RPi терминалында төмөнкү буйруктарды аткарыңыз
sudo nano /etc /profile
Төмөнгө жылдырып, төмөнкү сапты кошуңуз:
sudo python file_path &
Бул жерде file_path акыркы кодуңуз сакталган python файлынын жолун билдирет.
Эскертүү: Файлдын аягындагы Ampersand (&) сиздин программа системаңыздын жүктөлүшүнө параллелдүү иштеши үчүн кошулушу керек. Биздин программада чексиз цикл камтылгандыктан, бул кадам милдеттүү, ошондуктан программа күтүлгөндөй иштебесе дагы, биз дагы эле орнотууларды өзгөртүү үчүн RPi столун колдоно алабыз.
Бул баскандан кийин CTRL-X, андан кийин YPress Enterди эки жолу басыңыз жана сиз кайра буйрук терминалына кайтасыз.
Pi'ни кайра жүктөңүз
Эми код башталганда иштеши керек
9 -кадам: Кабелдик башкаруу жана акыркы жыйын
Куттуктайм! бул долбоорду бүтүрүү боюнча. Мен ага Минимал сөзүн бердим, сиз көргөндөй, биз керектүү бардык көрсөткүчтөрдү көрсөтүү үчүн азыраак светодиоддорду колдонгонбуз. Светодиоддоруңуз үчүн ар кандай түстөрдү колдонууга тартынбаңыз, мисалы, бурулуш индикаторлору үчүн сары же башка.
Эгерде сиз бул долбоорду аткарсаңыз, "Мен жасадым" дегенди басып, тажрыйбаңыз менен бөлүшүңүз. Бул долбоор боюнча өз ойлоруңузду, ошондой эле ар кандай сунуштарыңыз же комментарийлериңиз менен бөлүшүңүз. Мен муну уккум келет!
Кабелдик башкаруу
Ооба! Сиз байкагандай, циклдердин ичинде жана айланасында көптөгөн зымдар бар жана аларды башкаруу оор. Мен зымдарды жашыруу үчүн кабелдик тегдерди, изоляция ленталарын жана кабелдик корпусту колдондум, ошондой эле сүрөттө көргөндөй кара түскө боёгом.
Пайдалуу кеңеш: Кабелдериңизден талап кылынгандан ашыкча дюймдарды таштап койгонуңуз үчүн, аларды чыңалбастан туура башкаруу азыр пайдалуу! Эгерде сиздин бир светодиодуңуз күйүп, башкалары сиз баарын туура кылган болсоңуз дагы, көйгөй RPiге туташкан Jumper Wires, бош байланыш болот. Эгерде бул улана берсе, анда зымды узартуу жана туташтыруу үчүн эркектен ургаачыга секирүүчү зымды колдонуңуз. Зымдарды жылдырбоо үчүн кабелдик байламталарды колдонуңуз.
Эми индикатордун баары Ride үчүн коюлган! Ырахаттан
PS: Дагы бир көрсөтмө катары мен чындыгында чынжырдагы зымдардын санын азайтып, жакшы план түзүүнү каалайт элем. Эгер мен андай кылсам, мен бул боюнча инструкцияны бөлүшөм!
10 -кадам: Индикатордун кээ бир сүрөттөрү
Бул Нускаманы окуганыңыз үчүн рахмат. Мен аны жасоодо мага жакты деп ишенем
Убакыт тилкеси: Акыркы тест Жогорудагы сегментте, бөлмө караңгыда "Түнкү көрүнүш" күйгүзүлүп, жарык болгондо дароо өчүп турганын көрө аласыз!
Убакыт тилкеси: Ролик даяр Эжелеримдин велосипед тебүүсүнө бардык кредиттер!
Сунушталууда:
CPU температурасы индикатору менен муздатуучу күйөрмандын Raspberry Pi кутусу: 10 кадам (сүрөттөр менен)
Raspberry Pi муздатуучу күйөрманынын температурасы CPU температурасы индикатору менен: Мен мурунку долбоордо малина пи (мындан ары- RPI) процессорунун температура көрсөткүч схемасын киргизгенмин. CPU температурасы 30 ~ ичинде
Raspberry Pi CPU температурасынын индикатору: 11 кадам (сүрөттөр менен)
Raspberry Pi CPU Температура Көрсөткүчү: Буга чейин мен жөнөкөй малина пи (мындан ары - RPI) операциялык статус көрсөткүч схемасын киргизген элем. Бул жолу мен башсыз (мониторсуз) иштеп жаткан RPI үчүн дагы пайдалуу индикатор схемасын түшүндүрөм. CPU темасы
Үй -бүлө / кесиптештин абалынын индикатору: 6 кадам (сүрөттөр менен)
Үй -бүлө / кесиптештин статусунун индикатору: Менин биринчи үйрөтүүчү, көптөгөн долбоорлор жылдар бою мага жардам берди, бул башка бирөөгө жардам берет деп үмүттөнөм. Кыскача окуя … Биз чалууларды үзбөй, башка бирөөнү кабыл алганыбызда, бири -бирибизге статусубузду көрсөтүүнүн жолуна муктаж болчубуз
LED аралыктын индикатору ит ат жабдыктары: 5 кадам (сүрөттөр менен)
LED дистанциясынын индикатору Иттердин ат жабдыктары: Мен, адатта, күн батып баратканда итим Русиону сейилдетип алам, ошондо ал өтө ысып кетпей ойной алат. Көйгөй, ал байланган кезде, кээде өтө толкунданып, керек болгондон ары чуркап баратат, жарыгы начар жана башка иттер менен
OreServer - LED ойноткуч индикатору бар Raspberry Pi арналган Minecraft Server: 9 кадам (сүрөттөр менен)
OreServer - LED ойноткуч индикатору бар Raspberry Pi арналган Minecraft Server: Июль 2020 ЖАҢЫРТУУ - Бул долбоорду баштоодон мурун, мен муну экиден ашык түзүү үчүн колдонгон ар кандай программалык куралдарга көп өзгөртүүлөр жана жаңыртуулар киргизилгенин билиңиз. жыл мурда. Натыйжада, көптөгөн кадамдар жазылгандай иштебей калат