HMGRC v.1.1. Home Made Group Repeater Controler

Podobne dokumenty
Programowanie mikrokontrolerów - laboratorium

Listing_ $crystal = deklaracja

Synteza częstotliwości na układzie PLL LM7001

DTMF Controler DC1 DCE1

start Program mikroprocesorowego miernika mocy generowanej $crystal = deklaracja

RPTC CONTROLLER (v1.11) STEROWNIK PRZEMIENNIKA RADIOWEGO OBSŁUGA KOMUNIKATÓW GŁOSOWYCH OBSŁUGA KOMUNIKATÓW IDCW OPCJONALNY MODUŁ GSM

Programowanie mikrokontrolerów - laboratorium

Nadajnik Nokton NR4 MAXIM przeróbka do zastosowań APRS MHz

OPROGRAMOWANIE FIRMWARE INTERFEJSU ETHERNETOWEGO UNIV

Podstawy techniki mikroprocesorowej

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

Enkoder z silnika HDD lub FDD

OPROGRAMOWANIE MODUŁU WYJŚĆ OC UNIV

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski

OPROGRAMOWANIE STEROWNIKA ROLET UNIV

OPROGRAMOWANIE PRZEKAŹNIKA MONOSTABILNEGO UNIV

OPROGRAMOWANIE PRZEKAŹNIKA BISTABILNEGO UNIV

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

OPROGRAMOWANIE ŚCIEMNIACZA UNIV

MOBOT-RCR v2 miniaturowe moduły radiowe Bezprzewodowa transmisja UART

OPROGRAMOWANIE PRZEKAŹNIKA BISTABILNEGO UNIV

Bluetooth łączy mikrokontrolery, część 2

Instytut Teleinformatyki

Zawody II stopnia etap II - ćwiczenia laboratoryjne Grupa Elektroniczna

MODUŁ UNIWERSALNY UNIV 3

PRZYCISK DO PUSZKI UNIV x

Pompy ciepła SIRAC INSTRUKCJA UŻYTKOWNIKA ( )

INDU-22. Przemysłowy Sterownik Mikroprocesorowy. Przeznaczenie. masownica próżniowa

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski

4 Channel Video Server ACD Ver Quick Installation Guide

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

OPIS PROGRAMU USTAWIANIA NADAJNIKA TA105

KURS BASCOM 8051 INDEX:

FIRMWARE MODUŁU TIBBO INTERFEJSU ETHERNETOWEGO UNIV x - Tibbo EM500 v2.1

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski

INSTRUKCJA OBSŁUGI. Przekaźnik czasowy ETM ELEKTROTECH Dzierżoniów. 1. Zastosowanie

Miernik częstotliwości 100 MHz

Obrotomierz AVT 5260 PROJEKTY

Mikrokontrolery AVR Wprowadzenie

Dalmierze firmy SHARP na przykładzie 2D120XJ100F

INDU-21. Przemysłowy Sterownik Mikroprocesorowy. Przeznaczenie Masownice próżniowe, mieszałki

INTERFEJS RS232C UNIV x

Sterownik RO WS-01E opis działania, obsługa

Wydział Mechaniczny. Instrukcja do zajęć laboratoryjnych. Numer ćwiczenia: 4. Laboratorium z przedmiotu: Technika cyfrowa i mikroprocesorowa

Centrala alarmowa ALOCK-1

Przerwania w architekturze mikrokontrolera X51

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

Poradnik programowania procesorów AVR na przykładzie ATMEGA8

FIRMWARE MODUŁU TIBBO INTERFEJSU ETHERNETOWEGO UNIV x-Tibbo EM500 v2.1

Instrukcja obsługi Twin1 ISR

RCForb (Client) Instrukcja Użytkownika

Instrukcja dla: Icomsat v1.0 SIM900 GSM/GPRS shield for Arduino oraz dla GPRS Shield produkcji Seeedstudio.

INSTRUKCJA OBSŁUGI REGULATOR TEMPERATURY TPC NA-10

KOMUNIKACJA Z OTOCZENIEM MIKROKONTROLERA

Instrukcje cykliczne (pętle) WHILE...END WHILE

Otwór w panelu WYMIAR MINIMALNIE OPTYMALNIE MAKSYMALNIE A 71(2,795) 71(2,795) 71,8(2,829) B 29(1,141) 29(1,141) 29,8(1,173)

OPROGRAMOWANIE STEROWNIKA RGB LED UNIV

Dwukanałowy regulator temperatury NA24

OPROGRAMOWANIE ODBIORNIKA / NADAJNIKA PODCZERWIENI UNIV

INDU-40. Przemysłowy Sterownik Mikroprocesorowy. Przeznaczenie. Dozowniki płynów, mieszacze płynów.

Niektóre piny mogą pełnić różne role, zależnie od aktualnej wartości sygnałów sterujących.

EV3 B23. Podstawowy elektroniczny sterownik chłodniczy (instrukcja skrócona dla P4 = 1)

Dokumentacja Techniczna. Czytnik RFID UW-M4GM

Instrukcja i opis sterownika terrorystycznego GEKON

DVR KEYB v1.4. Interfejs PS-2 do rejestratorów DVR

Konwerter Transmisji KT-02

Dokumentacja Techniczna. Konwerter USB/RS-232 na RS-285/422 COTER-24I COTER-24N

LOW ENERGY TIMER, BURTC

W O J S K O W A A K A D E M I A T E C H N I C Z N A im. Jarosława Dąbrowskiego

KURS Bascom'a. Autor Paweł Klaja. Korekta. v1.5

MODULATOR HDMI W DVB-T (COFDM) INSTRUKCJA OBSŁUGI

ECHO CYFROWE Krzysztof Górski

Projektowanie Systemów Wbudowanych

LabVIEW PLATFORMA EDUKACYJNA Lekcja 5 LabVIEW i Arduino konfiguracja środowiska i pierwszy program

MultiTool instrukcja użytkownika 2010 SFAR

Sterownik przewodowy. Bosch Climate 5000 SCI / MS. Model: KJR-12B/DP(T)-E-2

Przygotowanie urządzenia:

Pilot RF 4-kanałowy + odbiornik XY-DJM-5V umożliwia zdalne sterowanie do czterech urządzeń. Nadajnik pilot MX804. Odbiornik XY-DJM.

Spis treści: Wersja: 1.04

Wprowadzenie. Funkcje klawiszy

Opis do danych z Lan Kontrolera V Dane wysyłane przez http POST ze strony Events Config po wciśnięciu przycisku Save Config.

Edukacyjny sterownik silnika krokowego z mikrokontrolerem AT90S1200 na płycie E100. Zestaw do samodzielnego montażu.

Sterownik RO WS-01E opis działania, obsługa

Nota aplikacyjna. Automatyczne powtarzanie powiadomienia SMS/CALL przy ciągłym naruszeniu wejścia.

asix4 Podręcznik użytkownika AS512 - drajwer protokołu AS512 dla SIMATIC S5 Podręcznik użytkownika

Pilot zdalnego sterowania DANE TECHNICZNE FUNKCJE PILOTA ZDALNEGO STEROWANIA

ARS3 RZC. z torem radiowym z układem CC1101, zegarem RTC, kartą Micro SD dostosowany do mikro kodu ARS3 Rxx. dokument DOK wersja 1.

EV Termostat cyfrowy do urządzeń chłodniczych

INSTRUKCJA INSTALACJI SPN-IR INSTRUKCJA INSTALACJI I OBSŁUGI. Sterownik Pracy Naprzemiennej SPN-IR

GAMMA_X_1Cw. 1. Dane techniczne. 2. Opis urządzenia Sterowanie: możliwość sterowania 1 napędem. 2. Pamięć: do 20 nadajników

Ustawienia ogólne. Ustawienia okólne są dostępne w panelu głównym programu System Sensor, po kliknięciu ikony

Radio FM kuchenne SoundMaster UR 2006, LCD, pamięć 30 stacji

Instrukcja instalacji i konfiguracji aplikacji mobilnej SARAT

INSTRUKCJA OBSŁUGI. Wyświetlacz tekstu T20

Następnie kliknąć prawym klawiszem myszy na Połączenie sieci bezprzewodowej i wybrać Wyłącz.

PILOT ZDALNEGO STEROWANIA

INSTRUKCJA OBSŁUGI PILOTA YX1F

CENTRALA STERUJĄCA SMART CONTROL

Kod produktu: MP01611

Instrukcja konfiguracji urządzenia TL-WA830RE v.1

Transkrypt:

HMGRC v.1.1 Home Made Group Repeater Controler

1. Przedmowa 2. Informacje licencyjne 3. Założenia i opis 4. Schemat elektryczny 5. Lista części 6. Rysunki płytek 7. Kod źródłowy 8. Twórcy Spis Treści

1. Przedmowa Niniejsze opracowanie jest efektem pracy kilku osób skupionych wokół forum sp-hm.pl. Sterownik tutaj opisywany jest odpowiedzią na zapotrzebowanie kolegów na prosty w pełni otwarty projekt sterownika do nieskomplikowanych przemienników fonicznych w paśmie 2m i 70cm. 2. Informacje Licencyjne HMGRC v.1.0 Copyright (C) 2010 Home Made Group Niniejsze opracowanie i wszystkie jego elementy są wolnym rozwiązaniem; możesz je rozprowadzać dalej i/lub modyfikować na warunkach Powszechnej Licencji Publicznej GNU, wydanej przez Fundację Wolnego Oprogramowania - według wersji 2-giej tej Licencji lub którejś z późniejszych wersji. Niniejszy opracowanie rozpowszechniane jest z nadzieją, iż będzie ono użyteczne - jednak BEZ JAKIEJKOLWIEK GWARANCJI, nawet domyślnej gwarancji PRZYDATNOŚCI HANDLOWEJ albo PRZYDATNOŚCI DO OKREŚLONYCH ZASTOSOWAŃ. W celu uzyskania bliższych informacji - Powszechna Licencja Publiczna GNU. Z pewnością wraz z niniejszym programem otrzymałeś też egzemplarz Powszechnej Licencji Publicznej GNU (GNU General Public License); jeśli nie - napisz do Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 3. Założenia i opis konstrukcji. Konstrukcja ma za zadanie sterować pracą przemiennika na podstawie sygnału o zajętości kanału z radia odbiorczego. Ma umożliwiać włączenie opcji sygnalizacji końca nadawania korespondenta i identyfikacji przemiennika, a także ma mieć możliwość tłumienia sygnału audio dla radii z open-squelch. W torze audio nie przewidziano wzmacniaczy i filtrów tak by umożliwić natywną pracę D-Star. Opcje konfigurowalne zworkami na porcie B ZW1 - PB1 - włącz wyłącz opcję beep ZW2 - PB2 - włącz wyłącz identyfikację CW po każdym TX ZW3 - PB3 - włącz wyłącz identyfikację (włącz wyłącz automat co 5minut, jeśli wyłączone nie działa też po każdym TX) ZW4 - PB4-1S czas podtrzymania nośnej ZW5 - PB5-2S czas podtrzymania nośnej ZW6 - PB6-4S czas podtrzymania nośnej Czasy podtrzymania nośnej się sumują więc można ustawić czas od 1S do 7S ze skokiem co 1S. Dodatkowo zdjęcie wszystkich zworek od PB4 - PB6 ustawia czas podtrzymania nośnej na 10S ZW7 PB7 Konfiguracja poziomu SQL 0V/5V Piny: PD5 - Sygnalizacja TX PD4 - Sygnalizacja RX

4. Schemat elektryczny

5. Lista części. 100nF; 2;C3, C6 100uF; 2;C4, C8 10k; 4;R4, R6, R9, R10 1nF; 1;C7 22K; 3;PR1, PR2, R1 2k2; 3;R7, R8, R12 33; 2;C1, C2 470; 2;R2, R3 470nF; 2;C5, C9 4k7; 2;R5, R11 4MHz; 1;X1 ATTINY2313; 1;U1 BC547; 4;T1, T2, T3, T4 CONN_1; 7;P1, P2, P3, P4, P5, P6, P7 LED RX; 1;D2 LED TX; 1;D1 LM7805; 1;U2 PTT+Wy.AUDIO; 1;Zworka PTT z AUDIO ZW; 7;ZW1, ZW2, ZW3, ZW4, ZW5, ZW6, ZW7 Zworka MUTE; 1;JP1 6. Rysunek płytki

7. Kod źródłowy $regfile = Attiny2313.dat $crystal = 4000000 $baud = 9600 $hwstack = 32 $swstack = 0 $framesize = 12 'wejscia konfiguracyjne port b portb.0 jako wyjscie PTT 'wejsca sygnalowe i wyjscia sygnalizacyjne Config Portb = &B10000001 Config Portd = &B1111101 'ustawiamy wysokie stany na wejsciach i niskie na wyjściach Portb = &B11111110 Portd = &B0000000 'aliasy na porcie D Sql Alias Pind.1 Morsepin Alias Portd.6 Tx_led Alias Portd.5 Rx_led Alias Portd.4 Mute Alias Portd.3 Wentylator Alias Portd.2 'aliasy na porcie B Ptt Alias Portb.0 Beep_option_jumper Alias Pinb.1 Ident_after_jumper Alias Pinb.2 Ident_option_jumper Alias Pinb.3 Podtrzymaniea Alias Pinb.4 Podtrzymanieb Alias Pinb.5 Podtrzymaniec Alias Pinb.6 Sql_lvl Alias Pinb.7 'zegar on Enable Interrupts Config Timer1 = Timer, Prescale = 64 Enable Timer1 'definicje stałych Const Speed = 12 Const Czestotliwosc = 450 Const Kropka = Czestotliwosc / Speed Const Kreska = 3 * Kropka 'definicje zmiennych Dim Sendchar As String * 1 Dim Charcode As Byte Dim Dataindex As Byte Dim Charindex As Byte Dim Charstring As String * 12 Dim Stringlength As Byte Dim Codelength As Byte Dim Codeindex As Byte Dim Codeelement As String * 1 Dim Sendcw As Bit Dim Rx_flag As Bit Dim Podtrzymanie_flag As Bit Dim Rx As Bit Dim Rxa As Bit Dim Sekunda As Byte Dim Minuta As Byte Dim Countdown As Byte Dim Inputtekst As String * 6 Dim Sendcwinterwal As Byte Dim Czaspodtrzymania As Byte Dim Odtworzylem_beep As Bit 'konfiguracja zmiennych sterownika Inputtekst = "SR5WM" 'znamiennik max 6 znaków jesli chcesz wiekszy zmien rozmiar zmiennej Inputtekst Sendcwinterwal = 10 'czas automatycznego wysyłania znamiennika w minutach 'tutaj uruchamiam timer do odliczania wyłączania flag On Timer1 Liczmy Wait 3 'Uruchomienie Przemiennika Wysyłamy znamiennik Sendcw = 1 'główna pętla programu Do 'ustawiam czas podtrzymania ze zworek If Podtrzymaniea = 0 And Podtrzymanieb = 0 And Podtrzymaniec = 0 Then Czaspodtrzymania = 7 'podstawowy czas podtrzymania nosnej w sekundach Elseif Podtrzymaniea = 1 And Podtrzymanieb = 0 And Podtrzymaniec = 0 Then Czaspodtrzymania = 6 'podstawowy czas podtrzymania nosnej w sekundach Elseif Podtrzymaniea = 0 And Podtrzymanieb = 1 And Podtrzymaniec = 0 Then Czaspodtrzymania = 5 'podstawowy czas podtrzymania nosnej w sekundach Elseif Podtrzymaniea = 1 And Podtrzymanieb = 1 And Podtrzymaniec = 0 Then Czaspodtrzymania = 4 'podstawowy czas podtrzymania nosnej w sekundach Elseif Podtrzymaniea = 0 And Podtrzymanieb = 0 And Podtrzymaniec = 1 Then Czaspodtrzymania = 3 'podstawowy czas podtrzymania nosnej w sekundach Elseif Podtrzymaniea = 1 And Podtrzymanieb = 0 And Podtrzymaniec = 1 Then Czaspodtrzymania = 2 'podstawowy czas podtrzymania nosnej w sekundach Elseif Podtrzymaniea = 0 And Podtrzymanieb = 1 And Podtrzymaniec = 1 Then

Czaspodtrzymania = 1 'podstawowy czas podtrzymania nosnej w sekundach Else Czaspodtrzymania = 10 'obsługa sygnału SQL zapalanie flagi RX 'jesli pin SQL ma stan inny niż zworka ZW7 If Sql <> Sql_lvl Then 'ustawiam bit pomocniczy Rx = 1 'jeśli po 20ms nadal wciśnięty uruchamiam zatrzask Rxa If Rx = 1 And Rxa = 0 Then Rxa = 1 'ustawiamy flage jest RX Rx_flag = 1 'jeśli sygnał zajętości znika to Elseif Rxa = 1 Then Rx_flag = 0 Rx = 0 : Rxa = 0 'ustawianie flagi TX jesli ustawione flagi RX lub podtrzymanie 'ustawianie flagi podtrzymanie jesli zapalony RX If Rx_flag = 1 Then Podtrzymanie_flag = 1 Odtworzylem_beep = 0 Countdown = 0 Rx_led = 1 Mute = 0 Else Rx_led = 0 Mute = 1 'ustawiamy port PTT i inne jesli mamy flage podtrzymanie If Podtrzymanie_flag = 1 Then 'wysterowanie nadajnika Ptt = 1 Tx_led = 1 Wentylator = 1 'tutaj beep jesli koniec nadawania i beep_option_jumper enabled (0 to stan niski zworka założona) If Rx_flag = 0 And Beep_option_jumper = 0 And Odtworzylem_beep = 0 Then Waitms 300 'sprawdzic czy stoi nośna jeśli nie to beep If Sql = Sql_lvl Then Sound Morsepin, Kropka, Czestotliwosc Odtworzylem_beep = 1 Else 'wysterowanie nadajnika Ptt = 0 Tx_led = 0 Wentylator = 0 'procedura wysylania znamiennika 'ident option jesli zwarty do masy to będzie nadawany znamiennik If Sendcw = 1 And Ident_option_jumper = 0 Then 'uruchamiam sobie TX Ptt = 1 Tx_led = 1 'blokujemy timer na czas wysylania znamiennikabo chrypi Stop Timer1 Waitms 300 Stringlength = Len(inputtekst) 'tutaj przesuwamy się po ciągu znaków i będziemy odtwarzać każdą literę z osobna For Charindex = 1 To Stringlength Sendchar = Mid(inputtekst, Charindex, 1) Charcode = Asc(sendchar) Dataindex = Charcode - 48 Charstring = Lookupstr(dataindex, Alfabet) Codelength = Len(charstring) 'ta pętla generuje kazda litere znaku For Codeindex = 1 To Codelength Codeelement = Mid(charstring, Codeindex, 1) If Codeelement = "." Then 'Zagraj kropke Sound Morsepin, Kropka, Czestotliwosc Else 'Zagraj kreske Sound Morsepin, Kreska, Czestotliwosc If Codeindex < Codelength Then Waitms Kropka Next Codeelement 'odstęp pomiedzy znakami 3 x kropka Waitms Kreska 'i wracamy do początku pętli po następną literę Next Charindex 'skonczylismy gasimy flaga nadawania znamiennika

'resetujemy lflagi Sendcw = 0 Ptt = 0 Sekunda = 0 'skonczylismy nadawac znamiennik odpalamy timer 1 Start Timer1 'koniec pętli Loop 'koniec programu End 'obsługa Liczmy: Timer1 = 0 'tutaj proste naliczanie w sekundzie i cos (dla uproszczenia i skrocenia kodu uzyłem timera tc1/64 to daje 1s = 1,05S) Sekunda = Sekunda + 1 If Sekunda = 60 Then Minuta = Minuta + 1 If Minuta = 60 Then Minuta = 0 Sekunda = 0 'jesli podtrzymanie na 1 a rx spadl zczynamy odliczanie do wylaczenia If Podtrzymanie_flag = 1 And Rx_flag = 0 Then Countdown = Countdown + 1 'jesli doszlismy do konca gas flagi If Countdown >= Czaspodtrzymania Then Podtrzymanie_flag = 0 Ptt = 0 Tx_led = 0 'jesli zaznaczona flaga identylfikacji po odpuszczeniu tx to zagraj znamiennik If Ident_after_jumper = 0 Then Minuta = Sendcwinterwal 'reset licznika jesli pojawi sie flaga rx w trakcie podtrzymania Elseif Podtrzymanie_flag = 1 And Rx_flag = 1 Then Countdown = 0 'okresowe wysyłanie znamiennika jesli przekroczono czas i nikt nie nadaje If Minuta >= Sendcwinterwal And Rx_flag = 0 And Ident_option_jumper = 0 Then Sendcw = 1 Minuta = 0 Return Alfabet: Data "-----" '0 Znaki pokolei tak jak są ustawione w tablicy ASCII Data ".----" '1 przy wywoływaniu musimy tylko przestawić indeks o 48 Data "..---" '2 ponieważ cyfra 0 ma kod ASCII 48 Data "...--" '3 Data "...-" '4 Data "..." '5 Data "-..." '6 Data "--..." '7 Data "---.." '8 Data "----." '9 ': do generowania znamienników znaki specjalne nie są potrzebne '; '< '= '> '? '@ Data ".-" 'A Literki Data "-..." 'B Data "-.-." 'C Data "-.." 'D 'E Data "..-." 'F Data "--." 'G Data "..." 'H Data ".." 'I Data ".---" 'J Data "-.-" 'K Data ".-.." 'L Data "--" 'M Data "-." 'N Data "---" 'O Data ".--." 'P Data "--.-" 'Q Data ".-." 'R Data "..." 'S Data "-" 'T Data "..-" 'U Data "...-" 'V Data ".--" 'W Data "-..-" 'X Data "-.--" 'Y Data "--.." 'Z

7. Twórcy SQ9MDD Ryszard Koncepcja, oprogramowanie, rysunki płytek, dokumentacja. SQ5MGE Sebastian Opracowanie elektroniczne SQ5WPJ Paweł Konsultacje merytoryczne SP5FCS Adam Rysunki płytek 3Z6AEF Waldek Rysunki płytek