Skocz do zawartości

Kurs Raspberry Pi - #16 - PWM, wejścia, kamera w Pythonie


Komentator

Pomocna odpowiedź

html_mig_img
Dzięki znajomości Pythona można przygotować wiele ciekawych projektów na Raspberry Pi. Za pomocą skryptów łatwo wysterujemy piny GPIO i wykorzystamy przeróżne peryferia.Tym razem zajmiemy się generowaniem PWM, obsługą wejść oraz kamery z poziomu Pythona.

UWAGA, to tylko wstęp! Dalsza część artykułu dostępna jest na blogu.

Przeczytaj całość »

Poniżej znajdują się komentarze powiązane z tym wpisem.

Link do komentarza
Share on other sites

Inari, spis treści został zaktualizowany w momencie publikacji tego artykułu 🙂 Wszystkie najważniejsze podstawy zostały omówione. Nikt nie powinien mieć już problemów z uruchomieniem czy konfiguracją malinki. Instalacja programów, polecenia Linuksa, proste skrypty i programy w Pythonie też zostały omówione, więc teraz możemy przejść do opisywania prostych projektów, które będą bazowały na umiejętnościach zdobytych podczas tego kursu. Reasumując na ten moment to koniec artykułów "tego typu", teraz skupimy się na projektach.

Link do komentarza
Share on other sites

Inari, spis treści został zaktualizowany w momencie publikacji tego artykułu 🙂 Wszystkie najważniejsze podstawy zostały omówione. Nikt nie powinien mieć już problemów z uruchomieniem czy konfiguracją malinki. Instalacja programów, polecenia Linuksa, proste skrypty i programy w Pythonie też zostały omówione, więc teraz możemy przejść do opisywania prostych projektów, które będą bazowały na umiejętnościach zdobytych podczas tego kursu. Reasumując na ten moment to koniec artykułów "tego typu", teraz skupimy się na projektach.

mniej więcej kiedy taki artykuł odnośnie jakiegoś projektu się pojawi?

Może zrobicie jakąś ankietę, gdzie będzie można zagłosować jaki artykuł chcemy?

czuję głód materiałów o malince i pythonie 👹

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Inari, odpowiadałem już na Twoje pytanie na temat terminów kolejnych publikacji wielokrotnie pod innymi artykułami z tej serii. Moja odpowiedź nie uległa zmianie - cały czas pracujemy nad nowymi tekstami i staramy się publikować je w taki sposób, aby wszyscy czytelnicy (różnych) kursów byli zadowoleni. Aktualnie nie podajemy konkretnych terminów publikacji i nic się w tej kwestii teraz nie zmieni. Rozumiem, że ciągle poszukujesz nowych informacji, proponuję w oczekiwaniu na kolejne nasze artykuły próbować sił z realizacją różnych projektów opisanych w internecie. Na oficjalnej stronie Fundacji Raspberry oraz na YouTubie znajdziesz setki projektów. Jeśli wykonałeś wszystkie ćwiczenia z naszego kursu podstaw Raspberry Pi to nie powinieneś mieć problemów, aby poradzić sobie z odtworzeniem przykładowych projektów znalezionych w internecie 🙂

Link do komentarza
Share on other sites

Witam 😀

Posiadam Rpi 4B. Zacząłem robić pierwsze zadanie z tego kursu i niestety nie wychodzi mi, wyskakuje błąd przy komendzie "wypelnienie += 5". Sprawdziłem parę razy ale raczej nie popełniłem błędu w komendach uruchamiając przez python3. Natknąłem się na komendy nie działające już przy wcześniejszym kursie z zadaniem gdzie trzeba podłączyć przycisk. Czy w tym przypadku tak samo jest to może wina biblioteki wiringPi? Szkoda trochę bo w paru zadaniach np. gdzie umieszczony jest przycisk, już wiem, że nie bedzie się dało zrobic zadania wypelniajac komendami z tego kursu. Może jest jakies obejscie tej komendy 'wypelnienie += 5'. Albo faktycznie ja cos źle robię 😋. Może obiło wam się o uszy kiedy bedzie aktualizacja kolejna wiringPi albo czy nastanie moment, że trzeba będzie korzystac z pigpio. 

 

11 minut temu, Maciek56 napisał:

Witam 😀

Posiadam Rpi 4B. Zacząłem robić pierwsze zadanie z tego kursu i niestety nie wychodzi mi, wyskakuje błąd przy komendzie "wypelnienie += 5". Sprawdziłem parę razy ale raczej nie popełniłem błędu w komendach uruchamiając przez python3. Natknąłem się na komendy nie działające już przy wcześniejszym kursie z zadaniem gdzie trzeba podłączyć przycisk. Czy w tym przypadku tak samo jest to może wina biblioteki wiringPi? Szkoda trochę bo w paru zadaniach np. gdzie umieszczony jest przycisk, już wiem, że nie bedzie się dało zrobic zadania wypelniajac komendami z tego kursu. Może jest jakies obejscie tej komendy 'wypelnienie += 5'. Albo faktycznie ja cos źle robię 😋. Może obiło wam się o uszy kiedy bedzie aktualizacja kolejna wiringPi albo czy nastanie moment, że trzeba będzie korzystac z pigpio. 

 

Już widzę, błędnie uruchamiam w python3. Sprawdziłem przez python i wszystko elegancko działa. 

Edytowano przez Maciek56
Link do komentarza
Share on other sites

2 godziny temu, Maciek56 napisał:

Może obiło wam się o uszy kiedy bedzie aktualizacja kolejna wiringPi albo czy nastanie moment, że trzeba będzie korzystac z pigpio. 

Niestety nie ma chyba żadnych oficjalnych informacji w tej kwestii. Wiadomo tylko, że prawdopodobnie taka wersja się pojawi 😉

Link do komentarza
Share on other sites

Drodzy forumowicze,

przerabiałem właśnie lekcję na temat obsługi kamery w Pythonie (lekcja #16)

Uruchamiając kod, moje Rpi 4B wyrzucało następujący błąd:
 

 File "/usr/lib/python3/dist-packages/picamera/camera.py", line 1423, in capture 
'Timed out waiting for capture to end')
picamera.exc.PiCameraRuntimeError: Timed out waiting for capture to end

 

Czy zetkneliście się też z takim błędem podczas swoich zabaw?

W moim przypadku pomogło wprowadzenie jednej modyfikacji do kodu:

camera.capture('/home/pi/photo.jpg', use_video_port=True)

Dodatkowo, na końcu listingu dodane zostało jeszcze zamknięcie obiektu camera. 

camera.close()

Można zrezygnować z tej linii jeśli obiekt camera zostanie stworzony w ten sposób (+ odpowiednia indentacja kodu): 

with PiCamera() as camera:

 

  • Lubię! 1
Link do komentarza
Share on other sites

@Maciek56 Hej mam ten sam problem, jak Ci udało się go naprawić ? Uruchamiam przez python i mam ten sam błąd 🤔 (Też RBpi 4B)

Dnia 28.08.2019 o 17:42, Maciek56 napisał:

Witam 😀

Posiadam Rpi 4B. Zacząłem robić pierwsze zadanie z tego kursu i niestety nie wychodzi mi, wyskakuje błąd przy komendzie "wypelnienie += 5". Sprawdziłem parę razy ale raczej nie popełniłem błędu w komendach uruchamiając przez python3. Natknąłem się na komendy nie działające już przy wcześniejszym kursie z zadaniem gdzie trzeba podłączyć przycisk. Czy w tym przypadku tak samo jest to może wina biblioteki wiringPi? Szkoda trochę bo w paru zadaniach np. gdzie umieszczony jest przycisk, już wiem, że nie bedzie się dało zrobic zadania wypelniajac komendami z tego kursu. Może jest jakies obejscie tej komendy 'wypelnienie += 5'. Albo faktycznie ja cos źle robię 😋. Może obiło wam się o uszy kiedy bedzie aktualizacja kolejna wiringPi albo czy nastanie moment, że trzeba będzie korzystac z pigpio. 

 

Już widzę, błędnie uruchamiam w python3. Sprawdziłem przez python i wszystko elegancko działa. 

 

Edytowano przez tomcio
Link do komentarza
Share on other sites

Cześć , mam problem z zapisem zdjęcia wyskakuje mi takie coś:

Traceback (most recent call last):
  File "camera.py", line 22, in <module>
    PiCamera.capture('/home/pi/foto.jpg')
TypeError: capture() missing 1 required positional argument: 'output'

To mój kod:


from picamera import PiCamera
import time
import RPi.GPIO as GPIO

GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(12, GPIO.OUT) #LED
GPIO.setup(26, GPIO.IN, pull_up_down=GPIO.PUD_UP) #BUTTON

dioda = GPIO.PWM(12, 10)
dioda.start(0)

#czekaj na wciśnięcie
dioda.ChangeDutyCycle(0)
GPIO.wait_for_edge(26, GPIO.FALLING)

#Włącz led podczas robienia zdjęcia
dioda.ChangeDutyCycle(100)
#Odczekaj 5 sekund
time.sleep(5)
#Zrób zdjęcie i zapisz
PiCamera.capture('/home/pi/foto.jpg')
#Wyłącz led
GPIO.output(12, GPIO.LOW)

 

Link do komentarza
Share on other sites

Brakuje instancji obiektu (mam nadzieję że tak to się nazywa w Pythonie):

kamera = PiCamera()

i wtedy używasz metody capture na ten instancji:

kamera.capture('/home/pi/foto.jpg')

porównaj swój kod z tym z kursu 🙂 

Edytowano przez Gieneq
  • Lubię! 1
Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.