sobota, 18 listopada 2017

Atmel ICE extension board


Jednymi z częściej używanych programatorów, przez amatorów i hobbystów, są te oparte na USBasp.
Są to proste, aczkolwiek dość niezawodne moduły. Obsługują większość dostępnych w sprzedaży mikrokontrolerów AVR - ośmiobitowych, są tanie i idealne na początek drogi w programowaniu.

Ich zasadniczą wadą jest brak możliwości sprzętowego debugowania. Jest to jeden z częściej wymienianych powodów dlaczego należy poszukać innego rozwiązania, a wręcz przejść na inną platformę sprzętową, choćby STM32.
Wada ta o tyle nie jest uciążliwa, o ile użytkownik nie będzie tworzył rozbudowanych programów. Dla projektów mało skomplikowanych zwykle wystarczy diagnostyczna dioda LED, czy też któryś z tanich klonów analizatorów logicznych.

wtorek, 7 listopada 2017

Magic RGB Spectrum - ukończony !


Chodzi o projekt programistyczny, pierwsza wersja została napisana.
Jest gotowy, działający kod zgodny z większością  założeń wstępnych, o których napiszę już wkrótce.

Wstępną, mało-doskonałą prezentację można zobaczyć tutaj:


Może jeszcze główny plik źródłowy main.c:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
/*
 * main.c
 * 
 * Magic RGB Spectrum
 *
 */

//pliki biblioteczne
#include <avr/io.h>
#include <avr/pgmspace.h>
#include <util/delay.h>
#include <avr/interrupt.h>

#include "libs/SW_AVR_PERIPHS/sw_adc.h"
#include "libs/SW_GRAPHICS/sw_spectrum_lib.h"
#include "libs/SW_GRAPHICS/menu.h"


//============================== PROGRAM GŁÓWNY ===================================//
int main(void) {

 sw_encoder_init();
 sw_keyboard_init();
 set_encoder( 10 ); // Ustawiamy enkoder na wartośc zgodną z fallTimeSet

 // Rejestrujemy funkcje obsługi enkodera wraz z klawiszem
 register_enc_event_callback( plus_minus );
 register_keyboard_event_callback( switch_setting_modes );
 register_calculate_fft_event_callback( spectrum_calculate_fft );

 register_show_menu_event_callback( sw_show_menu );
 register_hide_menu_event_callback( sw_hide_menu );
 //-----------------------------------------------------------

 // Włączamy silnik timerów programowych
 softTimers_init( t2_Prsclr_8 );
 //-------------------------------------

 // Włączamy pomiary sygnału wejściowego
 adc_init( ADC5, ADC_PSCLR_32, adc_ref_11V );
 timer0_init( adc_16kHz_filter );

 // Inicjalizujemy wyświetlacz
 sw_RGB_panel_init();

 // Ustawiamy parametry wyświetlania spektrum
 spectrum_init();
 //-----------------------------------------------------------

 // Ustawiamy parametry rysowanych tekstów
 set_display_texts();

 sei();
 while(1) {
  SW_ENCODER_EVENT();
  SW_KEYBOARD_EVENT();
  SW_CALCULATE_FFT_EVENT();
  SW_SHOW_MENU_EVENT();
  SW_HIDE_MENU_EVENT();
 }
}
//============================ End main.c ============================================//



Szczegóły wkrótce.






sobota, 28 października 2017

Magic Clock

I. Wstęp.

Jak to zwykle bywa z takimi projektami, często powstają z potrzeby chwili.
Również i u mnie pojawiła się potrzeba posiadania zegarka. Po wymianie telewizora na taki, który nie wyświetla czasu na bieżąco, stanąłem przed potrzebą zakupu zegara ściennego.
Ponieważ poradniki na temat "magic ledów" miałem już za sobą, a "ring ledy" były w zakresie moich możliwości i pragnień, postanowiłem zbudować od podstaw taki oto właśnie zegar :)

sobota, 14 października 2017

Uniwersalny odbiornik podczerwieni do Kodi, część 1.


I. Wstęp.

Odbiornik przeznaczony jest do sterowania odtwarzaczem multimedialnym Kodi (dawniej XBMC).
Jako medium transmisyjne wykorzystano podczerwień. Zastosowano popularne w sprzęcie konsumenckim odbiorniki IR pracujące na fali nośnej o częstotliwości 38kHz. Parametr ten nie jest krytyczny i można z powodzeniem zastosować odbiorniki o innej częstotliwości np. 36kHz lub 40kHz.
Żeby móc skorzystać z mocy drzemiącej w odbiorniku należy użyć, odpowiedniego do tego celu, pilota na podczerwień. Dzięki zastosowaniu w projekcie zaawansowanej biblioteki do obsługi podczerwieni (IRMP) można skorzystać z bardzo dużej gamy dostępnych na rynku urządzeń nadawczych.
Wyboru pilota można dokonać na etapie kompilacji programu, ustalając tablicę kodów IR oraz podczas użytkowania odbiornika, dzięki "zaszytej" w kodzie funkcji uczenia kodów. Oprócz powyższej funkcji, odbiornik może pracować jeszcze w dwóch kolejnych trybach, podstawowym, jako klawiatura IR i dodatkowym, logowania IR. W pamięci flash odbiornika umieszczono również plik konfiguracyjny keyboard.xml, który jest częścią integralną programu Kodi. W ten sposób, niejako „pod ręką”, mamy możliwość rozszerzenia możliwości odbiornika o dodatkowe funkcje, przydatne m.in. w trybie LiveTV odtwarzacz Kodi.

HTPC jak marzenie


I. Wstęp.

Komputerami do zadań multimedialnych ( HTPC – Home Theatre Personal Computer) interesuję się już od bardzo dawna.

W prapoczątkach tej dziedziny, gdzie królowały jeszcze filmy w formacie DIVX, podstawowym sprzętem do odtwarzania filmów był komputer klasy PC. Wyświetlaczem był monitor wykonany w technologii CRT o niewielkich, jak na obecne czasy, rozmiarach. Urządzeniami wejściowymi były klawiatura oraz myszka.
W tych zamierzchłych czasach mało, kto myślał o tym, by komputer PC pojawił się w salonie. Jeśli już ktoś myślał, to trzeba było za takie pomysły słono płacić.
Już w tych dawnych czasach mocno zastanawiałem się, w jaki sposób zrobić komputer do salonu, który będzie dobrze wyglądał, szybko się uruchamiał, będzie sterowany łatwiej niż z klawiatury i myszki. Już wtedy wiedziałem, że odpowiednim systemem będzie Linux.
Pierwsze próby, przystosowania Linuxa do tego celu, niestety nie były udane. Pomysł musiał zaczekać na lepszy czas, lepsze technologie.
Może pojawić się pytanie: a dlaczego nie Windows? Cóż, Windows zawsze swoje kosztował, w erze dysków talerzowych nie uruchamiał się zbyt szybko, ogólnie idea zastosowania takiej „kobyły” nie była w mojej opinii zbyt dobra, brakowało w niej nawet trochę pewnego rodzaju wyzwania :).

Odpowiednie czasy przyszły w okolicach 2011, kiedy to światło dzienne ujrzał system operacyjny OpenELEC