Spisu treści:
- Krok 1: Koleś AVR
- Krok 2: ATtiny2313 - Migaj diodami
- Krok 3: Korzystanie z dodatku LCD
- Sprzęt komputerowy:
- Oprogramowanie
- Dołączony kod
- Krok 4: 28-pinowe programowanie ISP UC (ATmega8)
- Krok 5: Zaawansowane użycie wyświetlacza LCD i przycisków: duży zegar
- Krok 6: Programowanie wysokiego napięcia
- Krok 7: Rozszerzanie poza tablicę
- Krok 8: Wniosek
- Krok 9: Dodawanie 6-pinowego dostawcy usług internetowych
- To jest hack. Jeśli nie wiesz dokładnie, jak to działa, nie rób tego
- Krok 10: Czytnik RSS przy użyciu połączenia szeregowego i wyświetlacza LCD
- Sprzęt komputerowy
- Oprogramowanie
Wideo: Jak używać Dragon Rider 500 z AVR Dragon: 10 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:33
Ta instrukcja jest szybkim kursem korzystania z niektórych funkcji Dragon Rider 500 firmy Ecos Technologies. Należy pamiętać, że na stronie internetowej Ecros dostępny jest bardzo szczegółowy przewodnik użytkownika.
Dragon Rider to płyta interfejsu do użytku z programatorem mikrokontrolera AVR o nazwie AVR Dragon firmy Atmel. Więcej informacji: Atmel's Wesite: https://www.atmel.com/ AVR Dragon link: https://www.atmel.com/dyn/products/tools_card.asp?tool_id=3891 Dragon Rider 500 firmy Ecos Technology: https://www.ecrostech.com/AtmelAvr/DragonRider/index.htm Montaż Dragon Rider 500 Instrukcja: https://www.instructables.com/id/Assembling-the-Dragon-Rider-500-for-use-with- the-A/ Dowiedz się wszystkiego o mikrokontrolerach AVR: https://www.avrfreaks.net Ta instrukcja może z czasem rosnąć, więc sprawdzaj ją od czasu do czasu!
Krok 1: Koleś AVR
Aby używać AVR Dragon do programowania, potrzebujesz oprogramowania do programowania. Używam AVRdude z systemem operacyjnym Ubuntu (linux) i jestem bardzo zadowolony z wyników. Ta instrukcja nie zajmie się zawiłościami oprogramowania programistycznego. Jeśli nie wiesz, jak skonfigurować lub korzystać z oprogramowania do programowania, sprawdź tę instrukcję, aby przyspieszyć: https://www.instructables.com/id/Getting-started-with-ubuntu-and-the- AVR-smok/Domyślam się, że jeśli kupiłeś i zmontowałeś Dragon Rider 500, wiesz już, jak zaprogramować chip za pomocą AVR Dragon… dalej!
Krok 2: ATtiny2313 - Migaj diodami
Zaprogramujmy ATtiny2313, który jest 20-pinowym mikrokontrolerem. Dragon Rider 500 posiada gniazda dla kilku różnych wielkości mikrokontrolerów AVR. Należą do nich: 8, 20, 28 i 40-pinowe gniazda. W zależności od używanego gniazda, zworki na planszy Dragon Rider muszą być ustawione inaczej.
Ustawienia zworek
Ustaw zworki na Smoczym Jeźdźcu tak, aby boczniki łączyły kolejne styki. (pin4 jest środkowym pinem dla J22-J-24) Piny:J5 - 23J6 - 23J7 - 12J16 - 23J22 - 41J23 - 41J24 - 41Jest to podstawowa konfiguracja, która pozwala na ISP (w programowaniu systemowym).
Blinky Blinky
Programowanie na nic się nie zda, jeśli nie masz czegoś do zaprogramowania. Napisałem bardzo krótki przykład kodu, aby migać pojedynczo diody LED Dragon Rider. Użyj kabla taśmowego, aby podłączyć nagłówek LED (J29) do nagłówka PortB (J2).
Programowanie
Dołączyłem plik C, a także makefile i plik hex. Jak wspomniałem we wstępie, nie mogę omówić strony programowej programowania w Instructable. Program taki jak dla AVR Dragon, ponieważ Dragon Rider w ogóle nie zmienia oprogramowania.
Krok 3: Korzystanie z dodatku LCD
Oto prosty sposób korzystania z dodatku LCD. Spowoduje to wypisanie „Dragon Rider” na ekranie LCD.
Sprzęt komputerowy:
- ATtiny2313
- Zworka R/W: R/W powinna być podłączona do „BIT1” na płycie Dragon Rider (patrz wyjaśnienie w Instrukcji montażu)
- J23: Ta zworka musi być zainstalowana w celu programowania przez ISP, a następnie usunięta, aby wyświetlacz LCD działał prawidłowo.
- Podłącz LCD do PORT B za pomocą kabla taśmowego (J31 do J2)
Oprogramowanie
Używam biblioteki LCD Petera Fleury do sterowania wyświetlaczem LCD w trybie 4-bitowym. Sprawdź stronę domową Petera, aby pobrać bibliotekę. Musisz się upewnić, że lcd.c jest skompilowany z twoim kodem i że dokonałeś następujących zmian w lcd.h:
Używamy wewnętrznego oscylatora RC, więc XTAL musi być ustawiony na 1MHz:
#define XTAL 1000000
#define LCD_PORT PORTB
#Define LCD_DATA0_PIN 4 #Define LCD_DATA1_PIN 5 #Define LCD_DATA2_PIN 6 #Define LCD_DATA3_PIN 7
#define LCD_RS_PIN 3 #define LCD_RW_PIN 1 #define LCD_E_PIN 2
Główny program jest bardzo prosty dzięki pracy, jaką Peter Fleury wykonał w swojej bibliotece LCD. KOD:
#include #include "lcd.h"int main(void){ lcd_init(LCD_DISP_ON); //Zainicjuj LCD z wyłączonym kursorem lcd_clrscr(); //Wyczyść ekran LCD lcd_gotoxy(5, 0); //Przenieś kursor w to miejsce lcd_puts("Smok"); //Umieść ten ciąg na wyświetlaczu LCD lcd_gotoxy(6, 1); //Przenieś kursor w to miejsce lcd_puts("Jeździec"); //Umieść ten ciąg na wyświetlaczu LCD for (;;) { // Nie rób nic wiecznie (wiadomość jest już wyświetlana na wyświetlaczu LCD) }}
Dołączony kod
Załączony kod zawiera bibliotekę LCD Petera Fleury'ego (lcd.c i lcd.h) za jego zgodą. Dziękuję Piotrze! Jedyną zmianą, jaką w nim wprowadziłem, jest ustawienie właściwych pinów w Define. Proszę odwiedzić jego stronę, aby pobrać pakiet: https://www.jump.to/fleuryDołączyłem również plik makefile, którego używam, napisany przez Erica B. Weddingtona i Jorga Wunscha. Wysłałem PW do Jorga na avrfreaks.net, ale nigdy nie otrzymałem od niego odpowiedzi. W pliku makefile wprowadzono kilka zmian, aby dostosować je do korzystania z Linuksa i Smoka. Dziękuję wam obojgu, proszę, poinformuj mnie o swoich preferencjach dotyczących dzielenia się twoją pracą.
Krok 4: 28-pinowe programowanie ISP UC (ATmega8)
Kolejna demonstracja projektu będzie wykorzystywała ATmega8, który jest 28-pinowym avr. Oto podstawowy zestaw zworek do programowania 28-pinowych mikrokontrolerów przez ISP.
Ustawienia zworek
Ustaw zworki na Smoczym Jeźdźcu tak, aby boczniki łączyły kolejne styki. (pin4 to środkowy pin dla J22-J-24) Piny:J11 - 23J12 - 23J13 - 12J16 - 23J22 - 42J23 - 42J24 - 42
Specyfikacja
- Połączenie J11 i J12 w ten sposób pozwala używać tych pinów jako pinów we/wy. Alternatywą byłoby poprowadzenie tych pinów w celu połączenia z zewnętrznym kryształem.
- Podłączenie J13 w ten sposób pozwala nam wykorzystać go jako pin resetujący. Alternatywą byłoby skierowanie tego pinu do nagłówka PORTC do wykorzystania jako pin I/O. (miałoby to wiele wad, w tym brak możliwości zaprogramowania tego chipa za pomocą ISP).
- J16 i J22-J24 są połączone w ten sposób, aby poprowadzić odpowiednie piny (Reset, MISO, MOSI i SCK) do nagłówka ISP AVR Dragon.
Krok 5: Zaawansowane użycie wyświetlacza LCD i przycisków: duży zegar
To zabawny projekt, który wykorzystuje ekran LCD i przyciski. Będziemy mieli do czynienia z funkcjami zegara czasu rzeczywistego i niestandardowymi znakami na wyświetlaczu LCD. Na zdjęciu na dole widać godzinę 19:26:07 wyświetlaną dużymi liczbami na ekranie LCD. Każda liczba wykorzystuje siatkę 2x2 wyświetlanych znaków, aby pokazać dużą liczbę. Wykorzystuje czcionkę oryginalnie napisaną przez Xtinus dla projektu XBMC. Przyciski służą do ustawiania zegara. W lewo zwiększa godziny, w górę minuty, w prawo przełącza między czasem 12 a 24-godzinnym, a Enter resetuje sekundy do zera. Zegar nie odmierza zbyt dobrze czasu, ponieważ używamy bardzo niedokładnego wewnętrznego oscylatora, ale ten program można łatwo zmienić tak, aby używał znacznie dokładniejszego zewnętrznego kryształu. Zobacz to w akcji na poniższym filmie. Wyjaśnienie, jak działa ten kod, jest w porządku, ale nie mam teraz czasu. Na razie podłącz złącze wyświetlacza LCD (J31) do portu PORTD (J4), a złącze przycisku (J30) do portu PORTB (J2). Upewnij się, że oba przełączniki SW1 i SW2 są wyłączone. Podłącz AVR Dragon do kabla USB i podłącz drugi koniec tego kabla do komputera. Włącz SW2 i zaprogramuj ATmega8 wybranym programem do programowania (plik szesnastkowy poniżej; bezpieczniki spalone do ustawień fabrycznych). to, gdy zasilanie jest wyłączone.
Krok 6: Programowanie wysokiego napięcia
Użyłem programowania równoległego wysokiego napięcia, aby wskrzesić ATtiny2313, w którym ustawiłem niewłaściwe ustawienia bezpieczników. Potrzebowałem tego po raz drugi podczas pracy nad tym instruktażem, ponieważ przypadkowo napisałem ustawienie bezpiecznika, które chciałem, do rejestru bezpiecznika….. ooops. Programowanie równoległe wysokiego napięcia jest poręcznym narzędziem do Twojej dyspozycji! Poniżej znajduje się lista moich ustawień zworek: UŻYWAJ NA WŁASNE RYZYKO, TEN TYP PROGRAMOWANIA MOŻE USZKODZIĆ SPRZĘT, JEŚLI NIE WIESZ CO ROBISZ!! Programowanie równoległe wysokiego napięcia: ATtiny2313 w gnieździe U3:SW1 - OFFSW2 - ONJ5, J6, J7 - połącz pin1 i pin2XTAL1 - połącz pin1 i pin2J16 - połącz pin1 i pin22x5 Kable IDC: PROG_CTRL do PORT D, PROG_DATA do PORT B Wszystkie inne zworki niepodłączone (J8-J13, J18, J19, J20, J22-J28, J24) W przypadku innych układów powinieneś być w stanie znaleźć potrzebne ustawienia z instrukcji obsługi Atmela dla ich STK500.
Krok 7: Rozszerzanie poza tablicę
Wydaje mi się, że interfejs z płytą prototypową jest dość łatwy. Pozwala to na znacznie większą elastyczność w prototypowaniu i tworzeniu kodu w tym samym czasie. Poniżej zobaczysz kilka płytek prototypowych połączonych z Dragon Riderem. Podłączam kable taśmowe do odpowiednich portów na jednym końcu. Z drugiej strony używam zworek do połączenia właściwego przewodu ICD z płytkami stykowymi.
Krok 8: Wniosek
Jest o wiele więcej rzeczy, które można zaangażować w ten Instruktaż. Właśnie dziś wieczorem skompletowałem adapter, który umożliwia korzystanie z 6-pinowego złącza programującego bez wyjmowania smoka z Dragon Rider. Będę zamieszczać informacje o tym, jak samemu je skonstruować… wkrótce. Jeśli masz inne rzeczy, które Twoim zdaniem należy dodać, zostaw komentarz.
Krok 9: Dodawanie 6-pinowego dostawcy usług internetowych
Zazwyczaj do wszystkich moich projektów wbudowuję 6-pinowe złącze ISP, dzięki czemu mogę przeprogramować układ w razie potrzeby i nie muszę go zdejmować z płytki projektowej. Dragon rider niestety nie ma dostępnego 6-pinowego złącza ISP, ale wymyśliłem, jak go udostępnić.
Ostrzeżenie!
To jest hack. Jeśli nie wiesz dokładnie, jak to działa, nie rób tego
Zostałeś ostrzeżony. Stworzyłem własną płytkę adaptera i 3-pinową zworkę do zasilania 6-pinowego złącza ISP. To, co robisz, to ustawianie Dragon Ridera na zaprogramowanie i 8-pinowy mikrokontroler. Używając 3-pinowego gniazda zwieram J8, aby połączyć piny 1 i 3. To kieruje sygnał zegara do złącza PortB. Następnie prowadzę kabel połączeniowy z nagłówka PortB do mojej płytki adaptera i voila! Poniżej znajdują się zdjęcia…. proszę, proszę, proszę, nie rób tego, chyba że naprawdę rozumiesz, co robisz, ponieważ możesz uszkodzić swojego AVR Dragona lub gorzej, jeśli zrobisz to źle.
Pinout: PortB ISP1 42 13 34 NC5 NC6 57 NC8 NC9 610 2
Krok 10: Czytnik RSS przy użyciu połączenia szeregowego i wyświetlacza LCD
Nadal bawię się tą tablicą rozwojową. Tym razem spędziłem część popołudnia na rozwijaniu czytnika RSS (głównie po stronie pytona). Nie sądzę, że gwarantuje to własne instrukcje, więc dodaję to tutaj.
Sprzęt komputerowy
Używamy Dragon Rider 500 jako płyty rozwojowej. Zapewnia to cały potrzebny sprzęt (zakładając, że masz wszystkie dodatkowe zestawy). Biorąc to pod uwagę, z pewnością możesz to zrobić z własną konfiguracją sprzętu:
- Mikrokontroler ATmega8 (lub dowolny, który ma USART i wystarczającą ilość pinów do wszystkich połączeń)
- Sposób na zaprogramowanie mikrokontrolera (ja używam AVR Dragon)
- Układ MAX232 do komunikacji szeregowej
- Złącze DB9
- Ekran LCD HD44780
- Kryształ (użyłem kryształu 8MHz)
- Różne kondensatory i rezystory
Schemat znajduje się poniżej. Na Smoczym Jeźdźcu będziemy musieli użyć trochę kreatywności, aby poprowadzić połączenia. Normalnie Port D może być podłączony bezpośrednio do nagłówka LCD. W tym przypadku tak nie jest, ponieważ USART potrzebny do połączenia szeregowego używa PD0 i PD1. Co więcej, port B nie może być używany, ponieważ PB6 i PB7 są używane dla zewnętrznego kryształu. Na zdjęciu poniżej moje rozwiązanie tego problemu. Podłączam kabel taśmowy do gniazd wyświetlacza LCD, portu B i portu D, a następnie używam przewodów połączeniowych, aby utworzyć odpowiednie trasy. Nie zapomnij podłączyć napięcia i masy do złącza LCD.
Oprogramowanie
Oprogramowanie do tego projektu składa się z dwóch części: firmware dla mikrokontrolera i skrypt Pythona do zgarniania kanałów RSS i wysyłania ich przez połączenie szeregowe. AVR Firmware Ponownie korzystam z biblioteki LCD Petera Fleury (https://jump.to /fleury). Jest potężny i zwięzły, wszechstronny i łatwy do dostosowania do konfiguracji sprzętu. Jeśli spojrzysz na załączony plik nagłówkowy (lcd.h), zobaczysz, że pracuję w trybie 4-bitowym z Portem D jako bitami danych i Portem B jako bitami kontrolnymi. Koncepcja tego oprogramowania jest dość prosta:
- Po włączeniu mikrokontroler wyświetla komunikat „RSS Reader” i czeka na dane szeregowe.
- Każdy odebrany bajt danych szeregowych powoduje przesunięcie 16-znakowego bufora w lewo i dodanie bajtu do bufora, a następnie wyświetlenie bufora.
- Mikrokontroler akceptuje trzy specjalne polecenia: 0x00, 0x01 i 0x02. Są to wyczyść ekran, przejdź do wiersza 0 i odpowiednio do wiersza 1.
Python ScryptI napisał skrypt Pythona, aby zeskrobać dane RSS i wysłać je przez połączenie szeregowe. Wymaga to modułu Pythona „pyserial”, który prawdopodobnie będziesz musiał zainstalować w swoim systemie, aby to zadziałało. Kanał RSS można skonfigurować w górnej części pliku Pythona. Zwróć uwagę, że musisz podać nazwę kanału oraz jego adres URL. Są tam trzy przykłady, jestem pewien, że możesz je śledzić, aby uzyskać poprawną składnię. Aby wszystko działało
- Złóż sprzęt
- Zaprogramuj mikrokontroler (dragon_rss.hex może być użyty, jeśli nie chcesz tego sam kompilować). Ustawienia bezpieczników dla ATmega8 przy użyciu kryształu 8 MHz: lfuse= 0xEF hfuse=0xD9
- Włącz Dragon Rider i upewnij się, że kabel szeregowy jest podłączony (na wyświetlaczu LCD powinien pojawić się komunikat: „Czytnik RSS”)
- Uruchom program Pythona (python serial_rss.py)
- Cieszyć się
Zalecana:
Visuino Jak używać modulacji szerokości impulsu (PWM) do zmiany jasności diody LED: 7 kroków
Visuino Jak używać modulacji szerokości impulsu (PWM) do zmiany jasności diody LED: W tym samouczku użyjemy diody LED podłączonej do Arduino UNO i Visuino, aby zmienić jasność za pomocą modulacji szerokości impulsu (PWM). Obejrzyj film demonstracyjny
Jak używać fotorezystora do oświetlenia diody LED za pomocą Aurduino: 12 kroków
Jak używać fotorezystora do oświetlenia LED z Aurduino: Dzień dobry/popołudnie/wieczór wszystkim entuzjastom Arduino! Dzisiaj zademonstruję, jak wykorzystać fotorezystor (fotokomórkę) do oświetlania diody LED. Kod dostarczony z tym Instruktażem pozwoli, aby dioda LED była normalnie przyciemniona, ale będzie migać
Jak używać silnika krokowego jako enkodera obrotowego i wyświetlacza OLED dla kroków: 6 kroków
Jak używać silnika krokowego jako enkodera obrotowego i wyświetlacza OLED dla kroków: W tym samouczku dowiemy się, jak śledzić kroki silnika krokowego na wyświetlaczu OLED. Obejrzyj film demonstracyjny.Kredyt samouczka oryginalnego trafia do użytkownika YouTube „sky4fly”
Visuino Jak używać przycisku jako wejścia do sterowania takimi rzeczami jak dioda LED: 6 kroków
Visuino Jak używać przycisku jako wejścia do sterowania takimi rzeczami jak dioda LED: W tym samouczku dowiemy się, jak włączać i wyłączać diodę LED za pomocą prostego przycisku i Visuino. Obejrzyj film demonstracyjny
Enkoder obrotowy: jak to działa i jak używać z Arduino: 7 kroków
Rotary Encoder: Jak to działa i jak używać z Arduino: Możesz przeczytać ten i inne niesamowite samouczki na oficjalnej stronie ElectroPeakPrzeglądW tym samouczku dowiesz się, jak korzystać z enkodera obrotowego. Najpierw zobaczysz informacje o enkoderze obrotowym, a potem nauczysz się