Мазмұны:
Бейне: Бақша пойызы - Arduino сымсыз NMRA DCC: 4 қадам (суреттермен)
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:25
Өлі рельсті жүйе бойынша DCC -мен алдыңғы нұсқаулықтан басқа, мен бұл идеяны пернетақтасы мен СКД дисплейі бар қолмен басқарылатын DCC командалық станциясымен дамыттым. Командалық станция NMRA DCC нұсқаулары үшін қажет барлық кодтауды қамтиды, бірақ рельстерге қосылудың орнына, деректер RF24L01+ радио модулі арқылы жүк машинасына немесе локо астына орнатылған қабылдағышқа беріледі - бөлме рұқсат етілген жерде.
Әрине, сіздің қондырғыларыңыз қозғалтқыш қозғалтқыштарына сәйкес келетін жүктеу қабілетінің декодерімен жабдықталуы керек.
1 -қадам: жүйенің дизайны
Arduino Pro Mini - бұл дизайнның негізі. Схеманы дамыту және ПХД шығару үшін Фритзингті қолдану.
Мен бірдей ПХД -ні таратқыш пен қабылдағыш үшін қолдана алдым, осылайша кейбір шығындарды үнемдедім.
Таратқышта пернетақта мен СКД қосылымдары бар, ал ресивер оларды қажет етпейді және локоға DCC шығысын беру үшін H көпірін пайдаланады.
Одан әрі дамуға неғұрлым қуатты локостар үшін қажет болса, үлкенірек H көпірінің қосылыстары кіреді.
PCF8574 Arduino -да SCA / SCL қосылымдарына дисплейді тек 2 сыммен жеткізуге мүмкіндік беретін рюкзакпен бірге келетін СКД дисплейін пайдалансаңыз, PCF8574 жойылуы мүмкін. Бөлшектер тізімі: DCC Command Station + 1 қабылдағышы үшін барлығы 60 фунт стерлинг Қосымша қабылдағыштар құны = Әрқайсысына шамамен 10,00 фунт. + батареялар
Arduino Pro Mini. x 2 = 4,00 фунт
4х3 мембраналық пернетақта = 3,00 фунт
20 x 4 СКД дисплейі = 7,00 фунт
PCF5874 = 1,80 фунт стерлинг
NRF24L01+. радио модульдер x 2 = 5,80 фунт
ПХД өндірісі 10 жеңілдікке (немесе Vero тақтасын қолдануға болады) = 2 фунт үшін 24 фунт немесе 4,80 фунт стерлинг
3.3 v Реттеуші = 0,17 фунт (RS Comp -тен 25 пакет)
5V реттегіші LM7805 = 0,30 фунт стерлинг
H көпірі SN754410ne = 3,00 фунт
Lloytron қайта зарядталатын 2700 мАА АА батареялары x 12 = 22,00 фунт. (maH төмен батареялар арзанырақ)
Конденсаторлар, кастрюльдер, түйреуіштер, қосқыштар және т.б. = шамамен 2,00 фунт стерлинг
Корпус 190x110x60 мм = 8,00 фунт
Таратқыш - телефонды зарядтағыш / батарея = 2,00 фунт
2 -қадам: таратқыш
Диаграмма Arduino Pro Mini -дегі D2 -D8 түйреуіштері пернетақтаға қосылған жерде көрсетілген. 100к Ом потенциометрі аналогты A0 пиніне қосылады, ал SDA мен SCL түйрегіштері PCF8574 чипін құрайды A4 және A5 Arduino Pro Mini -де Pro Mini жоғарғы қабатындағы түйреуіштерге дәнекерленген сымдар арқылы.
Arduino эскизі жүктеуге қосылады.
Мен 20 х 4 СКД дисплейін қолдандым, әр жолда 20 таңбадан тұратын 4 жолды ақпарат алуға мүмкіндік беретін пернетақта келесі мәзірді ұсынады:
1 -ден 9 -ға дейін = локо -адрес * = бағыт 0 = шамдар # = 1 -ден 8 -ге дейінгі пернелердің функция мәзірі
Arduino Pro Mini эскизінің негізгі сипаттамасы: Кодтың бұл жолы DCC хабарламасын HEX форматында реттейді. хабар Хабарлама [MAXMSG] = {
{{0xFF, 0, 0xFF, 0, 0, 0, 0}, 3}, // бос хабар
{{locoAdr, 0, 0, 0, 0, 0, 0}, 3} // 3 байттық адрес
};
Әр локо үшін параметрлерді сақтау үшін массивтер сериясы келесідей орнатылады:
int la [20]; // локо сандарды ұстауға арналған массив
int sa [20]; // жылдамдық мәндерін ұстауға арналған массив
int fda [20]; // dirі ұстауға арналған массив
int fla [20]; // шамдарды ұстауға арналған массив
int f1a [20]; // көңілді өткізуге арналған массив1…..
int f8a [20]; // көңілді өткізуге арналған массив8
Біз жүріп жатқанда DCC нұсқауларын өзгертуді қосу үшін:
Жылдамдық нұсқаулары үшін: void түзөтуге_сұраныс (struct Message & x) {
x.data [0] = locoAdr;
x.data [1] = 0x40; // 28 қадамдық жылдамдықпен locoMsg}
Функционалды нұсқаулар үшін:
void o'zgarishlar_group1 (құрылым Хабарлама және x) {
x.data [0] = locoAdr;
x.data [1] = 0x80; // locoMsg бірінші топтық нұсқаулықпен 0x80}
Эскиздің негізгі циклы:
void loop (void) {if (read_locoSpeed ()) {assemble_dcc_msg_speed ();
send_data_1 (); // деректерді сымсыз жіберу
кешіктіру (10);
send_data_3 (); // СКД дисплейінде мәліметтерді көрсету
send_data_4 (); // деректерді сериялық мониторда көрсету}
if (read_function ()) {
assemble_dcc_msg_group1 ();
send_data_1 ();
кешіктіру (10);
send_data_3 (); }}
Жылдамдық өзгерген кезде деректерді жаңартыңыз:
boolean read_locoSpeed () Бұл локо адресін, жылдамдықты немесе бағыттың жаңа параметрін анықтайды және сәйкесінше HEX «деректеріне» түзетулер енгізеді. Мұнда мен 28 жылдамдық қадамын белгіледім және NMRA S 9.2 стандартына сәйкес келу үшін жылдамдық деректерін іздеу кестесінен табу керек. 'speed_step ()' ішінде
void speed_step () {switch (locoSpeed) {
1 жағдай: деректер | = 0x02; үзіліс;
2 -жағдай: мәліметтер | = 0x12; үзіліс;
3 жағдай: деректер | = 0x03; үзіліс;
………
28 жағдай: деректер | = 0x1F; үзіліс; }}
Функциялар өзгерген кезде деректерді жаңартыңыз:
логикалық оқу_функциясы ()
if (fla [locoAdr] == 0) {деректер = 0x80;
} // фаралар сөнеді
егер (fla [locoAdr] == 1) {
деректер = 0x90;
} // фаралар қосулы
Әр функция үшін:
if (f2a [locoAdr] == 0) {деректер | = 0; }. // 2 -функция өшірулі
егер (f2a [locoAdr] == 1) {
деректер | = 0x02; // «Деректер» бойынша 2 -функция әр функция үшін ['| =' қосындысын немесе] HEX кодтарын біріктіру арқылы құрылады.
3 -қадам: қабылдағыш
H-көпірге берілетін DCC сигналын беру үшін Arduino Pro Mini 5 және 6 түйреуіштері қолданылатын схема көрсетілген. H-көпір жұптары ток өткізгіштігін арттыру үшін параллель қосылған. Локо тартатын токқа байланысты, 16 істікшелі DIP құрылғысына жылытқышты бекіту қажет болуы мүмкін немесе ауыр H-көпірі сыртқы жағынан қосылуы мүмкін.
Arduino эскизі жүктеу үшін бекітілген. DCC сигналы 2 МГц жиілігінде жұмыс істейтін сағаттан жасалған.
void SetupTimer2 () бұл тапсырманы орындайды.
Сағатқа DCC деректеріндегі '1' үшін 'қысқа импульстар' (58us) және DCC деректеріндегі '0' үшін 'ұзақ импульстар' (116us) кіреді.
Бос цикл радиодан деректерді алады, ал егер жарамды жол табылса, деректер DCC деректеріне түрлендіріледі.
void loop (void) {if (radio.available ()) {bool done = false; жасалды = radio.read (inmsg, 1); // алынған мәліметтерді оқу
char rc = inmsg [0]; // осы массивке оқылатын таңбаны қойыңыз
егер (rc! = 0) {. // егер таңба нөлге тең болмаса
inString.concat (rc); // хабарды құру}
if (rc == '\ 0') {// егер таңба '/0' хабардың соңы болса
Serial.println (inString); // жинақталған хабарды басып шығарыңыз
жол (); // DCC нұсқауларын алу үшін жолдық хабарламаны құрудан бас тартыңыз
} } }
4 -қадам: Locos іске қосыңыз
Бір пойызда бірнеше пойыздың жүруіне байланысты ақпараттың үзілуіне жол бермеу үшін, әр локо мен жүк көлігі үшін доңғалақтар мен жол арасындағы контактілерді ажырату қажет.
Жолдың жағдайына қарамастан ақысыз жүретін пойыздардан ләззат алыңыз - бұл қандай айырмашылық! Ешқандай қиындық, старт-тоқтау және тазалау қажет емес.
Мен қолданған аккумуляторлар қайта зарядталатын LLoytron AA x 12. Мен оларға бір уақытта 6 зарядтайтын зарядтағыш құрдым. (нұсқаулықты қараңыз)
Ұсынылған:
Steampunk пойызы: 5 қадам (суреттермен)
Steampunk пойызы: Мен досымнан мүгедектер арбасына арналған базаны алу бақытына ие болдым. Мен оны іске қосу үшін батареяның екеуін де ауыстыруым керек болды, бірақ мұндай әмбебап тіреуіш платформаға төлеуге аз ғана баға болды. Мен шештім
Intel автоматтандырылған бау -бақша жүйесі: 16 қадам (суреттермен)
Intel автоматтандырылған бау -бақша жүйесі: [Бейнені ойнату] Барлығына сәлем !!! Бұл менің Intel Edison -дағы бірінші нұсқаулық. Бұл нұсқаулық Intel Edison және басқа да арзан электронды құралдарды қолдану арқылы кішкене кастрюльді өсімдіктер мен шөптерді автоматты түрде суару (тамшылатып суару) жүйесін жасауға арналған нұсқаулық болып табылады
Сымсыз бақша жүйесі: 7 қадам
Сымсыз бақша жүйесі: Бұл жоба Arduino -ға негізделген және " модульдерді " Сізге өсімдіктерді суаруға, ауа температурасы мен топыраққа және жаңбырға кіруге көмектесу үшін жүйе 2,4 ГГц жиілігінде сымсыз жұмыс істейді және деректерді жіберу мен алу үшін NRF24L01 модульдерін қолданады
Raspbian Stretch -те TPN WN7200ND USB сымсыз адаптері бар елу метрлік сымсыз кіру нүктесі: 6 қадам
Raspbian Stretch -те TP Link WN7200ND USB сымсыз адаптері бар елу метрлік сымсыз кіру нүктесі: Raspberry Pi қауіпсіз сымсыз кіру нүктелерін жасау үшін тамаша, бірақ оның ауқымы жақсы емес, мен оны кеңейту үшін TP Link WN7200ND USB сымсыз адаптерін қолдандым. Мен мұны қалай істеу керектігін айтқым келеді Неліктен мен маршрутизатордың орнына таңқурай пиін қолданғым келеді? T
Талшықты -оптикалық және жарық диодты миниатюралық бақша жарығы: 10 қадам (суреттермен)
Талшықты -оптикалық және жарық диодты шамдар: бұл жоба гүлдер, жапырақтар мен шөптерге толы кішкентай бақшаны жарықтандыру үшін светодиодтар мен оптикалық талшықты қолданады. Қорап акрилден жасалған, ол 9 вольтты аккумулятормен жұмыс істейді және батареяға оңай қол жеткізу үшін төменгі жағында жылжымалы есігі бар. Мен жинадым