Spisu treści:
- Krok 1: Odłącz przewód zasilający i wyjmij baterię 9V
- Krok 2: Podłącz przewody połączeniowe
- Krok 3: Włącz RPi
- Krok 4: Zainstaluj Avrdude
- Krok 5: Edytuj plik konfiguracyjny Avrdude
- Krok 6: Pobierz lub skopiuj plik Flash.hex do /home/pi
- Krok 7: Sprawdź, czy Avrdude może rozmawiać z ATMEGA48V-10PU
- Krok 8: Flashuj plik.hex do ATMEGA48V-10PU
- Krok 9: Proste rozwiązywanie problemów w przypadku awarii lampy błyskowej
Wideo: Jak używać pinów GPIO i Avrdude Raspberry Pi do programu Bit-bang-DIMP 2 lub DA PIMP 2: 9 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:27
Są to instrukcje krok po kroku, jak używać Raspberry Pi i darmowego polecenia open-source do programowania bit-bang DIMP 2 lub DA PIMP 2. Zakładam, że znasz swoje Raspberry Pi i LINUX wiersz poleceń. Nie musisz znać się na programowaniu układów AVR, ale pomaga, jeśli coś pójdzie nie tak, ponieważ możesz odczytać dane wyjściowe avrdude i mieć pewne pojęcie, co robić.
Ta procedura powinna zająć około 1 godziny za pierwszym razem i 5 do 10 minut za każdym razem.
Będziesz potrzebować:
1) Raspberry Pi z pinami GPIO i zasilaczem. Używam Raspberry Pi Zero W z przylutowanymi pinami GPIO. System operacyjny powinien być Raspberry Pi OS (dawniej Raspbian). Używam Raspbian Lite (Stretch), który jest trochę stary. Te polecenia powinny nadal działać w najnowszej wersji Raspberry Pi OS.
Idąc dalej będę określał Raspberry Pi jako „RPi”.
2) Przewody połączeniowe żeńsko-żeńskie. Zdobądź jeden z tych kolorów: czerwony, czarny, niebieski, żółty, zielony, fioletowy. Używam brązu zamiast fioletu.
3) DIMP 2 lub DA PIMP 2 z wlutowanym opcjonalnym 10-pinowym złączem ICSP. Używam tutaj DIMP 2, ale instrukcje są takie same dla DA PIMP 2.
4) Dostęp do Internetu dla RPi, dzięki czemu można zainstalować bezpłatne polecenie avrdude o otwartym kodzie źródłowym.
5) Kopia pliku flash.hex dla twojego DIMP 2 lub DA PIMP 2. Możesz sam zbudować plik.hex z surowego kodu źródłowego, ale nie będę ci tutaj pokazywał, jak to zrobić.
6) Jakiś sposób na zalogowanie się do RPi - użyj połączenia sieciowego lub bezpośredniego dostępu do konsoli. Musisz mieć możliwość uruchamiania na nim poleceń.
Krok 1: Odłącz przewód zasilający i wyjmij baterię 9V
Najpierw sprawdź, czy przewód zasilający AC jest podłączony do DIMP 2 lub DA PIMP 2 i czy jest podłączony do sieci AC. Jeśli tak, NIEBEZPIECZEŃSTWO: RYZYKO PORAŻENIA ŚMIERTELNEGO. Załóż gumowe rękawiczki, a następnie wyłącz główny przełącznik kołyskowy na DIMP 2 lub DA PIMP 2. Następnie odłącz przewód zasilający AC od sieci AC i odłącz przewód zasilający AC od DIMP 2 lub DA PIMP 2. zdjąć gumowe rękawiczki po odłączeniu przewodu zasilającego.
Następnie wyjmij baterię 9V. Zasilanie będzie dostarczane do DIMP 2 przez RPi przez czerwone (Vcc) i czarne (GND) przewody. Na wszelki wypadek ustaw przełącznik suwakowy na DIMP 2 lub DA PIMP 2 w pozycji wyłączonej.
Krok 2: Podłącz przewody połączeniowe
Gdy RPi nie jest włączone, zacznij podłączać przewody połączeniowe. Idąc dalej, piny GPIO znajdują się na Raspberry Pi, a piny ICSP na DIMP 2 (nagłówek J3) lub DA PIMP 2 (nagłówek J1).
Zapoznaj się ze schematem, który ułożyłem, i zdjęciami, jeśli się zgubiłeś.
Część diagramu dotycząca RPi pochodzi z pinout.xyz.
Część schematu ATMEGA48V-10PU jest chroniona prawem autorskim 2016 Atmel Corp.
Twierdzę, że te rysunki są dozwolone ze względu na znaczące, transformacyjne dodatki.
Czarny przechodzi z pinu 6 GPIO do pinu 10 ICSP. To jest GND (masa)
Żółty przechodzi z pinu 12 GPIO do pinu 9 ICSP. To jest MISO.
Zielony przechodzi z pinu 16 GPIO do pinu 1 ICSP. To jest MOSI.
Niebieski przechodzi z pinu 18 GPIO do pinu 7 ICSP. To jest SCK lub SCLK (SClock)
Fioletowy (brązowy na moich zdjęciach) przechodzi z pinu 32 GPIO do pinu 5 ICSP. To jest RESET.
Czerwony przechodzi z pinu 4 GPIO do pinu 2 ICSP. To jest Vcc (zasilanie 5 V)
Krok 3: Włącz RPi
Teraz idź dalej i włącz RPi. Część woltomierza DIMP 2 lub DA PIMP 2 również powinna się zasilić, ale nie poznasz tego patrząc na wyświetlacz. W razie wątpliwości zmierzyć napięcie czerwoną sondą na pinie 20 na ATMEGA48V-10PU i czarną sondą na pinie 4, 6 lub 8 na złączu ICSP. Powinno wynosić około 5VDC.
Krok 4: Zainstaluj Avrdude
Moje instrukcje pokażą tylko polecenia wiersza poleceń. Jeśli masz uruchomiony GUI, będziesz chciał otworzyć Terminal, aby uruchomić te polecenia wiersza poleceń.
Zaloguj się jako domyślny użytkownik pi. Domyślne hasło to malina
Zainstaluj polecenie avrdude, wpisując następujące polecenie w wierszu poleceń terminala:
sudo apt-get install avrdude
Krok 5: Edytuj plik konfiguracyjny Avrdude
Edytuj plik konfiguracyjny avrdude, wpisując:
sudo nano /etc/avrdude.conf
Dodaj te wiersze w środku pliku, gdzie znajdują się inne definicje programisty. To, co zrobiłem, to skopiowanie sekcji programisty tuż nad nią dla id = "linuxgpio", a następnie wklejenie jej tuż poniżej (w linii 1274), a następnie edytowanie nowej sekcji.
programista
id = "pi_1"; desc = "Użyj interfejsu sysfs Linuksa do bitów linii GPIO"; typ = "linuxgpio"; reset = 12; sck = 24; mosi = 23; miso = 18;;
Następnie zapisz plik, naciskając: Ctrl-O
A następnie wyjdź z edytora nano, naciskając: Ctrl-X
Krok 6: Pobierz lub skopiuj plik Flash.hex do /home/pi
Skopiuj plik flash.hex do RPi. Zakładam, że wiesz, jak to zrobić. WSKAZÓWKA: Użyj polecenia wget, curl, git lub scp, aby przenieść plik z sieci do RPi.
Plik.hex programu DIMP 2 jest tutaj, wraz z kodem źródłowym:
github.com/dchang0/dimp2
Spersonalizowana wersja pliku.hex programu DA PIMP 2 jest tutaj. Nie testowałem tego!
github.com/jcwren/DaPimp2
Jeśli powyższa wersja pliku.hex DA PIMP 2 nie działa, oryginalny kod źródłowy DA PIMP 2 Mikeya Sklara jest tutaj. Będziesz musiał sam skompilować go do działającego pliku.hex. Nie opisuję tego w tej instrukcji, ponieważ będzie to długi (ale nie trudny) samouczek. Z powodzeniem zaprogramowałem kilka działających jednostek DA PIMP 2 za pomocą tego kodu źródłowego:
drive.google.com/open?id=0Bx5Als-UeiZbSUdH…
Możesz też przejść do głównej strony DA PIMP 2 tutaj i kliknąć link do kodu źródłowego.
mikeysklar.blogspot.com/p/da-pimp-battery-…
Umieść plik.hex w tej ścieżce i nazwie pliku w RPi…
Dla DIMP 2:
/home/pi/dimp2.hex
Dla DA PIMP 2:
/home/pi/da_pimp2.hex
Krok 7: Sprawdź, czy Avrdude może rozmawiać z ATMEGA48V-10PU
Uruchom polecenie avrdude, aby upewnić się, że może komunikować się z układem ATMEGA48V-10PU na DIMP 2 lub DA PIMP 2.
cd /home/pi
sudo avrdude -c pi_1 -p m48 -v
Dostaniesz o stronie wyjścia. Spójrz na koniec. Jeśli otrzymasz taką odpowiedź, możesz kontynuować.
avrdude: urządzenie AVR zainicjowane i gotowe do przyjęcia instrukcji
Czytanie | ################################################## | 100% 0,00s
Jeśli nie, to coś jest nie tak i powinieneś to rozgryźć. Najprawdopodobniej jest to błędne okablowanie, ale innym powszechnym zarzutem, jaki widziałem, jest to, że układ ATMEGA48V-10PU jest fałszywy. Wygląda na to, że wiele z nich sprzedawanych na Amazon lub ebayu to podróbki. Te sprzedawane przez Mouser lub Digikey i innych autoryzowanych dystrybutorów są oryginalne.
Krok 8: Flashuj plik.hex do ATMEGA48V-10PU
Uruchom to polecenie, aby zaprogramować układ…
Dla DIMP 2:
cd /home/pi
sudo avrdude -c pi_1 -p m48 -U flash:w:dimp2.hex
Dla DA PIMP 2:
cd /home/pi
sudo avrdude -c pi_1 -p m48 -U flash:w:da_pimp2.hex
Dostaniesz o stronie wyjścia. Poszukaj tych linii:
avrdude: pisanie flasha (1528 bajtów):
Pisanie | ################################################## | 100% 0,79s
avrdude: weryfikacja …
avrdude: 1528 bajtów zweryfikowanych przez flash avrdude: safemode: Bezpieczniki OK (E:FF, H:DF, L:62)
Jeśli dotarłeś tak daleko, powinieneś zobaczyć wyświetlacz LED pokazujący zera napięcia. Jeśli widzisz zera, gotowe! Jeśli nie, przejdź do następnego kroku.
Jeśli widzisz zera, wdzięcznie zamknij RPi za pomocą tego polecenia:
wyłączanie sudo -h teraz
Gdy kontrolka zasilania na RPi zgaśnie (DIMP 2 lub DA PIMP 2 będą nadal włączone), możesz odłączyć zasilanie od RPi. Następnie odłącz przewody połączeniowe między RPi a DIMP 2 lub DA PIMP 2.
Krok 9: Proste rozwiązywanie problemów w przypadku awarii lampy błyskowej
Jeśli nie widzisz zer na wyświetlaczu DIMP 2 lub DA PIMP 2, czas rozwiązać problem.
Ponownie sprawdź najpierw okablowanie.
Następnie sprawdź stany bezpieczników pokazane przez avrdude. Możliwe, że twój chip został dostarczony z bezpiecznikami ustawionymi na inne wartości niż domyślne. Chip może wymagać zresetowania bezpieczników, co wymaga zupełnie innego urządzenia sprzętowego. Jest to problem z wieloma fałszywymi chipami ATMEGA48V-10PU sprzedawanymi w serwisie eBay - są to stare chipy wyciągnięte z wyrzuconego sprzętu, a bezpieczniki zostały ustawione, a sprzedawca nie zadał sobie trudu, aby je zresetować.
Czasami chip nie jest nawet ATMEGA48V-10PU. Mógłby to być inny chip o zmienionej nazwie. Zazwyczaj można rozpoznać te podróbki, uważnie przyglądając się oznaczeniom na górze i na dole chipa. Rozsądniej jest kupić ATMEGA48V-10PU od zaufanego dostawcy, takiego jak Mouser lub Digikey.
Zalecana:
Sterowanie wieloma diodami LED za pomocą Pythona i pinów GPIO Raspberry Pi: 4 kroki (ze zdjęciami)
Kontrolowanie wielu diod LED za pomocą Pythona i pinów GPIO Raspberry Pi: Ta instrukcja pokazuje, jak kontrolować wiele pinów GPIO na RaspberryPi, aby zasilać 4 diody LED. Wprowadzi Cię również do parametrów i instrukcji warunkowych w Pythonie. Nasze poprzednie instrukcje używania pinów GPIO Twojego Raspberry Pi do Con
Miganie LED z Raspberry Pi - Jak korzystać z pinów GPIO na Raspberry Pi: 4 kroki
Miganie LED z Raspberry Pi | Jak korzystać z pinów GPIO na Raspberry Pi: Cześć, w tej instrukcji dowiemy się, jak korzystać z GPIO Raspberry pi. Jeśli kiedykolwiek używałeś Arduino, to prawdopodobnie wiesz, że możemy podłączyć przełącznik LED itp. do jego pinów i sprawić, by działał tak. spraw, aby dioda LED mrugała lub uzyskaj dane wejściowe z przełącznika, aby
Jak używać Neopixel Ws2812 LED lub LED Strip lub Led Ring z Arduino: 4 kroki
Jak używać Neopixel Ws2812 LED lub LED Strip lub Led Ring z Arduino: Cześć chłopaki, ponieważ Neopixel led Strip jest bardzo popularny i jest również nazywany jako ws2812 led strip. Są bardzo popularne, ponieważ w tych listwach ledowych możemy zaadresować każdą diodę z osobna, co oznacza, że jeśli chcesz, aby kilka diod świeciło jednym kolorem
Jak sterować wieloma diodami LED z kilku pinów mikrokontrolera.: 6 kroków (ze zdjęciami)
Jak sterować wieloma diodami LED z kilku pinów mikrokontrolera.: Korzystając z faktu, że wiele pinów mikrokontrolera ma trzy stany (+V, GND lub „wysoka impedancja”, możesz sterować diodami N * (N-1) z N pinów Tak więc mały 8-pinowy mikrokontroler, taki jak PIC12Fxxx lub ATtiny11, może sterować 20 diodami LED na pięciu dostępnych
Gniazdo ISP od 6 pinów do 8 pinów: 4 kroki
Gniazdo ISP od 6 do 8 pinów: Głównym powodem, dla którego zbudowałem ten projekt, było zaprogramowanie ATTiny45, który ma 8-pinowe połączenie, podczas gdy mój USBtinyISP (od Ladyada) ma tylko 10-pinowe i 6-pinowe połączenie. Po szperaniu w Internecie przez około 3-4 tygodnie nie znalazłem nic, co