Spisu treści:
- Krok 1: Materiały na początek
- Krok 2: Testowanie komponentów
- Krok 3: lutowanie panelu wskaźnika
- Krok 4: Przetestuj panel wskaźników
- Krok 5: Integracja panelu wskaźników z panelem dotykowym
- Krok 6: Uczyń to inteligentnym
- Krok 7: Malowanie i montaż
- Krok 8: Zdalne testowanie za pomocą VNC i kodu końcowego
- Krok 9: Zarządzanie kablami i montaż końcowy
- Krok 10: Niektóre zdjęcia wskaźnika
Wideo: Minimalistyczny wskaźnik rowerowy, dotykowy!: 10 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:28
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
- 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
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
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
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
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
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ż
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
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
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
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:
Przełącznik dotykowy mniej dotykowy: 11 kroków
Przełącznik dotykowy bezdotykowy: w panującej sytuacji COVID-19 wprowadzenie bezdotykowego interfejsu użytkownika dla maszyn publicznych, aby uniknąć rozprzestrzeniania się pandemii przez społeczność
Zbuduj prosty kierunkowskaz rowerowy: 11 kroków (ze zdjęciami)
Zbuduj prosty kierunkowskaz rowerowy: Wraz z nadejściem jesieni czasami trudno jest zdać sobie sprawę, że dni stały się krótsze, chociaż temperatura może być taka sama. Zdarzyło się to każdemu – wybierasz się na popołudniową wycieczkę rowerową, ale zanim wrócisz do połowy, jest ciemno, a Ty
Minimalistyczny zegar słowny: 28 kroków (ze zdjęciami)
Minimalistyczny Word Clock: Wielkie podziękowania dla Super Make Something, ponieważ ten projekt został zainspirowany ich Neopixel Word Clock. Stworzyłem ten zegar jako część mojego projektu IGCSE Design & Kurs technologii i otrzymał za to ocenę A*. Model CAD został wcześniej zbudowany na fuzji, dzięki czemu
PRZEŁĄCZNIK DOTYKOWY - Jak zrobić przełącznik dotykowy za pomocą tranzystora i płytki do krojenia chleba.: 4 kroki
PRZEŁĄCZNIK DOTYKOWY | Jak zrobić przełącznik dotykowy za pomocą tranzystora i płytki do krojenia chleba.: Przełącznik dotykowy to bardzo prosty projekt oparty na zastosowaniu tranzystorów. Tranzystor BC547 jest używany w tym projekcie, który działa jak przełącznik dotykowy. UPEWNIJ SIĘ, ŻE OBEJRZYSZ FILM, KTÓRY PODA CI PEŁNE SZCZEGÓŁY O PROJEKCIE
Minimalistyczny zegar IoT (przy użyciu ESP8266, Adafruit.io, IFTTT i Arduino IDE): 10 kroków (ze zdjęciami)
Minimalistyczny zegar IoT (przy użyciu ESP8266, Adafruit.io, IFTTT i Arduino IDE): W tym samouczku pokażę, jak zrobić minimalistyczny zegar zsynchronizowany z internetem. Przetestowałem go z dwoma różnymi płytami opartymi na ESP8266: Firebeetle i NodeMCU. Mikrokontroler pobiera aktualny czas z serwera Google i wyświetla go na