Բովանդակություն:
Video: Garden Train - Arduino Wireless NMRA DCC: 4 քայլ (նկարներով)
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:48
Մահացած երկաթուղային համակարգի վերաբերյալ DCC- ի հետ նախկինի պես, ես գաղափարն ավելի զարգացրեցի ձեռքի DCC հրամանատարական կայանի միջոցով `ստեղնաշարով և LCD էկրանով: Հրամանատարական կայանը պարունակում է NMRA DCC հրահանգների համար պահանջվող բոլոր ծածկագրերը, սակայն ռելսերին միանալու փոխարեն տվյալները փոխանցվում են RF24L01+ ռադիո մոդուլով `բեռնատարում կամ լոկոյի տակ տեղադրված ընդունիչին, որտեղ սենյակը թույլ է տալիս:
Իհարկե, ձեր լոկոները պետք է հագեցած լինեն շարժիչի շարժիչներին համապատասխանող բեռնվածքի ունակության ապակոդավորիչով:
Քայլ 1: Համակարգի նախագծում
Arduino Pro Mini- ն դիզայնի հիմքում է: Օգտագործելով Fritzing- ը `միացումը զարգացնելու և PCB- ներ արտադրելու համար:
Ես կարողացա օգտագործել նույն PCB- ն ինչպես հաղորդիչի, այնպես էլ ընդունիչի համար `այդպիսով խնայելով որոշ ծախսեր:
Հաղորդիչն ունի միացումներ ստեղնաշարի և LCD- ի համար, մինչդեռ ստացողը դրանք չի պահանջում և օգտագործում է H- կամուրջը `լոկոյի համար DCC ելքը մատակարարելու համար:
Հետագա զարգացումը ներառում է կապեր ավելի մեծ H կամրջի համար, եթե դա պահանջվում է ավելի հզոր տեղանքների համար:
PCF8574- ը կարող է ջնջվել, եթե օգտագործում եք LCD էկրան, որն ուղեկցվում է ուսապարկով, ինչը թույլ է տալիս Arduino- ի SCA / SCL միացումներին սնուցել էկրանը ՝ օգտագործելով միայն 2 լար: Մասերի ցուցակ. Ընդհանուր = մոտ £ 60 DCC հրամանատարական կայանի համար + 1 ընդունիչ Լրացուցիչ ընդունիչների արժեքը = Յուրաքանչյուրը 10,00 £ + մարտկոցներ
Arduino Pro Mini. x 2 = 4.00
4x3 թաղանթային ստեղնաշար = 3.00 £
20 x 4 LCD էկրան = 7.00 ֆունտ
PCF5874 = 1.80 £
NRF24L01+: ռադիո մոդուլներ x 2 = £ 5.80
PCB- ի արտադրություն 10 զեղչով (կամ կարող է օգտագործվել Vero տախտակ) = 24 ֆունտ ստեռլինգ կամ 4.80 ֆունտ ստեռլինգ `2 անջատման համար
3.3 v Կարգավորիչ = 0.17 £ (RS Comp- ից 25 փաթեթ)
5 վ կարգավորիչ LM7805 = 30 0.30
H- կամուրջ SN754410ne = 3.00 ֆունտ
Lloytron- ը վերալիցքավորվում է 2700 maH AA մարտկոցներ x 12 = 22,00 £: (ցածր maH գնահատված մարտկոցներն ավելի էժան են)
Կոնդենսատորներ, կաթսաներ, կապում, միակցիչներ և այլն = 00 2.00 մոտ
Պարիսպ 190x110x60 մմ = £ 8,00
Հաղորդիչ - հեռախոսի լիցքավորիչ / մարտկոց = 2,00 £
Քայլ 2: Հաղորդիչ
Շղթայի դիագրամը ցուցադրվում է, որտեղ Arduino Pro Mini- ի D2- ից D8 կապերը միացված են ստեղնաշարին: Արագության ճշգրտման համար 100k ohm պոտենցիոմետրը միացված է անալոգային կապին A0- ին: SDF- ի և SCL- ի կապումներն PCF8574 չիպը միացված է A4 և A5 Arduino Pro Mini- ի վրա `զոդված լարերի միջոցով Pro Mini- ի վերին շերտի կապումներին:
Arduino էսքիզը կցված է ներբեռնման համար:
Ես օգտագործել եմ 20 x 4 LCD էկրան, որը թույլ է տալիս 4 տող տեղեկատվություն մեկ տողում 20 նիշով: Ստեղնաշարը տրամադրում է հետևյալ ընտրացանկը.
1 -ից 9 = տեղանքի հասցե * = ուղղություն 0 = լույսեր # = Գործառնական ընտրացանկ 1 -ից 8 -ի բանալիների համար
Arduino Pro Mini էսքիզի հիմնական նկարագրությունը. Կոդի այս տողը դասավորում է DCC հաղորդագրությունը HEX ձևաչափով: struct Հաղորդագրություն msg [MAXMSG] = {
{{0xFF, 0, 0xFF, 0, 0, 0, 0}, 3}, // անգործուն հաղորդագրություն
{{locoAdr, 0, 0, 0, 0, 0, 0}, 3} // 3 բայթ հասցե
};
Յուրաքանչյուր loco- ի պարամետրերը պահելու համար մի շարք զանգվածներ ստեղծվում են հետևյալ կերպ.
int la [20]; // զանգված `loco համարները պահելու համար
int sa [20]; // զանգված արագության արժեքները պահելու համար
int fda [20]; // զանգված ՝ դիր պահելու համար
int fla [20]; // լույսեր պահելու զանգված
int f1a [20]; // զվարճանք պահելու զանգված 1…..
int f8a [20]; // զանգված զվարճալի պահելու համար 8
Որպեսզի DCC- ի հրահանգները կարողանան փոփոխվել, մենք շարունակում ենք.
Արագության ցուցումների համար. Void amend_speed (struct Message & x) {
x.data [0] = locoAdr;
x.data [1] = 0x40; // locoMsg արագության 28 քայլով}
Գործառնական հրահանգների համար.
void amend_group1 (struct Message & 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 (); // ցուցադրել տվյալները LCD էկրանին
send_data_4 (); // ցուցադրել տվյալները սերիական մոնիտորի վրա}
եթե (կարդալ_ֆունկցիան ()) {
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) {data = 0x80;
} // գլխի լույսերը անջատված են
եթե (fla [locoAdr] == 1) {
տվյալներ = 0x90;
} // գլխի լույսերը միացված են
Յուրաքանչյուր գործառույթի համար.
եթե (f2a [locoAdr] == 0) {տվյալ | = 0; }. // Ֆունկցիան 2 անջատված է
եթե (f2a [locoAdr] == 1) {
տվյալներ | = 0x02; // Ֆունկցիան 2 «տվյալների» վրա կառուցվում է ՝ համակցելով ['| =' բաղադրությունը բիթային կամ] HEX կոդերի յուրաքանչյուր գործառույթի համար:
Քայլ 3: Ստացող
Circuitույց է տրվում միացման սխեմա, որտեղ Arduino Pro Mini- ի 5-րդ և 6-րդ կապերը օգտագործվում են H- կամրջին մատակարարվող DCC ազդանշանը տրամադրելու համար: H կամրջի զույգերը զուգահեռաբար միացված են ՝ ընթացիկ հզորությունը մեծացնելու համար: Կախված լոկոյի հոսանքի հոսանքից, կարող է պահանջվել, որ ջեռուցիչը կցվի 16 փին DIP սարքին, կամ ծանրակշիռ H կամուրջը կարող է միացվել արտաքինից:
Arduino- ի էսքիզը կցված է ներբեռնման համար: DCC ազդանշանը կազմված է 2 ՄՀց արագությամբ աշխատող ժամացույցից
void SetupTimer2 () - ն անում է այս աշխատանքը:
Theամացույցը ներառում է «կարճ իմպուլսներ» (58us) DCC տվյալների «1» - ի համար և «երկար իմպուլսներ» (116us) ՝ «0» - ի DCC տվյալների մեջ:
Օղակը դատարկ է, ստանում է տվյալներ ռադիոյից և եթե վավեր տող է հայտնաբերվում, տվյալները փոխակերպվում են 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') {// if նիշը '/0' հաղորդագրության վերջն է
Serial.println (inString); // տպել հավաքված հաղորդագրությունը
տող (); // կառուցել լարային հաղորդագրությունը ՝ DCC հրահանգներ ստանալու համար
} } }
Քայլ 4: Գործարկեք Locos- ը
Նույն ուղու վրա բազմաթիվ գնացքներ վարելիս տվյալների ընդհատումից խուսափելու համար դուք պետք է անջատեք անիվների և ուղու միջև եղած շփումները յուրաքանչյուր աշխատող մեքենայի և բեռնատարի համար:
Վայելեք անվճար ընթացող գնացքներ ՝ անկախ ուղու պայմաններից, ինչ տարբերություն: Ոչ մի դժվարություն, առանց մեկնարկի և մաքրման կարիք չկա:
Իմ օգտագործած մարտկոցները վերալիցքավորվում են LLoytron AA x 12. Ես հատուկ նրանց համար կառուցել եմ լիցքավորիչ, որը լիցքավորում է միաժամանակ 6: (տես ուսանելի)
Խորհուրդ ենք տալիս:
Switch-Adapt Toys: Steam Train Toy Made Accessible: 7 քայլ (նկարներով)
Switch-Adapt Toys: Steam Train Toy Made Accessible! Շատ դեպքերում այն երեխաները, ովքեր պահանջում են հարմարեցված խաղալիքներ, չեն կարողանում մտնել
Smart IoT Garden: 10 քայլ (նկարներով)
Smart IoT Garden- Այս խրատելիքը ձեզ ցույց կտա, թե ինչպես կառուցել խելացի IoT այգի (ես այն անվանում եմ. Green Guard), որը ջրում է ձեր
Smart Indoor Herb Garden: 6 քայլ (նկարներով)
Smart Indoor Herb Garden: Այս հրահանգում ես ձեզ ցույց կտամ, թե ինչպես եմ ստեղծել իմ խելացի փակ խոտաբույսը: Ես մի քանի ոգեշնչում ունեի այս նախագծի համար, առաջինը `ես որոշակի հետաքրքրություն ունեի տան Aerogarden մոդելների նկատմամբ: Բացի այդ, ես ունեի չօգտագործված Arduino Mega w
Raspberry Pi Powered IOT Garden: 18 քայլ (նկարներով)
Raspberry Pi Powered IOT Garden. Այս նախագծի հիմնական նպատակներից մեկն այն էր, որ կարողանայի պահպանել այգու բարեկեցությունը `օգտագործելով բաների ինտերնետի (IoT) հզորությունը: Ներկայիս գործիքների և ծրագրակազմի բազմակողմանիությամբ մեր տնկիչը ինտեգրված է այնպիսի տվիչներով, որոնք
DIY Rotary Garden (TfCD). 12 քայլ (նկարներով)
DIY Պտտվող այգի (TfCD). Բարև: Մենք հավաքեցինք մի փոքրիկ ձեռնարկ, թե ինչպես պատրաստել պտտվող այգու ձեր սեփական փոքր տարբերակը, որը, մեր կարծիքով, կարող է ներկայացնել ապագայի այգեգործությունը: Օգտագործելով նվազեցված քանակությամբ էլեկտրաէներգիա և տարածք, այս տեխնոլոգիան հարմար է արագ