Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Kategoria: Kamery IP / Alarmy / Automatyka Bram
Montersi
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Kit 115-k; 12-kanałowe zdalne sterowanie

Kuczus 19 Sie 2008 20:35 5960 17
  • #1 19 Sie 2008 20:35
    Kuczus
    Poziom 19  

    Witam, ostatnio dotarł do mnie ten projekt i chciałbym go zrealizować, w zasadzie juz mam przygotowane płytki oraz kilka elementów,lecz mam kilka wątpliwości:
    1.) Czy wartość Q1, nadajnika nie ma się czasem równać 450-470MHz?
    2.) Czy można użyć jakiegoś innego (zamiennik) układu niż US1- SAA3010T?
    3.) jakiej wartości powinien być R3 Nadajnika ? ohm? kohm?
    4.) w zasadzie z programowaniem dopiero zaczynam.Zacząłem od procesorów AVR (ATtiny2313) i chciałem zapytać, czy w programie wystarczy pozmieniać nazwy portów na odpowiednie 89c2051 / ATTiny2313 ? Czy z tym pytaniem juz raczej do działu mikrokontrolery ?
    Kit 115-k; 12-kanałowe zdalne sterowanie
    Kit 115-k; 12-kanałowe zdalne sterowanie
    Kit 115-k; 12-kanałowe zdalne sterowanie
    Kit 115-k; 12-kanałowe zdalne sterowanie

  • #2 20 Sie 2008 13:08
    Mody
    Poziom 25  

    1) Są to specjalne rezonatory kwarcowe do pilotów o wartości z zakresu 420-470kHz
    2) Nie ma zamiennika dla tego układu jest tylko jeszcze SAA3010P ale w obudowie typu DIP
    3) R3 ma wartość 82Ω
    4) Program nie jest zbyt skomplikowany więc przeróbka jest możliwa, oprócz zmiany nazwy portów trzeba będzie dokonać drobnych zmian.

    Pozdrawiam

  • #3 20 Sie 2008 23:01
    korneliuszo
    Poziom 16  

    1) kwarc ma być 12MHz (zmiana jego to jak byś zmienił kwarc mikrokontrolerowi)

    2) to jest zwykły pilot rc5, więc spokojnie możesz wymienić SAA3010T na mikrokontroler (wiąże się z przeprojektowywaniem płytki) - tiny2313 starczy

    3) same liczby czyli ohm

    4) Wymiana proca w odbiorniku jest możliwa. Trzeba:
    - zmienić nazwy portów
    - dopisać config RC5 (brakuje choć może działać)
    - wyjąć kondensator od resetu

  • #4 25 Sie 2008 16:02
    Kuczus
    Poziom 19  

    aha, rozumiem, a czy ktoś mógłby podpatrzeć ten kod? bo wywala mi błąd:

    Code:
    '''''''''''''''''''''''''
    
    'Nowy Elektronik
    '12-kanałowe zdalne sterowanie na podczerwień 1.0
    'Kuczuś
    'Procesor ATtiny2313
    'Kompilator Bascom AVR

    '''''''''''''''''''''''''
    $crystal = 12000000

    Dim Flaga As Bit
    Dim Rozkaz As Byte , Adres As Byte

    Portd = 255
    Portb = 255
     Config Rc5 = Pind.2 [ , Timer = 2 ]


    Wyj1 Alias Pinb.7
    Wyj2 Alias Pinb.6
    Wyj3 Alias Pinb.5
    Wyj4 Alias Pinb.4
    Wyj5 Alias Pinb.3
    Wyj6 Alias Pinb.2
    Wyj7 Alias Pinb.1
    Wyj8 Alias Pinb.0
    Wyj9 Alias Pind.7
    Wyj10 Alias Pind.0
    Wyj11 Alias Pind.1
    Wyj12 Alias Pind.5
    Led1 Alias Pind.3


    On Timer0 Odbior_rc5
    Enable Timer0
    Enable Interrupts

    Do                       'glowna petla programu
       If Adres = 7 Then     'jezeli adres RC5=7 to wykonaj warunek
          Disable Timer0

             If Rozkaz = 11 Then       'jezeli S1 wcisniete to wykonaj warunek
                If Wyj1 = 0 Then       'jezeli wyj1 jest wlaczone to wylacz
                   Wyj1 = 1
                Else
                   Wyj1 = 0  'jezeli Wyj1 jest wylaczone to wlacz
                End If
                 Gosub Zapal
             End If


             If Rozkaz = 19 Then       'jw. tylko S2 i wyj 2
                If Wyj2 = 0 Then
                   Wyj2 = 1
                Else
                   Wyj2 = 0
                End If
                 Gosub Zapal
             End If


             If Rozkaz = 27 Then       'jw. tylko S3 i wyj 3
                If Wyj3 = 0 Then
                   Wyj3 = 1
                Else
                   Wyj3 = 0
                End If
                 Gosub Zapal
             End If


             If Rozkaz = 35 Then       'jw. tylko S4 i wyj 4
                If Wyj4 = 0 Then
                   Wyj4 = 1
                Else
                   Wyj4 = 0
                End If
                 Gosub Zapal
             End If


             If Rozkaz = 43 Then       'jw. tylko S5 i wyj 5
                If Wyj5 = 0 Then
                   Wyj5 = 1
                Else
                   Wyj5 = 0
                End If
                 Gosub Zapal
             End If


             If Rozkaz = 51 Then       'jw. tylko S6 i wyj 6
                If Wyj6 = 0 Then
                   Wyj6 = 1
                Else
                   Wyj6 = 0
                End If
                 Gosub Zapal
             End If


             If Rozkaz = 18 Then       'jw. tylko S8 i wyj 8
                If Wyj8 = 0 Then
                   Wyj8 = 1
                Else
                   Wyj8 = 0
                End If
                 Gosub Zapal
             End If


             If Rozkaz = 26 Then       'jw. tylko S9 i wyj 9
                If Wyj9 = 0 Then
                   Wyj9 = 1
                Else
                   Wyj9 = 0
                End If
                 Gosub Zapal
             End If


             If Rozkaz = 34 Then       'jw. tylko S10 i wyj 10
                If Wyj10 = 0 Then
                   Wyj10 = 1
                Else
                   Wyj10 = 0
                End If
                 Gosub Zapal
             End If


             If Rozkaz = 42 Then       'jw. tylko S11 i wyj 11
                If Wyj11 = 0 Then
                   Wyj11 = 1
                Else
                   Wyj11 = 0
                End If
                 Gosub Zapal
             End If


             If Rozkaz = 50 Then       'jw. tylko S12 i wyj 12
                If Wyj12 = 0 Then
                   Wyj12 = 1
                Else
                   Wyj12 = 0
                End If
                 Gosub Zapal
             End If


           Adres = 0
           Enable Timer0

        End If

    Loop



    '''''''''''''''''''''''''
    'podprogram RC5
    'Wywołanie programu RC5 występuje w chwili wywołania przerwania
    'zewnętrznego INT0 - port P3.2

    Odbior_rc5:
    Getrc5(adres , Rozkaz )
    Return



    '''''''''''''''''''''''''
    'Podprogram Zapal
    'podprogram Zapal włącza diode LED na 500ms przy włączeniu lub
    'wyłączeniu  dowolnego kanału

    Zapal:
    Led1 = 0
    Waitms 250
    Waitms 250
    Led1 = 1
    Return

    błąd o treści :
    ERROR 117 Line 167 Unknown interrupt [OVF2]

  • #5 25 Sie 2008 22:05
    KJ
    Poziom 31  

    Jakoś dziwnie to RC5 konfigurujesz u mnie zawsze chodziło poprawnie w taki sposób:

    Code:

    Config Int0 = Rising
    Config Rc5 = Pind.2
    On Int0 Pobr_rc5

    Enable Int0
    Enable Interrupts

    ...

    end

    Pobr_rc5:

     Disable Int0
     Getrc5(address , Command)
     Command = Command And &B01111111
       If Address < 255 Then
          Address1 = Address
          Command1 = Command
       End If

     Enable Int0
    Return

  • #6 16 Gru 2008 18:46
    gorgon1993
    Poziom 9  

    Witam !
    Przepraszam, że piszę w wymarłym od miesięcy temacie ale już od dawna zastanawiałem się nad zrobieniem czegoś takiego, moje pytania brzmią:

    1. Czy SFH506, SFH5111 i SFH5110 są zamienne?
    2. Czy D1 w odbiorniku i D2 w nadajniku to diody iR?
    3. Dlaczego w rezystorach nadajnika przy R2 pisze: "1(ohm) lub mostek?"
    4. Oraz pytanie do autora tematu:Zrobiłeś te zdalne sterowanie ?

    Z góry dziękuję za odpowiedzi. XD

  • #7 16 Gru 2008 19:15
    Kuczus
    Poziom 19  

    Witam.
    2.) D1 odbiornika to zwykła dioda led ; D2 Nadajnika to dioda prostownicza.
    4.) Nie, jeszcze nie, bo mam problemy z dostaniem tego układu SFH...

  • #8 16 Gru 2008 20:11
    gorgon1993
    Poziom 9  

    Z dostępnością tej diody iR nie ma większego problemu wystarczy poprosić zaprzyjaźnionego elektronika bądź odwiedzić popularny serwis aukcyjny "Allegro".
    Jednak po przeanalizowaniu doszłedłem do wniosku, że D1 jest to właśnie dioda iR której oznaczenie to SFH506, SFH5111 lub SFH5110, której poszukujesz. Należy tylko ją inaczej podłączyć co jest pokazane w załączonych przez ciebie obrazkach.

  • #9 18 Sty 2009 15:36
    Kuczus
    Poziom 19  

    Pomimo tego że temat dosyć już stary, ale teraz będą ferie, więc postanowiłem reanimować ten projekt.
    Mój błąd w poprzednim poście. Chodziło mi o układ SAA3010. Udało mi się już go dorwać, lecz w wersji P. Postanowiłem że dolutuje go kabelkami. Układ SFH506, zastąpie TSOP1736. Lecz teraz kwestia wsadu do procesora, czy ktoś mógłby mnie sprowadzić na jakąś drogę, na której mógłbym dostać informacje do napisania tego programu na attiny2313 ?

  • #10 18 Sty 2009 22:44
    januss73
    Poziom 31  

    Musisz włączyć i zezwolic przerwanie a nie Timer

    on int0 odbior_rc5 'a nie on timer0
    enable int0 'a nie timer0

  • #11 19 Sty 2009 12:46
    Kuczus
    Poziom 19  

    no i znowu problem, który nie występował wcześniej (przed formatem)
    Kit 115-k; 12-kanałowe zdalne sterowanie

    program wygląda teraz następująco :

    Code:
    '''''''''''''''''''''''''
    
    'Nowy Elektronik
    '12-kanałowe zdalne sterowanie na podczerwień 1.0
    'Kuczuś
    'Procesor ATtiny2313
    'Kompilator Bascom AVR

    '''''''''''''''''''''''''
    $crystal = 12000000
    $regfile = "2313def.dat"

    Dim Flaga As Bit
    Dim Rozkaz As Byte , Adres As Byte

    Portd = 255
    Portb = 255
    Config Rc5 = Pind.2 [ , Timer = 2 ]


    Wyj1 Alias Pinb.7
    Wyj2 Alias Pinb.6
    Wyj3 Alias Pinb.5
    Wyj4 Alias Pinb.4
    Wyj5 Alias Pinb.3
    Wyj6 Alias Pinb.2
    Wyj7 Alias Pinb.1
    Wyj8 Alias Pinb.0
    Wyj9 Alias Pind.7
    Wyj10 Alias Pind.0
    Wyj11 Alias Pind.1
    Wyj12 Alias Pind.5
    Led1 Alias Pind.3


    On Int0 Odbior_rc5
    Enable Int0
    Enable Interrupts

    Do                       'glowna petla programu
       If Adres = 7 Then     'jezeli adres RC5=7 to wykonaj warunek
          Disable Int0

             If Rozkaz = 11 Then       'jezeli S1 wcisniete to wykonaj warunek
                If Wyj1 = 0 Then       'jezeli wyj1 jest wlaczone to wylacz
                   Wyj1 = 1
                Else
                   Wyj1 = 0  'jezeli Wyj1 jest wylaczone to wlacz
                End If
                 Gosub Zapal
             End If


             If Rozkaz = 19 Then       'jw. tylko S2 i wyj 2
                If Wyj2 = 0 Then
                   Wyj2 = 1
                Else
                   Wyj2 = 0
                End If
                 Gosub Zapal
             End If


             If Rozkaz = 27 Then       'jw. tylko S3 i wyj 3
                If Wyj3 = 0 Then
                   Wyj3 = 1
                Else
                   Wyj3 = 0
                End If
                 Gosub Zapal
             End If


             If Rozkaz = 35 Then       'jw. tylko S4 i wyj 4
                If Wyj4 = 0 Then
                   Wyj4 = 1
                Else
                   Wyj4 = 0
                End If
                 Gosub Zapal
             End If


             If Rozkaz = 43 Then       'jw. tylko S5 i wyj 5
                If Wyj5 = 0 Then
                   Wyj5 = 1
                Else
                   Wyj5 = 0
                End If
                 Gosub Zapal
             End If


             If Rozkaz = 51 Then       'jw. tylko S6 i wyj 6
                If Wyj6 = 0 Then
                   Wyj6 = 1
                Else
                   Wyj6 = 0
                End If
                 Gosub Zapal
             End If


             If Rozkaz = 18 Then       'jw. tylko S8 i wyj 8
                If Wyj8 = 0 Then
                   Wyj8 = 1
                Else
                   Wyj8 = 0
                End If
                 Gosub Zapal
             End If


             If Rozkaz = 26 Then       'jw. tylko S9 i wyj 9
                If Wyj9 = 0 Then
                   Wyj9 = 1
                Else
                   Wyj9 = 0
                End If
                 Gosub Zapal
             End If


             If Rozkaz = 34 Then       'jw. tylko S10 i wyj 10
                If Wyj10 = 0 Then
                   Wyj10 = 1
                Else
                   Wyj10 = 0
                End If
                 Gosub Zapal
             End If


             If Rozkaz = 42 Then       'jw. tylko S11 i wyj 11
                If Wyj11 = 0 Then
                   Wyj11 = 1
                Else
                   Wyj11 = 0
                End If
                 Gosub Zapal
             End If


             If Rozkaz = 50 Then       'jw. tylko S12 i wyj 12
                If Wyj12 = 0 Then
                   Wyj12 = 1
                Else
                   Wyj12 = 0
                End If
                 Gosub Zapal
             End If


           Adres = 0
           Enable Int0

        End If

    Loop



    '''''''''''''''''''''''''
    'podprogram RC5
    'Wywołanie programu RC5 występuje w chwili wywołania przerwania
    'zewnętrznego INT0 - port P3.2

    Odbior_rc5:
    Getrc5(adres , Rozkaz )
    Return



    '''''''''''''''''''''''''
    'Podprogram Zapal
    'podprogram Zapal włącza diode LED na 500ms przy włączeniu lub
    'wyłączeniu  dowolnego kanału

    Zapal:
    Led1 = 0
    Waitms 250
    Waitms 250
    Led1 = 1
    Return

  • #12 19 Sty 2009 17:14
    januss73
    Poziom 31  

    Na szybko, bo może jest jeszcze więcej błędów.
    pinb.x to port wejściowy i nie można mu przypisać wartości. Trzeba użyć rejestr wyjściowy portb.x.
    Druga sprawa, nawet jak już skompilujesz program i tak nie będzie poprawnie działać bo.
    - jak już raz adres będzie równy 7, to tak już zostanie, bez względu na to co i czy odbiornik odbierze
    - jak juz raz komenda będzie równa np 11 to tak już zostanie.
    W efekcie program wystartuje, zapętli sie i będzie zmieniał stan jednego pinu wkółko. (wg mnie)

  • #13 21 Sty 2009 16:51
    Kuczus
    Poziom 19  

    Hmm... Na samej górze, jest cały program żywcem przepisany z artykułu, z tym że na inny procesor, więc myślę, że analogia jest ta sama, z tym że trzeba pozmieniać kilka 'parametrów' które są różne na attiny2313. Czy ktoś jeszcze mógłby się wypowiedzieć na ten temat ?

  • #14 22 Sty 2009 00:00
    januss73
    Poziom 31  

    Sory przeoczylem linijkę. Program się nie zapętli.
    Nie zmienia to jednak faktu, że przerobiłeś (nie wnikając czy udanie) program z 8051 na avr, co jak widać takie proste nie jest i bez względu na to ile osób się wypowie nie zmienisz wartości pinu comendą pinB.x=1, bo w avr robi się to komendą portB.x=1. Kompilator zresztą już sam ci to powiedział.

  • #15 28 Sty 2009 14:10
    Kuczus
    Poziom 19  

    poprawiłem te Aliasy na 'portx.x" No ale nadal występują błędy:
    Kit 115-k; 12-kanałowe zdalne sterowanie

    Code:
                 '''''''''''''''''''''''''
    
    'Nowy Elektronik
    '12-kanałowe zdalne sterowanie na podczerwień 1.0
    'Kuczuś
    'Procesor ATtiny2313
    'Kompilator Bascom AVR

    '''''''''''''''''''''''''
    $crystal = 12000000
    $regfile = "ATtiny2313.DAT"

    Dim Flaga As Bit
    Dim Rozkaz As Byte , Adres As Byte

    Portd = 255
    Portb = 255
    Config Rc5 = Pind.2 [ , Timer = 2 ]


    Wyj1 Alias Portb.7
    Wyj2 Alias Portb.6
    Wyj3 Alias Portb.5
    Wyj4 Alias Portb.4
    Wyj5 Alias Portb.3
    Wyj6 Alias Portb.2
    Wyj7 Alias Portb.1
    Wyj8 Alias Portb.0
    Wyj9 Alias Portd.7
    Wyj10 Alias Portd.0
    Wyj11 Alias Portd.1
    Wyj12 Alias Portd.5
    Led1 Alias Portd.3


    On Int0 Odbior_rc5
    Enable Int0
    Enable Interrupts

    Do                       'glowna petla programu
       If Adres = 7 Then     'jezeli adres RC5=7 to wykonaj warunek
          Disable Int0

             If Rozkaz = 11 Then       'jezeli S1 wcisniete to wykonaj warunek
                If Wyj1 = 0 Then       'jezeli wyj1 jest wlaczone to wylacz
                   Wyj1 = 1
                Else
                   Wyj1 = 0  'jezeli Wyj1 jest wylaczone to wlacz
                End If
                 Gosub Zapal
             End If


             If Rozkaz = 19 Then       'jw. tylko S2 i wyj 2
                If Wyj2 = 0 Then
                   Wyj2 = 1
                Else
                   Wyj2 = 0
                End If
                 Gosub Zapal
             End If


             If Rozkaz = 27 Then       'jw. tylko S3 i wyj 3
                If Wyj3 = 0 Then
                   Wyj3 = 1
                Else
                   Wyj3 = 0
                End If
                 Gosub Zapal
             End If


             If Rozkaz = 35 Then       'jw. tylko S4 i wyj 4
                If Wyj4 = 0 Then
                   Wyj4 = 1
                Else
                   Wyj4 = 0
                End If
                 Gosub Zapal
             End If


             If Rozkaz = 43 Then       'jw. tylko S5 i wyj 5
                If Wyj5 = 0 Then
                   Wyj5 = 1
                Else
                   Wyj5 = 0
                End If
                 Gosub Zapal
             End If


             If Rozkaz = 51 Then       'jw. tylko S6 i wyj 6
                If Wyj6 = 0 Then
                   Wyj6 = 1
                Else
                   Wyj6 = 0
                End If
                 Gosub Zapal
             End If


             If Rozkaz = 18 Then       'jw. tylko S8 i wyj 8
                If Wyj8 = 0 Then
                   Wyj8 = 1
                Else
                   Wyj8 = 0
                End If
                 Gosub Zapal
             End If


             If Rozkaz = 26 Then       'jw. tylko S9 i wyj 9
                If Wyj9 = 0 Then
                   Wyj9 = 1
                Else
                   Wyj9 = 0
                End If
                 Gosub Zapal
             End If


             If Rozkaz = 34 Then       'jw. tylko S10 i wyj 10
                If Wyj10 = 0 Then
                   Wyj10 = 1
                Else
                   Wyj10 = 0
                End If
                 Gosub Zapal
             End If


             If Rozkaz = 42 Then       'jw. tylko S11 i wyj 11
                If Wyj11 = 0 Then
                   Wyj11 = 1
                Else
                   Wyj11 = 0
                End If
                 Gosub Zapal
             End If


             If Rozkaz = 50 Then       'jw. tylko S12 i wyj 12
                If Wyj12 = 0 Then
                   Wyj12 = 1
                Else
                   Wyj12 = 0
                End If
                 Gosub Zapal
             End If


           Adres = 0
           Enable Int0

        End If

    Loop



    '''''''''''''''''''''''''
    'podprogram RC5
    'Wywołanie programu RC5 występuje w chwili wywołania przerwania
    'zewnętrznego INT0 - port P3.2

    Odbior_rc5:
    Getrc5(adres , Rozkaz )
    Return



    '''''''''''''''''''''''''
    'Podprogram Zapal
    'podprogram Zapal włącza diode LED na 500ms przy włączeniu lub
    'wyłączeniu  dowolnego kanału

    Zapal:
    Led1 = 0
    Waitms 250
    Waitms 250
    Led1 = 1
    Return

  • #16 28 Sty 2009 15:57
    mirley
    Poziom 17  

    Witam

    Sam miałem wielokrotnie problemy z RC5 pod ATtiny jeśli chciałem używać przerwań. W tym przypadku jeśli chcesz sterować zdalnie urządzeniami za pomocą pilota RC5 przerwania nie są konieczne i można to napisać najlepiej tak:

    Code:

    '************* Konfiguracja uC *****************
    '***********************************************
    $regfile = "attiny2313.dat"
    $crystal = 16000000

    Config Portb = &B11111111 : Portb = &B11111111
    Config Portd = &B11111011 : Portd = &B11111111

    Config Rc5 = Pind.2
    Dioda Alias Portd.6

    Enable Interrupts
    '********** Konfiguracja uC Koniec  ************

    '******************  Zmienne *******************
    '***********************************************
    Dim Komenda As Byte , Adres As Byte
    '*************  Zmienne Koniec  ****************

    '**************  Petla glowna ******************
    '***********************************************
    Do
      Getrc5(adres , Komenda)
      Komenda = Komenda And &B01111111

      If Adres = 0 Then
        Reset Dioda

        Select Case Komenda
          Case 1:
              Toggle Portb.0
          Case 2:
              Toggle Portb.1
          Case 3:
              Toggle Portb.2
          Case 4:
              Toggle Portb.3
          Case 5:
              Toggle Portb.4
          Case 6:
              Toggle Portb.5
          Case 7:
              Toggle Portb.6
          Case 8:
              Toggle Portb.7
        End Select

        Waitms 100
        Set Dioda
        Waitms 100
      End If

    Loop
    End
    '************ Petla glowna Koniec **************


    Oczywiście wyprowadzenia i częstotliwość rezonatora kwarcowego musisz ustawić odpowiednie do twojego schematu. W kodzie wstaw też poprawny adres swojego pilota

    Kod źrodłowy obsluguje 8 urządzeń ale nie ma problemu żeby dodać jeszcze 4 dodatkowe

    Odnośnie pilota to lepiej kupić działający gotowy pilot na allegro za 5zł i odpadnie problem przynajmniej od strony nadajnika.

    Więcej szczegołow znajdziesz u mnie na stronie:
    http://mirley.firlej.org/odbiornik_rc5

    Ps. Do kompilacji użyj najnowszego bascoma (ze strony producenta)

  • #17 28 Sty 2009 20:36
    januss73
    Poziom 31  

    Kuczus napisał:
    poprawiłem te Aliasy na 'portx.x" No ale nadal występują błędy:


    Bonie zadeklarowałeś zmiennych
    dim adres as byte : dim rozkaz as byte

  • #18 13 Mar 2009 18:41
    DTC
    Poziom 13  

    Mam nadzieje ze ktos tu zaglada :) mam pytanie bo sie nie znam na tym a kupilem kit 115 K i nie dziala :) dlaczego w listingu nie ma wyjscia 7 i jest 2 razy wyjscie 10 :) czy ktos uruchomil ten program :) bo musze uruchomic moj kit a nie jestem w polsce i che zaprogramowac nowy procek :) a nie znam sie na prockach :) a moze ma ktos gotowy Hex albo bin do udostepnienia :) pozdrawiam !

 Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME