Spisu treści:

Minimalistyczny wskaźnik rowerowy, dotykowy!: 10 kroków (ze zdjęciami)
Minimalistyczny wskaźnik rowerowy, dotykowy!: 10 kroków (ze zdjęciami)

Wideo: Minimalistyczny wskaźnik rowerowy, dotykowy!: 10 kroków (ze zdjęciami)

Wideo: Minimalistyczny wskaźnik rowerowy, dotykowy!: 10 kroków (ze zdjęciami)
Wideo: Max 50 - 2020.12.26 - PEUGEOT 508 HYBRID 2024, Listopad
Anonim
Image
Image

Cześć! To jest mój pierwszy Instruktaż. Zawsze chciałem robić rzeczy od podstaw tylko po to, aby zobaczyć, jak to działa i kto nie lubi rzeczy DIY (Zrób to sam), kiedy można coś zmodyfikować zgodnie z własnymi potrzebami, prawda? Choć może to zabrzmieć interesująco, wymaga trochę wysiłku, aby to się stało. Przeglądanie strony Instructables to świetny sposób na rozpoczęcie aspiracji związanych z majsterkowaniem i tak zacząłem budować niektóre z moich projektów wcześniej, ale nigdy nie sądziłem, że będę je tworzyć.

Tak jak nadarzyła się okazja, stworzyłem wskaźnik rowerowy o minimalistycznym designie i dotykowym. Wiem, że istnieje wiele instrukcji lub źródeł internetowych dotyczących wskaźnika rowerowego, ale większość z nich zajmowała trochę więcej miejsca lub nie była wystarczająco sprytna, aby zmodyfikować je w określony sposób. Jeśli szukasz wskaźnika, który jest wystarczająco inteligentny, aby spełnić Twoje potrzeby i dać Ci szansę na ich modyfikację zgodnie z Twoimi potrzebami, to ten Instruktaż jest dla Ciebie!

Dlaczego wskaźnik rowerowy?

Uwielbiam jeździć na rowerze po mieście! Biorę swój rower i po prostu wybieram się na przejażdżkę rano lub wieczorem. Czasami w nocy trudno jest jeździć, ponieważ ruch uliczny za Tobą nie będzie w stanie Cię zauważyć i jest to niebezpieczny znak. Dlatego chciałem sam zbudować wskaźnik ze wszystkich materiałów, które miałem ze sobą w domu, a także świetnie wygląda na rowerze, gdy jeździsz po mieście, włączając kierunkowskazy!

Tworzenie projektu bez stawiania czoła problemom, nie zdarza się! Ale powiem ci wszystkie błędy, które popełniłem podczas budowania tego, jako „przydatną wskazówkę”, abyś nie próbował ich popełniać. Film na YouTube zawiera ilustrację przedstawiającą budowę projektu, małe animacje pokazujące, jak wszystko działa i jak wskaźnik wygląda na drodze! Najbardziej szczegółowe informacje są podane w tej instrukcji. W miarę postępów będę oznaczać segmenty mojego filmu na youtube jako „Oś czasu:” na każdym kroku, abyś mógł zobaczyć, jak wszystko działa w praktyce. Możesz uzyskać więcej informacji, klikając podane podświetlone linki.

Cechy tego projektu:

  • Wskazanie skrętu w prawo
  • Wskazanie skrętu w lewo
  • Wskazanie celownika nocnego
  • Obsługa dotykowa

Krok 1: Materiały na początek

Testowanie komponentów
Testowanie komponentów
  • Rezystory (330 omów i 120 omów): 330 omów i 120 omów
  • Raspberry Pi 3: RPi 3
  • Deska do krojenia chleba: Deska do krojenia chleba
  • Przewody połączeniowe (męsko-męskie, męskie-żeńskie, żeńskie-żeńskie): Przewody połączeniowe
  • Przewody wielożyłowe: Przewód wielożyłowy
  • Pojemnościowy czujnik dotykowy (TTP223) - (2): Link
  • Diody LED RGB (typ wspólnej katody) - (13): wspólna katoda LED RGB
  • Normalne diody LED - (2): LED
  • Materiały lutownicze: zestaw lutowniczy
  • Deski perforowane: Deska perforowana
  • Powerbank: Powerbank
  • Kondensator elektrolityczny 1 micro Farad: Kondensator elektrolityczny
  • LDR (rezystor zależny od światła): LDR
  • Opaski kablowe: Opaski kablowe
  • Korektor kablowy: Korektor kablowy
  • Farba i pędzle akrylowe (opcjonalnie): Farba i pędzle
  • Dwa pudełka do przechowywania do montażu. (1 duża i 1 średnia)

Zawsze zachowuj dodatkową ilość, jak wspomniano powyżej. Połączyłem komponenty na Amazon i jakiś najlepszy zestaw do lutowania materiałów!

Oś czasu: Zbierz materiały

Krok 2: Testowanie komponentów

Testowanie komponentów
Testowanie komponentów
Testowanie komponentów
Testowanie komponentów
Testowanie komponentów
Testowanie komponentów

Przetestujmy Twoje komponenty! Jest to bardzo pomocne w oddzieleniu komponentów, które z jakiegoś powodu są uszkodzone lub zachowują się dziwnie, a także ta faza pozwala uzyskać pierwsze praktyczne doświadczenie z komponentami i trochę się nauczyć przed przystąpieniem do tworzenia całego projektu.

Przetestuj rodzaj RGB LED

Na rynku znajdują się dwa rodzaje diod LED RGB. Typ wspólnej katody i typ wspólnej anody.

To przydatna wskazówka (choć większa), ponieważ podłączyłem diody LED, jak widać na tym filmie, a dioda LED nie zapaliła się zgodnie z oczekiwaniami, nawet po kilkukrotnym sprawdzeniu obwodu. Potem zdałem sobie sprawę, że istnieją dwa rodzaje tej diody LED i przeglądając arkusz danych w końcu znalazłem rozwiązanie! Problem z moim obwodem polegał na tym, że wspólny pin katody był podłączony do 3,3 V, jak wspomniano, a ja utrzymywałem pin GPIO na wysokim poziomie, więc zarówno wspólny pin katody, jak i pozostałe 3 piny miały ten sam potencjał.

Rozwiązanie: podłączyłem wspólny pin katody do masy i zapaliła się dioda LED! Powód, dla którego nie zmieniłem kodu, aby utrzymać piny GPIO na niskim poziomie, ponieważ później będziemy używać więcej diod LED, a RPi daje nam tylko dwa piny przy 3,3 V, których potrzebujemy również do innych celów!

Jak przetestować na typ?

Utrzymuj multimetr w trybie ciągłości. Dotknij najdłuższego przewodu czerwoną końcówką multimetru, a czarną końcówką dotknij jednego z pozostałych przewodów. Jeśli dioda LED zaświeci się po wykonaniu powyższej czynności, jest to dioda LED wspólnej anody RGB. Jeśli tak się nie stanie, odwróć teraz końcówkę multimetru. Dotknij najdłuższego przewodu czarną końcówką i czerwoną końcówką dowolnymi innymi przewodami. Teraz zaświeci się, pokazując, że dioda LED jest diodą LED Common Cathode RGB.

Przydatna wskazówka: w tym projekcie użyłem wspólnego typu katody. Postaraj się zdobyć tylko te typy, ale nawet jeśli inny typ jest dostępny, nie martw się. Połączenia obwodów pozostają takie same, jedyną różnicą jest kod, który podam jako komentarz obok aktualnej linii kodu, w której należy zmienić. Wziąć oddech.

Oś czasu: test RGB

Odniesienie: Jak przetestować RGB

Świeci się dioda LED RGB

Aby to zrobić, sprawdź schemat połączeń podany na powyższych zdjęciach i podłącz zgodnie z pinami przez płytkę stykową (aby na początku było bezpiecznie).

CZERWONY: Pin 11 (rezystor 330 omów)

ZIELONY: Pin 13 (rezystor 120-omowy)

NIEBIESKI: Pin 15 (rezystor 120-omowy)

Wartości rezystorów zmieniają się ze względu na zmieniające się napięcia przewodzenia przewodów.

Po prawidłowym podłączeniu zakoduj RPi we wbudowanym IDE Pythona.

importuj RPi. GPIO jako GPIO

#Numery pinów odpowiadają dokładnej liczbie na RPi GPIO Red_pin = 11 Green_pin = 13 Blue_pin = 15 #Podłącz pin wspólnej katody do pinu 6 def turnOn(pin): GPIO.setmode(GPIO. BOARD) GPIO.setup(pin, GPIO. OUT) GPIO.output(pin, GPIO. HIGH) #GPIO.output(pin, GPIO. LOW) dla wspólnego typu anody 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("Wpisz polecenie: ") if cmd == "red on ": #wpisz komendy wejściowe tak, jak wspomniano dokładnie w "" 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("Nieprawidłowe polecenie") z wyjątkiem KeyboardInterrupt: GPIO.cleanup()

Odwołałem się do tego Instruktażu, sprawdź to, aby uzyskać szczegółowy opis i kod!

Używając tego samego kodu powyżej, możesz sprawdzić, czy wiele diod LED jest razem, łącząc je równolegle na płytce stykowej i wyjmując pojedynczy punkt z dowolnego ze styków połączonych ze sobą. Użyj różnych wartości rezystorów dla każdego pinu, aby sprawdzić jasność diod LED

Przydatna wskazówka: Upewnij się, że podłączasz ten sam styk równoległy. Oznacza to, że czerwony pin jednej diody LED łączy się tylko z czerwonym pinem drugiej diody LED.

Oś czasu: spraw, by świeciły!

Testowanie płytki dotykowej

Połączenie obwodu jest pokazane tutaj (oś czasu). Podłącz je, jak pokazano i przetestuj swoje touchpady, używając poniższego kodu.

Kod:

importuj RPi. GPIO jako GPIO

od czasu import uśpienia GPIO.setmode(IO. BOARD) touchpad1 = 11 #pin 11 touchpad2 = 13 #pin 13 GPIO.setup(touchpad1, GPIO. IN) GPIO.setup(touchpad2, GPIO. IN) powyższe stwierdzenia razem jako # GPIO.setup([touchpad1, touchpad2], GPIO. IN) try: while True: if(GPIO.input(touchpad1) == True): print ("Touchpad 1 touchpad") sleep(2) elif (GPIO.input(touchpad2) == True): print ("Touchpad 2 touched") sleep(2) else: print("Not Touched") z wyjątkiem KeyboardInterrupt: GPIO.cleanup() #CTRL-C, aby wyjść

Testowanie diody LED

Zapoznaj się z tą niesamowitą instrukcją, aby przetestować swoją diodę LED!

Po przetestowaniu wszystkich powyższych komponentów jesteś gotowy do zbudowania jego większej wersji.

Krok 3: lutowanie panelu wskaźnika

Lutowanie panelu wskaźnika
Lutowanie panelu wskaźnika
Lutowanie panelu wskaźnika
Lutowanie panelu wskaźnika
Lutowanie panelu wskaźnika
Lutowanie panelu wskaźnika

Jeśli jesteś nowy w lutowaniu, zapoznaj się z tym samouczkiem, aby nauczyć się podstaw tutaj (Jak lutować). Jeśli jesteś profesjonalistą w lutowaniu, zacznijmy!

Panel wskaźników

Ilustracja przedstawiająca sposób ich lutowania znajduje się na płytce perforowanej na powyższych zdjęciach.

Do panelu używamy 13 diod LED RGB. Podziel je na trzy sekcje: lewą, prawą i środkową, aby odpowiednio przylutować.

Ważne: Rozstaw diod LED

Zostawiłem 3 rzędy między diodami. Jak pokazano na drugim zdjęciu. Jest to ważne, aby panel LED wyglądał i czuł się dobrze. Nie chcemy, aby diody LED znajdowały się zbyt daleko, aby powiększyć przestrzeń, lub zbyt blisko, aby nie móc odróżnić światła od daleka.

Przydatna wskazówka: zacznij od przylutowania wszystkich wspólnych kołków katodowych

Przydatna wskazówka: do łączenia diod LED używaj przewodów wielożyłowych, ponieważ są one mniej wytrzymałe i łatwe do zginania. Możesz użyć dodatkowych szpilek odcinających z diod LED, aby połączyć krótsze odległości

Sekcja prawa: (5 diod LED)

  • Połącz wszystkie czerwone szpilki razem
  • Połącz wszystkie zielone szpilki razem
  • Połącz razem wszystkie kołki wspólnej katody

Sekcja lewa: (5 diod LED)

  • Połącz wszystkie czerwone szpilki razem
  • Połącz wszystkie zielone szpilki razem
  • Połącz razem wszystkie kołki wspólnej katody

Sekcja środkowa: (3 diody LED)

Przydatna wskazówka: Ta sekcja wymaga wystarczającej ostrożności. Nie lutuj wszystkich pinów razem, jak to zrobiliśmy w dwóch powyższych sekcjach!

  • Połącz wszystkie czerwone szpilki razem
  • Podłącz tylko górną i dolną diodę LED, zielony pin.
  • Połącz razem wszystkie kołki wspólnej katody

Przewody

Do połączenia panelu z płytką GPIO potrzebujemy dłuższych przewodów.

Przydatna wskazówka:

  • Użyj przewodów jednożyłowych! Są wystarczająco mocne, aby wytrzymać naprężenia mechaniczne!
  • Trzymaj przewody nieco dłuższe niż rzeczywista długość potrzebna między panelem a RPi (jest to bardzo przydatne podczas późniejszego zarządzania przewodami! (Oś czasu: Pomiary)
  • Zaizoluj po lutowaniu! Bardzo ważne

Do lutowania użyj przewodu połączeniowego i przewodu jednożyłowego. Jeden koniec przewodu połączeniowego musi być złączem żeńskim. Przylutuj je, jak pokazano tutaj (oś czasu)

Oznacz przewody kolorami jako czerwony, zielony i czarny. co odpowiada odpowiednio pinowi czerwonemu, pinowi zielonemu i pinowi wspólnej katody.

Potrzebujemy 3 przewodów czarnych, 3 przewodów czerwonych i 3 przewodów zielonych.

Gdy przewody będą gotowe. Przylutuj przewody do wskaźników LED.

Przydatne wskazówki:

  • Upewnij się, że diody LED są przylutowane zgodnie z podanymi połączeniami.
  • Upewnij się, że przylutowałeś prawidłowe wartości rezystorów. Zmiana wartości wpłynie na jasność diod LED
  • Jednym ze sposobów upewnienia się, że wszystkie diody LED działają, jest użycie miernika uniwersalnego podanego w kroku 2. Jest to bardzo przydatne, ponieważ będziesz wiedzieć, że w przypadku zwarcia diody LED nie zaświecą się.
  • Nie zdejmuj końcówek przewodów dłużej niż jest to wymagane. Będzie to trudne do utrzymania ich na miejscu, a także większe ryzyko zwarcia.
  • Użyj wielożyłowego przewodu do połączenia między diodami LED.
  • Do podłączenia sekcji do RPi należy użyć przewodu jednożyłowego.

Krok 4: Przetestuj panel wskaźników

Przetestuj panel wskaźników
Przetestuj panel wskaźników
Przetestuj panel wskaźników
Przetestuj panel wskaźników
Przetestuj panel wskaźników
Przetestuj panel wskaźników

Sława! Jeśli poprawnie przylutowałeś panel. Przejdźmy teraz do kodowania wskaźnika!

Jak wspomniano wcześniej, wskażemy skręt w prawo, skręt w lewo i włącz/wyłącz celownik nocny.

Zobacz podłączenie obwodu w kroku 3.

Podłącz przewody panelu, jak wspomniano poniżej:

  • Czerwony Prawy -- Pin 7
  • Zielony Prawy -- Pin 11
  • Wspólna katoda prawa-pin 6 (GND)
  • Czerwony lewy -- pin 13
  • Zielony lewy -- pin 15
  • Wspólna katoda lewa-pin 9 (GND)
  • Centrum Czerwony -- Pin 16
  • Środkowy zielony (góra i dół) -- Pin 18
  • Środkowa wspólna katoda-pin 14 (GND)

Kod testowy:

importuj RPi. GPIO jako GPIO

od czasu import sleep #Połącz zgodnie z poniższymi numerami pinów 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 („Skręt w prawo”) miga (Green_right, Green_top_bottom, 0) def left_turn(): print ("Skręt w lewo") blink(Green_left, Green_top_bottom, 0) def blink(pin1, pin2, pin3): if(pin3 == 0): GPIO.setup([pin1, pin2], GPIO. OUT) dla x w zakresie(10): GPIO.output([pin1, pin2], GPIO. HIGH) sleep(0.5) GPIO.output([pin1, pin2], GPIO. LOW) sleep (0.5) else: GPIO.setup([pin1, pin2, pin3], GPIO. OUT) for x in range(10): GPIO.output([pin1, pin2, pin3], GPIO. HIGH) sleep(0.5) GPIO.output([pin1, pin2, pin3], GPIO. LOW) sleep(0.5) def night_sight(): print("Night Sight ON") blink(Red_left, Red_right, Red_center) try: while True: cmd = input(" Testuj diodę LED dla: ") if cmd == "skręt w prawo": right_turn() elif cmd == "skręt w lewo": left_turn() elif cmd == "nocny widok": night_sight() else: print("Nieprawidłowe polecenie") z wyjątkiem Ke yboardInterrupt: GPIO.cleanup()

Jeśli Twój panel wyczyści wszystkie fazy testowe, tak jak w kodzie, dobra robota! Przygotuj się na następny krok

Jeśli panel nie zaświeci się, upewnij się, że poprawnie wykonałeś wszystkie kroki i zapoznałeś się wcześniej z przydatnymi wskazówkami. Jeśli problem nie ustąpi, możesz skomentować poniżej, będę gotowy do pomocy.

Oś czasu: Test ONE (Sprawdź wideo dla działającego prototypu)

Krok 5: Integracja panelu wskaźników z panelem dotykowym

Integracja panelu wskaźników z panelem dotykowym
Integracja panelu wskaźników z panelem dotykowym
Integracja panelu wskaźników z panelem dotykowym
Integracja panelu wskaźników z panelem dotykowym
Integracja panelu wskaźników z panelem dotykowym
Integracja panelu wskaźników z panelem dotykowym

Podłączanie go do RPi

Wykonaj połączenia, jak pokazano na powyższym obrazku.

Prawy panel

Panel dotykowy:

  • Pin GND -- Pin 34
  • Styk VCC -- Styk 1
  • SIG pin - pin 29

PROWADZONY:

Anoda (+) pin -- pin 33

Lewy panel

Panel dotykowy:

  • GND pin -- pin 30
  • Pin VCC -- Pin 17
  • SIG pin -- pin 31

PROWADZONY:

Anoda (+) pin -- pin 35

Wspólne GND: Pin 39 (dla obu katod diod LED) - lutowanie do wspólnego uziemienia (oś czasu)

Kod testowy:

importuj RPi. GPIO jako GPIO

od czasu importu uśpienia 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) global triggered = 1 print ("Turning Right") blink(Green_right, Green_top_bottom) def left_turn(channel): GPIO.output(left_led, GPIO. HIGH) global triggered = 1 print ("Turning Left") blink(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) GPIO.add_event_detect(left_touch, GPIO. FALLING, callback = left_turn, bouncetime = 500) def pin2): GPIO.setup([pin1, pin2], GPIO. OUT) dla x w zakresie(10): GPIO.output([pin1, pin2], GPIO. HIGH) sleep(0.5) GPIO.outpu t([pin1, pin2], GPIO. LOW) sleep(0.5) GPIO.output([right_led, left_led], GPIO. LOW) global triggered triggered = 0 def night_sight(): while (True): GPIO.setup([Red_center, Red_left, Red_right], GPIO. OUT) globalnie wyzwalane if (triggered == 0): print ("Night Sight ON") GPIO.output([Red_center, Red_left, Red_right], GPIO. HIGH) sleep (0,27) GPIO.output([Red_center, Red_left, Red_right], GPIO. LOW) sleep(0.27) else: print ("Night Sight OFF") GPIO.output([Red_center, Red_left, Red_right], GPIO. LOW) try: night_sight() z wyjątkiem KeyboardInterrupt: GPIO.cleanup()

Dotknij touchpada, aby zobaczyć swój blask

Oś czasu (bez wskaźnika LED): Test drugi

Oś czasu (ze wskaźnikiem LED): Test 3

Wyjaśnienie kodu: Chcemy, aby noktowizor działał nieprzerwanie i kiedy dotkniemy touchpada, powinien się zatrzymać i wykonać funkcję touchpada. Aby to zrobić jednocześnie, używamy czegoś znanego jako „Przerwania” w pytonie. To pozwala nam uruchomić nasz normalny kod, który jest tutaj noktowizorem, a także wyzwala zdarzenie po wykryciu dotyku. Używamy wyzwalanej zmiennej jako flagi, aby zatrzymać nocny widok.

Więcej informacji na temat przerwań znajdziesz pod tym linkiem.

Przylutuj panel

Teraz przylutujmy panele touchpada, które trafią do kierownicy roweru. Zapoznaj się z połączeniami przedstawionymi na powyższym obrazku.

Teraz, po przetestowaniu diody LED i touchpada, możesz zacząć. Jeśli jeszcze nie testowałeś, zapoznaj się z tym krokiem i poprzednimi krokami.

Umieść touchpad blisko kierownicy, jak pokazano na filmie. Oznacza to, że dla prawego touchpada touchpad znajduje się po prawej stronie i po lewej stronie. Podobnie w przypadku lewego touchpada dioda znajduje się po prawej stronie, a touchpad po lewej, co ułatwia dotarcie kciukiem.

PS: Nie przylutowałem touchpada do płytki perf, ponieważ miałem go ponownie użyć. Dlatego po prostu nałożyłem go na panel za pomocą taśmy dwustronnej.

Podłącz panel do RPi za pomocą dłuższych przewodów

Krok 6: Uczyń to inteligentnym

Uczyń to inteligentnym!
Uczyń to inteligentnym!
Uczyń to inteligentnym!
Uczyń to inteligentnym!
Uczyń to inteligentnym!
Uczyń to inteligentnym!

Tak! Teraz, gdy mamy już wszystkie podstawowe informacje o wskaźniku. Zróbmy krok dalej, aby był inteligentny.

Tutaj smart definiuje również oszczędzanie na baterii. Jak zapewne zauważyłeś, celownik nocny jest zawsze włączony i czasami może nie być wymagany w jasny słoneczny dzień. Aby rozwiązać ten problem, zintegruj LDR (Light Dependent Resistor), aby uzyskać dane o natężeniu światła, które możemy zbierać i odpowiednio przetwarzać nasz wskaźnik.

Testowanie LDR

Powołałem się na tę stronę w celu przetestowania LDR, aby sprawdzić natężenie światła i jaką wartość zwraca.

Sprawdź na stronie oznaczonej powyżej obwód i przykładowy kod do działania LDR.

Integracja LDR z naszym kodem

Przylutuj LDR do prawego panelu touchpada, jak pokazano na powyższym schemacie połączeń.

Po przylutowaniu pinów we właściwym miejscu czas na ostatni bit kodowania. Ostateczny kod!

  • Podłącz wspólny punkt katody (-) kondensatora i LDR do styku 36 na RPi
  • Anoda kondensatora jest podłączona do wspólnego punktu uziemienia, o którym mowa w kroku 5

Kod końcowy:

importuj RPi. GPIO jako GPIO

od czasu importu uśpienia 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 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) global triggered triggered = 1 print („Turning Right”) blink(Green_right, Green_top_bottom) def left_turn(channel): GPIO.output(left_led, GPIO. HIGH) global triggered = 1 print („Skręt w lewo”) miga(Zielony_lewo, Zielony_góra_dół) GPIO.add_event_detect(right_touch, GPIO. FALLING, callback = right_turn, bouncetime = 500) GPIO.add_event_detect(left_touch, GPIO. FALLING, callback = left_sensing = defouncetime = defouncetime (ldr): count = 0 #Wyjście na pinie dla GPIO.setup(ldr, GPIO. OUT) GPIO.output(ldr, GPIO. LOW) sleep(0.1) #Chang e pin z powrotem do wejścia GPIO.setup(ldr, GPIO. IN) # Licz, aż pin osiągnie stan wysoki, podczas gdy (GPIO.input(ldr) == GPIO. LOW): liczba += 1 liczba powrotów def blink(pin1, pin2): GPIO.setup([pin1, pin2], GPIO. OUT) dla x w zakresie(10): GPIO.output([pin1, pin2], GPIO. HIGH) sleep(0.5) GPIO.output([pin1, pin2], GPIO. LOW) sleep(0.5) GPIO.output([right_led, left_led], GPIO. LOW) global triggered = 0 def night_sight(): while (True): GPIO.setup([Red_center, Red_left, Red_right], GPIO. OUT) global triggered if(light_sensing(ldr) > 7800): if (triggered == 0): print ("Night Sight ON") GPIO.output([Red_center, Red_left, Red_right], GPIO. HIGH) sleep (0.27) GPIO.output([Red_center, Red_left, Red_right], GPIO. LOW) sleep(0.27) else: print ("Night Sight OFF") GPIO.output([Red_center, Red_left, Red_right], GPIO. LOW) spróbuj: night_sight() oprócz KeyboardInterrupt: GPIO.cleanup()

Voila! A wskaźnik jest gotowy do toczenia.

Przydatna wskazówka: Przed montażem RPi i innych komponentów w cyklu upewnij się, że poprawnie przetestowałeś ten program! Uruchom go kilka razy, aby debugować wszelkie błędy.

Krok 7: Malowanie i montaż

Malowanie i montaż
Malowanie i montaż
Malowanie i montaż
Malowanie i montaż
Malowanie i montaż
Malowanie i montaż

Wymagane materiały:

  • Narzędzia do cięcia/odizolowania drutu
  • Jeden duży schowek pasujący do Raspberry Pi
  • Jedno małe pudełko do przechowywania pasujące do panelu wskaźników
  • Farba
  • Pędzle malarskie

Zacznij od pomalowania panelu wskaźników i paneli touchpada na kolor czarny. Użyłem tutaj farb akrylowych, możesz użyć ich do wyboru, które dobrze komponują się z płytą perforowaną. Użyj czarnego tła, aby panel LED był żywy i bardziej wyróżniający się. Wykonaj otwory rozgrzanym śrubokrętem lub dowolnym metalowym przedmiotem, aby stopić plastik.

Uwaga: należy zachować ostrożność podczas wykonywania otworów.

Oś czasu: farba

Przydatna wskazówka: Użyłem plastikowych pudełek i farba łatwo schodzi. Upewnij się, że używasz dobrej jakości farb

Po pomalowaniu wskaźnika i paneli należy je wysuszyć na słońcu i przygotować do montażu.

Wyciąłem dodatkowe krawędzie płyty perforowanej w panelu wskaźników i panelu przednim, aby zaoszczędzić miejsce.

Sprawdź wideo do montażu!

Oś czasu: Avengers! Gromadzić się. (Montaż panelu wskaźników i RPi ze skrzynkami)

Jak widać na filmie, ułóż odpowiednio przewody, robiąc trzy otwory w większym pudełku. Jeden do przewodu power banku RPi, jeden do paneli dotykowych i jeden do panelu wskaźników. Dla mniejszego pudełka wymagany jest tylko jeden otwór.

Przydatna wskazówka: Sprawdź izolację przewodów i sprawdź, czy przewody są prawidłowo przylutowane przed podłączeniem ich do pudełka.

Krok 8: Zdalne testowanie za pomocą VNC i kodu końcowego

Zdalne testowanie za pomocą VNC i kodu końcowego
Zdalne testowanie za pomocą VNC i kodu końcowego
Zdalne testowanie za pomocą VNC i kodu końcowego
Zdalne testowanie za pomocą VNC i kodu końcowego

Ostatni test, zanim wskaźnik będzie w pełni gotowy. Podłącz RPi do VNC Viewer i uruchom program.

Zawsze używam serwera VNC do uruchamiania programu i debugowania wszelkich błędów w programie. W ten sposób mogę umieścić RPi bezpośrednio w miejscu, w którym chcę testować bez podłączania monitora z zewnątrz.

Sprawdź tę stronę, aby połączyć RPi z serwerem VNC. (Serwer VNC)

Po podłączeniu RPi do VNC Server. Możesz uruchomić kod na pulpicie wirtualnym i debugować błędy.

Oś czasu: Uruchom przy starcie

Przydatna wskazówka: Po podłączeniu Raspberry Pi do wirtualnego pulpitu zalogujesz się za pomocą adresu IP RPi. Ale jeśli pojawi się błąd z informacją, że RPi odrzuciło połączenie, jest to spowodowane zmianą adresu IP w RPI. Może się to zdarzyć, gdy ponownie uruchomisz router lub hotspot Wi-Fi, a następnie spróbujesz zalogować się przy użyciu starego adresu. Router przypisuje nowy adres IP za każdym razem, gdy go ponownie uruchamiasz. Ale jeśli pamiętasz stary adres IP RPi, po prostu zwiększ ostatnią cyfrę o 1 i zaloguj się. Przykład: Jeśli stary adres IP to 190.148.1.100, zaloguj się przy użyciu 190.148 1.101

Po sprawdzeniu, czy wszystko działa poprawnie, czas na ostateczny montaż.

Zawsze nie możemy mieć wirtualnego pulpitu do monitorowania lub uruchamiania skryptu Pythona. Więc zróbmy to na starcie.

Chcemy, aby nasz program działał po uruchomieniu RPi. Sprawdź tę stronę internetową, aby uzyskać więcej informacji na ten temat!

Jeśli twoje RPi jest w konfiguracji automatycznego logowania, kontynuuj;

Uruchom następujące polecenia w terminalu RPi

sudo nano /etc/profil

Przewiń w dół i dodaj następujący wiersz:

ścieżka_pliku sudo python &

Plik_ścieżka w tym miejscu odnosi się do ścieżki pliku Pythona, w którym przechowywany jest końcowy kod.

Uwaga: Znak Ampersand (&) na końcu pliku powinien zostać dodany, aby program działał równolegle do rozruchu systemu. Ponieważ nasz program zawiera nieskończoną pętlę, ten krok jest obowiązkowy, więc nawet jeśli program nie działa zgodnie z oczekiwaniami, nadal możemy używać pulpitu RPi do zmiany ustawień.

Następnie naciśnij CTRL-X, a następnie Y Naciśnij dwukrotnie Enter, a wrócisz do terminala poleceń.

Uruchom ponownie Pi

Teraz kod powinien działać przy starcie

Krok 9: Zarządzanie kablami i montaż końcowy

Zarządzanie kablami i montaż końcowy
Zarządzanie kablami i montaż końcowy
Zarządzanie kablami i montaż końcowy
Zarządzanie kablami i montaż końcowy
Zarządzanie kablami i montaż końcowy
Zarządzanie kablami i montaż końcowy

Gratulacje! po zakończeniu tego projektu. Nadałem mu słowo Minimal, jak widzieliście, użyliśmy mniej diod LED, aby pokazać wszystkie niezbędne wskazania, a także z niestandardowymi kolorami. Możesz używać różnych kolorów dla swoich diod LED, takich jak żółty dla kierunkowskazów lub dowolny inny.

Jeśli wykonałeś ten projekt, kliknij „Zrobiłem to” i podziel się swoimi doświadczeniami. Podziel się swoimi przemyśleniami, a także wszelkimi sugestiami lub komentarzami na temat tego projektu. Chciałbym to usłyszeć!

Zarządzanie kablami

Tak! Jak zapewne zauważyłeś, w cyklach i wokół nich jest tak wiele przewodów, a zarządzanie nimi jest gorączkowe. Do ukrycia przewodów użyłem tagów kablowych, taśm izolacyjnych i osłony kabli, a także pomalowałem je na czarno, jak widać na zdjęciu.

Przydatna wskazówka: ponieważ zostawiłeś dodatkowe cale od kabli, niż jest to wymagane, warto teraz nimi właściwie zarządzać, nie obciążając ich! Jeśli jedna z diod LED świeci, a inne nie, nawet jeśli zrobiłeś wszystko dobrze, problem jest w zworki podłączone do RPi, będzie luźny styk. Jeśli to nie ustąpi, użyj zworki męskiej do żeńskiej, aby przedłużyć przewód i podłączyć je. Użyj opasek kablowych, aby utrzymać przewody na miejscu, aby się nie poruszały.

Teraz wskaźnik jest gotowy do jazdy! Ciesz się tym

PS: W dalszej instrukcji bardzo chciałbym zmniejszyć liczbę przewodów w obwodzie i wymyślić lepszy plan. Jeśli to zrobię, podzielę się instrukcją na ten temat!

Krok 10: Niektóre zdjęcia wskaźnika

Niektóre zdjęcia wskaźnika
Niektóre zdjęcia wskaźnika
Niektóre zdjęcia wskaźnika
Niektóre zdjęcia wskaźnika
Niektóre zdjęcia wskaźnika
Niektóre zdjęcia wskaźnika
Niektóre zdjęcia wskaźnika
Niektóre zdjęcia wskaźnika

Dziękuję za przeczytanie tej instrukcji. Mam nadzieję, że podobało ci się to tak samo, jak mnie podczas jego tworzenia

Oś czasu: Test końcowyW powyższym segmencie widać, że gdy tylko w pokoju robi się ciemniej, „Night Sight” włącza się, a gdy robi się jaśniej, natychmiast się wyłącza!

Timeline:Ready to RollSome filmy, które zrobiłem, aby pokazać wskaźnik w centrum uwagi. Wszystkie podziękowania za jazdę na rowerze moich sióstr w teledysku!

Zalecana: