Spisu treści:

3 łatwe prezenty świąteczne ATTiny: 4 kroki
3 łatwe prezenty świąteczne ATTiny: 4 kroki

Wideo: 3 łatwe prezenty świąteczne ATTiny: 4 kroki

Wideo: 3 łatwe prezenty świąteczne ATTiny: 4 kroki
Wideo: Świąteczne ozdoby - charlieplexing 2024, Listopad
Anonim
3 łatwe prezenty świąteczne ATTiny
3 łatwe prezenty świąteczne ATTiny

Każdego roku nadchodzi sezon świąteczny, a ja utknęłam w tym, co dać moim przyjaciołom i rodzinie. Ludzie zawsze mówią, że lepiej zrobić prezent samemu niż kupować go w sklepie, więc w tym roku właśnie to zrobiłem. Pierwsza wyświetla imię lub podstawowy obraz, gdy macha się w powietrzu, druga znika płynnie między dwiema białymi diodami LED (ma również agrafkę do przymocowania jej do ubrania lub torebki), a trzecia to rodzaj nastrojowego światła, przewijanie płynnie między kolorami. Wszystkie kosztują mniej niż 15 USD i są łatwe do złożenia w mniej niż godzinę. Możesz również przekazać te instrukcje oraz części jako prezent komuś zainteresowanemu nauką elektroniki.

Uwaga: Zakłada się podstawowy poziom lutowania. Jednak w przeciwieństwie do moich poprzednich instrukcji, omówię, jak zaprogramować AVR. Naprawdę mam nadzieję, że to pomoże ludziom, którzy próbują zacząć przygodę z elektroniką. Pamiętam, kiedy tam byłem i chętnie odpowiem na wszelkie pytania. Pamiętaj, że nie ma głupich pytań! Pozostawiłem ci możliwość ustalenia, jak ułożysz swoją płytkę drukowaną w nadziei, że wymyślisz nowy sposób wyświetlania prostych obwodów, które narysowałem. Proszę zamieścić zdjęcia, gdy skończysz, nie mogę się doczekać, aby zobaczyć, co wymyślisz! Części do wszystkich projektów N = liczba projektów x N ATTiny45 (www.digikey.com) x N 8-pinowe gniazdo DIP (RadioShack) x 1 Duża płyta perforowana (mam swoją w RadioShack) x N 3 V bateria pastylkowa i uchwyt (RadioShack) x1 Programator (używam tego, a dostarczony plik makefile zostanie skonfigurowany do korzystania z tego) x2 N Rezystory, jeden 10 omów i jeden 10k ohm (RadioShack) Oto zdjęcie trzech ukończonych projektów:

Krok 1: Migacz nazw

Migacz nazw
Migacz nazw
Migacz nazw
Migacz nazw
Migacz nazw
Migacz nazw

Inne części x5 DIFFUSED 3mm LED (RadioShack) Ten projekt wykorzystuje trwałość widzenia do wyświetlania obrazu lub tekstu podczas szybkiego ruchu. Działa lepiej, gdy jest ciemno. Dzięki AVR przełączamy się między diodami LED szybciej, niż oko może zobaczyć, możemy stworzyć obraz w powietrzu z bardzo małą ilością komponentów. Kod: (Pobierz plik.zip na dole strony dla kodu, makefile itp. (Ten kod nie zawiera obszernych komentarzy, które zawiera ten kod, ale jeśli ten kod nie działa, wypróbuj ten w plik zip)) #define F_CPU 1000000 #include #include void dispClear() { PORTB = ~0b00000000; } int main() { DDRB = 0xFF; //Dla tych z Was, którzy nigdy nie czytali C przed podwójnym ukośnikiem oznacza komentarz. To ustawia piny avr jako znak wyjściowy x = 10; //x służy do ustawienia długości opóźnienia. Zwiększenie wartości powoduje wolniejsze przełączanie między pikselami, zmniejszanie, mniejszą while(1) //While(condition is true); {Zrób to} (Prawda w C to 1) { PORTB = ~0b00010001; //Moja przyjaciółka ma na imię Zoe, więc narysowałem znaki na papierze milimetrowym, a następnie przypisałem je do PORTB. Pierwsze trzy zera nie mają znaczenia, ponieważ podłączonych jest tylko pięć diod. Jedynka w jednym z pozostałych pięciu pól oznacza, że dioda jest włączona, zero, wyłączone. _opóźnienie_ms(x); //opóźnienie w milisekundach PORTB = ~0b00010011; _opóźnienie_ms(x); PORTB = ~0b00010101; _opóźnienie_ms(x); PORTB = ~0b00011001; _opóźnienie_ms(x); PORTB = ~0b00010001; _opóźnienie_ms(x); dispWyczyść(); //Otwórz spację między znakami _delay_ms(x); PORTB = ~0b00001110; _opóźnienie_ms(x); PORTB = ~0b00010001; _opóźnienie_ms(x*3); PORTB = ~0b00001110; _opóźnienie_ms(x); dispWyczyść(); _opóźnienie_ms(x); PORTB = ~0b00011111; _opóźnienie_ms(x); PORTB = ~0b00010101; _opóźnienie_ms(x); PORTB = ~0b00010001; _opóźnienie_ms(x); dispWyczyść(); _opóźnienie_ms(x*5); //Słowo jest zrobione tak dla jasności Mam większy odstęp między słowami } } Teraz postępuj zgodnie z instrukcjami na stronie 4, aby skompilować ten kod i wysłać go do swojego odbiornika AVR.

Krok 2: Światło w torebce

Torebka Światło
Torebka Światło
Torebka Światło
Torebka Światło

Inne części x2 diody LED NIE ROZPROSZONE (RadioShack) Ten projekt płynnie zanika między dwiema diodami LED. Moja mama chciała mieć coś w torebce, aby pomóc jej zobaczyć pszczołę w nocy. Czułem, że migające światło roweru przyciągnie zbyt wiele uwagi, więc zrobiłem to. Wykorzystuje modulację szerokości impulsu PWM (Pulse Width Modulation), aby uzyskać efekt ściemniania i rozjaśniania. W rzeczywistości dioda miga szybciej niż oko może zobaczyć w różnych odstępach czasu, symulując zmianę. Możesz to wyraźniej zobaczyć, gdy wymachujesz nim przed twarzą, tak jak w przypadku Migacza imion. Kod można pobrać na końcu tej strony. Na stronie 4 znajdziesz informacje na temat kompilacji do odbiornika AVR. Zamiast komentować kod tutaj, pokrótce wyjaśnię koncepcję. PWM jest generowane przez zegar. Każdy cykl zegara odlicza jeden. Gdy osiągnie określoną wartość (w tym przypadku OCR1B) zmienia stan pinu (w tym przypadku OC1B). Aby diody LED „wyłączyły się”, podłączyłem drugą do [OPPOSITE]OC1B (to właśnie oznacza pasek u góry). Następnie używamy x do zwiększania i zmniejszania czasu świecenia diod LED.

Krok 3: Przewijacz kolorów

Przewijacz kolorów
Przewijacz kolorów
Przewijacz kolorów
Przewijacz kolorów

Inne części x1 RGB LED (rozproszone jest lepsze) (RadioShack) To dla mnie klasyka. Zawsze fascynowały mnie takie światła i uważam je za bardzo uspokajające, więc naturalnie chciałem je stworzyć. Również ich widoczność w społeczeństwie daje im prawdziwy czynnik WOW. "ZROBIŁEŚ to?!" Kod jest prawie taki sam i moim zdaniem łatwiejszy do odczytania. Możesz pobrać na dole. Tym razem zapewniamy pin PWM dla każdego pinu uziemiającego diody LED RGB. W ten sposób przeszlifowaliśmy chip. Wolty można zmierzyć jako różnicę między dwoma punktami. 3v-0v=3v 5v-2v=3v ***3v-3v=0v*** Ten ostatni przypadek jest tym, co robimy, gdy przebijamy chip. Kiedy po obu stronach są trzy wolty, nie ma wystarczającej ilości woltów do zasilania diody LED. Aby zniknąć między kolorami, wybraliśmy kolor i inny kolor. Ustaw jeden równy x, a drugi równy 255-x lub ODWRÓCENIE x. Tak jak w poprzednim projekcie. Teraz przejdź do kroku 4, aby zaprogramować.

Krok 4: Programowanie

Programowanie
Programowanie

Najpierw pobierz i zainstaluj Emacs, avr-gcc i Avrdude oraz wszelkie zależności, które mogą mieć. Na Arch linux zrobiłem to za pomocą: sudo pacman -Sy emacs avrdude

Teraz nadszedł czas, aby podłączyć programistę do avr. Podłącz styki 6-stykowego programatora ISP (zdjęcie poniżej) do odpowiednich styków na twoim AVR (arkusz danych, strona 2) (zrobiłem to na płytce stykowej). Teraz podłącz programator do komputera i BARDZO SZYBKO dotknij górnej części AVR. Jeśli jest gorąco, NATYCHMIAST USUŃ PROGRAMATOR Z KOMPUTERA sprawdź połączenia i spróbuj ponownie (Power i Gnd wstecz?). Jeśli nie jest gorący, otwórz emacs i naciśnij Ctl-x Ctl-f, aby znaleźć plik.c. Otwórz go, a następnie naciśnij Meta (zwykle Alt)-x i wpisz kompilacja. Naciśnij Enter dwa razy i jeśli masz szczęście, Twój AVR powinien teraz uruchamiać Twój kod! Dziękuje za przeczytanie! Mam nadzieję, że Ci się podobało i czegoś się nauczyłeś. Proszę, nie wahaj się zadawać pytań i nie zapomnij zamieścić zdjęć tego, co wymyślisz. Wesołych świąt i nie zapomnij zagłosować!

Zalecana: