Skocz do zawartości

Rekomendowane odpowiedzi

Jako że od Andrzeja również zakupiłem moduł zainteresowałem sie tematem programowania i znalazłem cos takiego,

http://majsterkowo.pl/programowanie-mikrokontrolerow-za-pomoca-programatora-usbasp/

Mam kontroler USBASP,został mi po przeróbce Tgy 9x wiec w zasadzie to wszystko czego potrzeba.Sam moduł rewelacja ,już na pierwszy rzut oka widać dobrą robotę.Nie to co moduły z HK ,Poza tym duże możliwości no i w razie czego pomoc samego twórcy :) .Dla mnie super,wiecej bedzie można powiedzieć po dłuższym użytkowaniu

Odnośnik do komentarza
Udostępnij na innych stronach

Udało mi się sprawdzić układ USBASP do programowania Turnigy 9x pod windows jako programator modułu, działa.

Jednak wymaga to wpięcia zworek aby układ działał z napięciem wyjściowym 5V oraz SLOW - dla procesorów taktowanych poniżej 1,5MHz (jeśli w module jest wersja DIP8).

W środowisku Arduino, do programowania modułu należy użyć schematu dla procesora DIP8: ATTiny45@1MHz (internal osc) oraz dla wersji SMD: ATTiny45@8MHz (internal osc).

 

JjBts8n.jpg

Odnośnik do komentarza
Udostępnij na innych stronach

Wracając do programowania modułu 1.x układem UsbAsp do programowania TGY9x, poniżej ekrany jak przeprowadzić wgranie kodu do mikroprocesora.

 

Po wczytaniu kodu do programu i ew. modyfikacji, wybieramy schemat programowania dla procesora.

 

FhfUOs6.jpg

 

 

Następnie wybieramy programator - w tym przypadku USBASP, które pozostało po programowaniu Turnigy

 

8Tx2u6W.jpg

 

 

I pozostaje już załadowanie kodu do mikroprocesora

 

9MRIiVd.jpg

 

Po załadowaniu kodu do mikroprocesora - jeśli nie było żadnych błędów w zmodyfikowanym kodzie, można przełożyć mikroprocesor do modułu i cieszyć się nowymi ustawieniami.

Ci z Was, którzy programowali mikroprocesory w takich środowiskach jak Atmel Studio, pewnie się bardzo ucieszą, bo nie wymaga to żadnego stresu ani magicznej wiedzy ;)

 

Dobra wiadomość jest taka, że odebrałem zamówione płytki dla modułu w wersji 2.1, a więc niebawem będą gotowe.

 

4kxNNNB.jpg

 

...

 

Odnośnik do komentarza
Udostępnij na innych stronach

Dokładnie tak :) a niebawem wrócę także do wątku z podwoziem ;)

Nowy moduł będzie oferował znacznie większe możliwości, ale to już wkrótce.

 

EDIT

pierwszy z nowych modułów gotowy, działa :)

VuKzZQw.jpg

czas więc na opracowanie oprogramowania.

 

Zastanawiam się już tylko nad zrealizowaniem programowo:

- światła obrysowe na skrzydłach,

- światło obrysowe na stateczniku/ogonie,

- światła stroboskopowe na skrzydłach,

- załączane podświetlenie kadłuba - skrzydeł,

- beacon,

- podświetlanie turbiny jet'ów / aktywacja spadochronu / inne ?

- światła lądowania,

- sterowanie podwoziem 3 wyjścia.

Odnośnik do komentarza
Udostępnij na innych stronach

Czas już na przedstawienie modułu w wersji 2.x

 

W odróżnieniu do modułu 1.x, moduł 2.x posiada:

  • mikroprocesor ATTiny44 SSU20,
  • zasilacz stabilizowany 5V do zasilania mikroprocesora,
  • tylko jedno wejście zasilania, wspólne dla obwodów LED i mikroprocesora,
  • 10 programowalnych obwodów LED z czego 8 jest podwójnych,
  • 5 programowalnych wejść, z czego 3 są dla złącz 3 pin typu JR.

Rozmiar uległ zmianie w stosunku do wersji 1.x i jest o 2mm większy. Waga samego modułu (bez koszulki termokurczliwej) jest dokładnie ta sama i wynosi 9gr.

 

 

Schemat poglądowy dla wersji 2.x

4cVwSSU.png

Użyte podzespoły dla wersji 2.1 :

  • 1x ATTINY44 SSU20 [U1]
  • 1x KA78LA05AA [T1]
  • 3x IRF 7341PFB [Q1-3]
  • 6x 100R1W 2512 [R8-13]
  • 7x 1k 1206 [R2-7, R1]
  • 6x 10k 0805 [R14-19]
  • 2x 100nF 1205 [C1-2]
  • 1x złącze 10x2 pin [X2]
  • 1x złącze 9x1 pin [SL1]
  • 2x złącze 2x1 pin [X3, LSP5-6]
  • 1x złącze 4x1 pin [LSP1-4]
  • 1x LED 1206 [LED1]

 

 

Opis wyprowadzeń mikroprocesora w module dla środowiska Arduino:

duvQXp9.jpg

Uwaga:

w internecie jest wiele tzw. schematów połączeń dla procesora ATTiny44/84 dla środowiska Arduino, z czego część z nich jest błędna dla ATtiny44!

Proszę sugerować się wyłącznie powyższym opisem programując moduł z użyciem tego mikroprocesora.

 

Schemat płytki z rozmieszczeniem elementów i soldermaski:

uR7QFMG.pnglalt5pc.pnghPViN5W.png

 

 

Przykładowy kod źródłowy programu dla środowiska Arduino, sterującego oświetleniem w następnym poście.

 

(...)

  • Lubię to 1
Odnośnik do komentarza
Udostępnij na innych stronach

Przykładowy program obsługi modułu 2.1 dla samolotu cywilnego.

/*
  Oświetlenie modelu RC typu Cesna 1 dla modułu 2.x
  Program steruje układem diod LED
  w oparciu o sygnały z aparatury RC
 
  Program przeznaczony dla Arduino, udostępniany jest na licencji OpenSource.
  @autor: warp3r[at]wp.pl
  @date 2014
  @version 2.0.2
 */

/*
WYJŚCIA
----------------------------------------------------------------
LED  1 - ZIELONY - PRAWE SKRZYDŁO
LED  2 - CZERWONY - LEWE SKRZYDŁO
LED  3 - BIAŁY - SKRZYDŁO - ŚWIATŁO STROBOSKOPOWE
LED  4 - BIAŁY - SKRZYDŁO - ŚWIATŁO STROBOSKOPOWE
LED  5 - CZERWONY - BEACON SPÓD
LED  6 - CZERWONY - BEACON GÓRA
LED  7 - BIAŁY - OGON/STATECZNIK PIONOWY - ŚWIATŁO STROBOSKOPOWE
LED  8 - BIAŁY - OGON/STATECZNIK PIONOWY - ŚWIATŁO STROBOSKOPOWE
LED  9 - ŚWIATŁA DO LĄDOWANIA
LED 10 - FALSAFE / ŚWIATŁA DO LĄDOWANIA

WEJŚCIA
----------------------------------------------------------------
CONN 1 - sygnał PWM z odbiornika RC, przełącznik trój-pozycyjny, światła nawigacyjne
CONN 2 - sygnał PWM z odbiornika RC, przełącznik dwu-pozycyjny, światła do lądowania
CONN 3 - sygnał PWM z odbiornika RC, potencjometr (drążek przepustnicy), automatyczne załączanie BEACON
CONN 4 - nie używane
CONN 5 - nie używane
*/

/* dla ATTiny 44 */

// LED 10
//  funkcja:  załączenie FAILSAFE po upływie w sekundach podanych w zmiennej timer_FS
//  lub załączenie spodochronu ew. głośników typu "buzzer"
//  może być wykorzystany jako dodatkowy obwód do sterowania światłami do lądowania
int led_10 = 7; // PIN 10 - LED 10
int max_FS = 5; // podawane w sekundach

// LED 9
// funkcja: załączenie oświetlenia podwozia
//  jeśli pobór mocy LED jest większy niż 1W, należy zastosować inny obwód
//  lub sterować przełącznikiem załączającym oświetlenie
//  o załączeniu świateł, decyduje zmienna led_gear
int led_09 = 6; // PIN 9 - LED 9
boolean led_gear;

// LED 7-8
// funkcja: światło antykolilzyjne obrysowe BIAŁE
// tylna część statecznika pionowego lub ogonu kadłuba
// jeśli używane będzie jedno złącze, w drugie należy włożyć zworkę
int led_78 = 5; // PIN 8 - LED 7-8  PWM

// LED 5-6
// funkcja: BEACON światło sygnalizujące pracę silnika, spód i góra kadłuba lub statecznika pionowego
//  zmienna led_beacon informuje czy zostały załączone silniki
int led_56 = 4; // PIN 7 - LED 5-6  PWM
boolean led_beacon;

// LED 3-4
// funkcja: światła antykolizyjne BIAŁE stroboskopowe na obu skrzydłach skierowane w bok lub tył
int led_34 = 3; // PIN 6 - LED 3-4  PWM

// LED 1-2
// funkcja:  światła obrysowe, ZIELONE I CZERWONE na skrzydłach, skierowane bok
//  lub może być umieszczone na końcowej krawędzi skrzydeł w kierunku przód
int led_12 = 2; // PIN 5 - LED 1-2  PWM

// CONN 1, Wejście sygnału S1  -  wejście z odbiornika RC, przełącznik trójpozycyjny
// funkcja:  załączanie oświetlenia nawigacyjnego
//   0 - światła obrysowe
//   1 - światła wyłączone
//   2 - pełne światła nawigacyjne
int input_Signal1 = 8; // PIN 11

// CONN 2, Wejście sygnału S2  -  wejście z odbiornika RC, przełącznik dwupozycyjny
// funkcja:  załączanie świateł do lądowania
//  zsynchronizowane z kanałem RC odpowiedzialnym za wypuszczanie podwozia
int input_Signal2 = 10; // PIN 13

// CONN 3, Wejście sygnału S3  -  wejście z odbiornika RC, kanał THR
// funkcja:  załączanie BEACON z chwilą uruchamiania silnika
//  minimalna wartość THR PWM dla której BEACON jest nieaktywny należy wprowadzić w zmiennej inThr_Signal
int input_Signal3 = 9; // PIN 12
int inTrh_Signal = 1100;

// CONN 4, Wejście sygnału S4
//  dodatkowe złącze We/Wy
int input_Signal4 = 10; // PIN 2

// CONN 5, Wejście sygnału S5
//  dodatkowe złącze We/Wy
int input_Signal5 = 9; // PIN 3

/* Stan PWM dla diod, więcej o PWM http://arduino.cc/en/Tutorial/PWM */
// wartość dla wyłączonej diody
const int LEDOFF = 0;
// wartość wypełnienia PWM dla diody "przygaszonej"
const int LEDON = 64; // 25%
// wartość wypełnienia PWM dla pełnego oświetlenia
const int LEDBLINK = 255;  // 100%

/* pomocnicze */
int input_Signal1State = 0;
boolean goArmingState = false;
boolean wait_state = true;
unsigned long durationS1;
unsigned long durationS2;
unsigned long durationS3;
int counterFS = 0;

// Ustawienia po uruchomieniu układu
void setup() {
  // ustawiamy stan IO, internal pull
  pinMode(led_12, OUTPUT);     
  pinMode(led_34, OUTPUT);     
  pinMode(led_56, OUTPUT);     
  pinMode(led_78, OUTPUT);     
  pinMode(led_09, OUTPUT);     
  pinMode(led_10, OUTPUT);     
  pinMode(input_Signal1, INPUT);
  pinMode(input_Signal2, INPUT);
  pinMode(input_Signal3, INPUT);
  pinMode(input_Signal4, INPUT);
  pinMode(input_Signal5, INPUT);
  digitalWrite(input_Signal1, LOW);  
  digitalWrite(input_Signal2, LOW);  
  digitalWrite(input_Signal3, LOW);  
  digitalWrite(input_Signal4, LOW);  
  digitalWrite(input_Signal5, LOW);  
  counterFS = 0;
  led_beacon = false;
  led_gear = false;
  LEDS_Failsafe(); // domyślnie po uruchomieniu
}

/* Wyłączenie wszystkich świateł */
void LEDS_OFF() {
  analogWrite(led_12, LEDOFF);
  analogWrite(led_34, LEDOFF);  
  analogWrite(led_56, LEDOFF);
  analogWrite(led_78, LEDOFF);
  analogWrite(led_09, LEDOFF);
//  analogWrite(led_10, LEDOFF);
}

/* Włączenie wszystkich świateł */
void LEDS_ON() {
  analogWrite(led_12, LEDBLINK);
  analogWrite(led_34, LEDBLINK);  
  analogWrite(led_56, LEDBLINK);
  analogWrite(led_78, LEDBLINK);
  analogWrite(led_09, LEDBLINK);
//  analogWrite(led_10, LEDBLINK);
}

/* Miganie wszystkich świateł - brak sygnału z odbiornika */
void LEDS_Failsafe() {
  LEDS_ON();
  delay(50);
  LEDS_OFF();
  delay(40);
  LEDS_ON();
  delay(50);
  LEDS_OFF();
  delay(40);
  LEDS_ON();
  delay(50);
  LEDS_OFF();
}

/* Aktywacja wyłącznie świateł obrysowych - tylko pozycyjne */
void LEDS_Mode1() {
  analogWrite(led_12, LEDON); // włączone obrysowe
  analogWrite(led_34, LEDOFF);  
  analogWrite(led_56, LEDOFF);
  analogWrite(led_78, LEDON);// tylne antykolizyjne  
  if (led_gear !=false) {
    analogWrite(led_09, LEDBLINK);
  } else {
    analogWrite(led_09, LEDOFF);
  }
  analogWrite(led_10, LEDOFF);

  if (led_beacon !=false) {
    analogWrite(led_56, LEDBLINK);
    delay(50);
    analogWrite(led_56, LEDOFF);
    delay(50);
    analogWrite(led_56, LEDBLINK);
    delay(50);
    analogWrite(led_56, LEDOFF);
    delay(50);  
    analogWrite(led_56, LEDBLINK);
    delay(50);
    analogWrite(led_56, LEDOFF);
    delay(700);
  }
}

/* Aktywacja pełnego cyklu oświetlenia */
void LEDS_Mode2() {
  if (led_gear !=false) {
    analogWrite(led_09, LEDBLINK);
  } else {
    analogWrite(led_09, LEDOFF);
  }
  analogWrite(led_34, LEDBLINK);
  analogWrite(led_78, LEDBLINK);
  delay(50);
  analogWrite(led_34, LEDOFF);
  analogWrite(led_78, LEDON);
  delay(150);
  analogWrite(led_12, LEDBLINK);
  analogWrite(led_78, LEDBLINK);
  delay(50);
  analogWrite(led_12, LEDOFF);
  analogWrite(led_78, LEDON);
  delay(50);
  analogWrite(led_12, LEDBLINK);
  delay(50);
  analogWrite(led_12, LEDON);
  delay(50);
  // 400 ms
  if (led_beacon !=false) analogWrite(led_56, LEDBLINK);
  delay(50);
  analogWrite(led_56, LEDOFF);
  delay(50);
  if (led_beacon !=false) analogWrite(led_56, LEDBLINK);
  delay(50);
  analogWrite(led_56, LEDOFF);
  delay(50);  
  if (led_beacon !=false) analogWrite(led_56, LEDBLINK);
  delay(50);
  analogWrite(led_56, LEDOFF);
  delay(350);
  // 1000 ms
}

/* w tej pętli, program wykonuje się w nieskończoność */
void loop() {
  // oczekiwanie na sygnał z odbiornika RC
  durationS1 = pulseIn(input_Signal1, HIGH);
  //counterFS = (durationS1 > 100) ? 0 : ++counterFS;
  if (durationS1 > 0) { counterFS = 0; analogWrite(led_10, LEDOFF);} else { ++counterFS;}
 
  if ((durationS1 >900)and(durationS1 < 1301)) {
    if (led_gear !=false) analogWrite(led_09, LEDBLINK);
    LEDS_Mode1(); // jest sygnał z aparatury w odbiorniku RC, przełącznik poz.0
  } else if ((durationS1 >1300)and(durationS1 < 1701)){
    LEDS_OFF(); // przełącznik w aparaturze na poz. 1
  } else if (durationS1 >1700) {
    if (led_gear !=false) analogWrite(led_09, LEDBLINK);
    LEDS_Mode2(); // przełącznik w aparaturze na poz. 2
  } else {    
    LEDS_Failsafe(); // gdy brak sygnału PWM z odbiornika RC
  }  
  if (counterFS < 1) {
    // odczytujemy wartość PWM dla kanału sterowania podwoziem
    durationS2 = pulseIn(input_Signal2, HIGH);
    led_gear = (durationS2 > 1700) ? true : false;
    // odczytujemy wartość PWM dla stanu drązka przepustnicy
    durationS3 = pulseIn(input_Signal3, HIGH);
    led_beacon = (durationS3 > inTrh_Signal) ? true : false;
  } else {
    if (counterFS > max_FS ) { // załączenie obwodu LED 10 - FAILSAFE
      analogWrite(led_10, LEDBLINK);
    }
  }
  /**/
}
/* a tu jest koniec kodu v2.0.2 */



(...)

Zresztą w kabinie B737, trzypocycyjny przełącznik świateł nawigacyjnych jest opisany:

"steady"; "off"; "steady & strobe". 

 

Dla zachowania "zgodności" z dużymi samolotami, za Twoją sugestią, zmieniłem sposób załączania świateł nawigacyjnych w programie dla modułu 2.1

Sterowanie z przełącznika trój-pozycyjnego:

0 - włączone światła obrysowe,

1 - wszystkie światła wyłączone,

2 - włączone światła obrysowe i nawigacyjne.

 

pozdrawiam :)

  • Lubię to 2
Odnośnik do komentarza
Udostępnij na innych stronach

(...)

W części opisującej WYJŚCIA w poz 7 i 8 jest napisane: BIAŁY - OGON/STATECZNIK PIONOWY - ŚWIATŁO STROBOSKOPOWE.

Brak natomiast: Biały - ogon/statecznik pionowy - światło nawigacyjne.

Pewnie to przez późną porę ;)

z pewnością efekt przesiadywania po nocach nad tym projektem ;)

 

Dobra wiadomość dla poszukujących diody mocy do oświetlenia modeli.

Przetestowałem diody 3W zamówione z TME jako światła obrysowe i stroboskopowe, czyli do pracy z impulsami generowanymi z modułów 1.4 i 2.1, symbole diod:

ZIELONA - PROLIGHT OPTO PM2B-3LGE-SD-W2

CZERWONA - PROLIGHT OPTO PM2B-3LRE-SD-U2

BIAŁA - PROLIGHT OPTO PM2B-3LWE-SD-X2

i spisują się doskonale, a cena jest równie akceptowalna.

 

Zdecydowałem się także na otwarcie projektu na zasadzie OpenSource dla zaprojektowanych modułów 1.x i 2.x.

Obecnie strona dopiero powstaje i dostępna będzie tu https://code.google.com/p/nlm/

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 tygodnie później...

Sposób połączenia modułu z programatorem.

 

Dla modułu 1.x gdy programatorem będzie Arduino z wgranym sketch ArduinoISP:

 

efeQQwZ.jpg

 

 

Dla modułu 2.1 gdy programatorem jest Arduino z wgranym sketch ArduinoISP

 

nm4zRzs.jpg

 

Dla modułu 2.1 gdy programatorem jest USBASP (pozostałość po programowaniu Turnugy 9x)

 

NTqKhp3.jpg

 

(...)

Odnośnik do komentarza
Udostępnij na innych stronach

Dla posiadaczy quadro- i hexacopterów z kontrolerem Ardupilot APM 2.6, przykładowa aplikacja dla modułu NLM 2

 

 

hM8gqmh.jpg

WYJŚCIA LED
 ----------------------------------------------------------------
 LED  1 - ZIELONY - PRAWE RAMIE - ŚWIATŁO OBRYSOWE
 LED  2 - CZERWONY - LEWE RAMIE - ŚWIATŁO OBRYSOWE
 LED  3 - BIAŁY - PRAWE RAMIE- ŚWIATŁO STROBOSKOPOWE
 LED  4 - BIAŁY - LEWE RAMIE - ŚWIATŁO STROBOSKOPOWE 
 LED  5 - CZERWONY - BEACON SPÓD
 LED  6 - CZERWONY - BEACON GÓRA (lub zworka)
 LED  7 - ŚWIATŁA DO LĄDOWANIA 
 LED  8 - ŚWIATŁA DO LĄDOWANIA (lub zworka)
 LED  9 - BIAŁY - OGON/TYŁ GIMBALA - ŚWIATŁO OBRYSOWE
 LED 10 - FALSAFE / BUZZER
 
 WEJŚCIA
 ----------------------------------------------------------------
 CONN 1 - sygnał PWM z odbiornika RC, przełącznik dwu-pozycyjny, światła obrysowe i wyłączenie wszystkich świateł 
 CONN 2 - sygnał PWM z odbiornika RC, przełącznik dwu-pozycyjny, światła do lądowania połączone kablem Y 
          z wyjściem sterowania wypuszczanym podwoziem
 CONN 3 - Ardupilot APM 2.6, połączenie ze złączem A7, automatyczne załączanie beacon i świateł nawigacyjnych 
          stroboskopowych przy uzbrojeniu silników
 CONN 4 - sygnał PWM z odbiornika RC, przełącznik dwu-pozycyjny, sterowanie załączaniem migawki w kamerze
 CONN 5 - wyjście do załączania migawki w kamerze-aparacie cyfrowym
Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 tygodnie później...

Hej wszystkim,

W końcu znalazłem czas i ochotę na zainstalowanie modułu ... "Andrzej, jesteś WIELKI" moduł spisuje się świetnie. Model w locie wygląda bardzo realistycznie :)

 

Nie zmieniałem co prawda oprogramowania bo nie widzę potrzeby ale z pewnością się pobawię tymbardziej, że kupiłem Arduino UNO z którym jak się okazuje nie ma żadnego problemu ( w odróżnieniu od pcDuino ) i wszystko co wrzucę działa :) od strzału, oczywiście nie mówię o rzeczach wymagających np zewnętrznych czujników czy RTC.

 

Dzięki za na prawdę świetną robotę. 

 

Polecam wszystkim moduł Andrzeja, prosty, łatwy w podłączeniu, niezawodny, lekki, jedyne do czego można się ewentualnie przyczepić ale to tylko i wyłącznie jeśli planujecie zamontować moduł do małego modelu - jest dość długi licząc z pinami i nałożonymi wtyczkami i zajmuje sporo miejsca. (zawsze można zaprojektować dodatkową kieszonkę na NLM'a z uwzględnieniem jego wielkości :) )

 

Niemniej, w porównaniu do NLM z HK jest zdecydowanie zdecydowanie lepszy a i cenowo wypada zdecydowanie pozytywnie.

 

W następnej wersji Andrzeju oczekujemy zmniejszonych gabarytów (dwustronny laminat :) )


Ile osób korzysta z tego modułu ręka w górę :)

Odnośnik do komentarza
Udostępnij na innych stronach

Robercie, kolejna wersja NLM możliwe że kiedyś będzie :) Część osób, które "zaopatrzyło" się w moduły NLM, czeka jednak na kolejny sezon :huh:

Z drukiem dwustronnym technicznie nie będzie problemu, płytka będzie prawie 2x mniejsza. Wyknany obecnie prototyp przypomina jeża ;)

 

Natomiast dla modułów 1.4 i 2.1, powoli pojawiają się uwagi, co można było by zmienić lub zmodyfikować. Za co bardzo dziękuję.

Na stronie projektu, kod źródłowy pojawiać się będzie w nowych wersjach z obszerniejszymi opisami, i "gotowcami" pod wybrane tryby sterowania i sekwencji oświetlenia.

 

Pojawi się także niebawem "poradnik" do wykonywania modyfikacji. Szczególnie dotyczyć będzie tych z Was, którzy posiadają już moduły, lecz niekoniecznie diody mocy z "górnej półki" o jasności 200-300 lm. Zdaję sobie sprawę, że wysokiej jakości diody mocy 3W, to koszt rzędu 20-50zł za szt. Dlatego też, opisy modyfikacji płytek, dotyczyć będą sposobu uzyskania maksymalnej luminancji dla diod mocy 3W "budżetowych" w cenie 3-6zł za szt. o jasności 80-180 lm.

 

Zastanawiam się także nad przygotowaniem gotowej aplikacji, której zadaniem było by pobranie takiego "gotowca" ze strony projektu i załadowanie do modułu. Może Ktoś byłby chętny na dołączenie do projektu w tym zakresie ? :)

Odnośnik do komentarza
Udostępnij na innych stronach

 Udostępnij

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.