Wybierz swój język

AVR Tool jest aplikacją która w pierwotnym założeniu miała dawać możliwość ustawiania fuse bitów oraz pomagać w obliczaniu gammy, wiadomo, że na początku zabawy z AVR diody rządzą ;) Z czasem jednak gdy sam coraz bardziej zacząłem zagłębiać się w programowanie AVR-ów a diody już nie wystarczały, odczułem brak narzędzi na Maka które by ułatwiały tą zabawę. Znowu z zazdrością patrzyłem na MkAvrCalculator i pomoce jakie ze sobą niesie. Powstał więc pomysł aby stworzyć najpotrzebniejsze narzędzia samemu, a przy okazji potrenować programowanie w Swift.

Na początku wszystko miało zawierać się w jednej aplikacji. Ci którzy nie zaktualizowali AVRFusesCalc mogą zauważyć w oknach komunikatów nazwę AVR Tool :) Później jednak uznałem że lepiej będzie jak oddzielę ustawianie fuse bitów od programów narzędziowych.

AVR Tool zawiera więc nastepujące programy narzędziowe:

  • Korekcja Gamma
  • Dzielnik Napięcia
  • Kalkulator 7LED
  • Kalkulator rezystora dla LED
  • Kalkulator dla matryc LED 8x8

Korekcja Gamma jest narzędziem ułatwiającym zapanowanie nad płynnym rozjaśnianiem lub wygaszaniem diod. W bardzo prosty sposób można wyliczyć dowolną ilość kroków jakiej chcielibysmy użyć do rozjaśniania lub ściemniania diody. Każdy kto próbował rozjaśniać diody korzystając z PWM inkrementując wartość wypełnienia, na pewno zauważył że od pewnej wartości nie widać już zmian natężenia świecenia, chociaż zmiana ta przecież następuje. Tu właśnie z pomocą może przyjść Korekcja Gamma. Podając interesującą nas ilość kroków rozjaśniania lub wygaszania diody, rozdzielczość wypełnienia oraz współczynnik gamma, który należy dobrać doświadczalnie, program wyliczy poszczególne wartości wypełnienia dla zadanej ilości kroków. W ten sposób można również tworzyć gradienty wykorzystując np diody WS2812. Bardzo szczegółowo narzędzie to przedstawia Pan Mirosław Kardaś na swoim kanale YouTube, oczywiście na przykładzie swojego programu MkAvrCalculator. Gorąco zachęcam do obejrzenia tego poradnika.

O dzielniku napięcia nie ma chyba co za dużo pisać. W sieci jest mnóstwo informacji do czego jest wykorzystywany. W AVR-ach najczęściej używa się go w połączeniu z przetwornikiem ADC. Co prawda są w internecie strony na których można wyliczyć rezystory do dzielnika, ale osobiście wolę mieć takie narzędzie pod ręką.

Podobna sytuacja ma się z kalkulatorem rezystorów dla diod LED. Cała masa stron gdzie takowy można wyliczyć, ale czemu nie mieć i takiej pomocy na wyciągnięcie ręki. Program pomaga w dobraniu rezystora dla jednej diody jak i dla większej ilości diod, połączonych czy to szeregowo, czy też równolegle.

Wyświetlacze siedmiosegmentowe są chyba najczęściej wykorzystywane przez początkujących do pokazywania temperatury, czasu itp. Żeby móc w pełni z nich korzystać należy utworzyć tablice ze znakami jakie chcielibyśmy za ich pomocą wyświetlać. Do tworzenia takich tablic służy Kalkulator 7LED. Samo tworzenie znaków dzięki tej aplikacji jest banalnie proste i przede wszystkim szybkie. W pierwszej kolejności musimy ustalić piny do których mamy podłączony konkretny segment wyświetlacza. Każdy segment można przypisać do jednego z ośmiu (0-7) pinów mikrokontrolera, w ramach jednego jego portu. Oznacza to więc że wybrany port musi posiadać osiem pinów. Na razie program nie daje możliwości wyliczania znaków w sytuacji gdy segmenty wyświetlacza są podłączone do różnych portów. Po ustaleniu pinów ostatnim krokiem w konfiguracji, jest ustawienie sterowania wyświetlacza. Wspólna anoda lub wspólna katoda. Gdy te dwie rzeczy mamy za sobą można przejść do tworzenia znaków w tablicy. W tym celu możemy "zapalać" poszczególne segmenty, ręcznie tworząc znaki, lub też wybrać u dołu okna gotowe zestawy znaków. W przypadku ręcznego tworzenia cyfr, chcąc ją dodać do tablicy należy nacisnąć przycisk "Dodaj znak...". Utworzoną w ten sposób tablicę kopiujemy, a następnie wklejamy do pliku z naszym kodem, gdzie możemy zacząć jej używać do wyświetlania żądanych informacji. Tablica może być utworzona ze znakami zapisanymi w HEX jak i dziesiętnie (DEC).

Po matrycach 7LED czas na matryce 8x8. Wiem że można znaleźć w internecie kody z zestawem znaków dla tych matryc. Mimo to postanowiłem napisać kalkulator dzięki któremu można samemu tworzyć znaki, które następnie będą mogły być wyświetlone na matrycy. Myślę że kalkulator jest dość przejrzyście utworzony i nie ma potrzeby szczegółowego opisywania poszczególnych elementów interfejsu użytkownika.

Mam nadzieję że zaprezentowane narzędzia okażą się pomocne :) W razie pytań, nie jasności, śmiało pisać na maila lub też w komentarzach.