Სარჩევი:
- ნაბიჯი 1: Arduino კოდი - ბრძანების სადგური კლავიატურით
- ნაბიჯი 2: Arduino კოდი - TFT ჩვენება
- ნაბიჯი 3: მონაწილეობის კონტროლერი
ვიდეო: მოდელის რკინიგზა - DCC სარდლობის სადგური Arduino– ს გამოყენებით 3 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:19
განახლებულია 2018 წლის აგვისტოში-იხილეთ ახალი ინსტრუქცია:
განახლება 2016 წლის 28 აპრილი: ახლა 16 მონაწილეობა / ქულების კონტროლის შესაძლებლობა სარდლობის სადგურზე. ამომრჩეველი T1 - T8 ხელმისაწვდომია "B" გასაღებით
განახლება 2016 წლის 10 მარტი:
ახლა დაემატა 8 მონაწილეობის / პუნქტის კონტროლის შესაძლებლობა სარდლობის სადგურს. Arduino კოდი შესაბამისად განახლდა NMRA სტანდარტული პაკეტის გამოყენებით შემსრულებლებისათვის (ასევე დაფუძნებულია Lenz / Atlas Compact მონაცემთა პაკეტების კვლევაზე ჩართულობის კონტროლისათვის).
ამომრჩეველთა რაოდენობა T1 - T8 ხელმისაწვდომია 'B' ღილაკის საშუალებით
იხილეთ ინსტრუქცია მონაცემთა პაკეტის მიმღების სქემის შესახებ და საჭიროა Arduino კოდი.
განახლება 2016 წლის 18 იანვარი:
მე დავამატე მიმდინარე გრძნობის რეზისტორი (1k5 ohm) და კონდენსატორი (10 uf) წრედში და შევცვალე Arduino კოდი, რომ შეწყვიტოს ენერგია, როდესაც პიკის დენი აღემატება 3200 mAmps. H- ხიდის სპეციფიკაში ნათქვამია გამომავალი გრძნობის დენი 377 uA 1 Amp დატვირთვაში.
1.5 k ohm რეზისტორი აწვდის 0.565 ვოლტს Amp– ზე ანალოგიურ პინზე 6. ანალოგურ შეყვანის 1023 საფეხურით, ეს იძლევა 0.565 * 1023 /5 = 116 თითო Amp დატვირთვას.
A = 100 * (analogRead (AN_CURRENT)) / 116; A = A * 10; (მილიამპერებში შედეგის მისაღწევად)
მილიამპერებში დატვირთვის დენი ნაჩვენებია TFT- ზე
სრული 4x4 კლავიატურა მოიცავს F1- დან F8 ფუნქციებს და კიდევ 10 ლოკოს (1-19) '#' ღილაკის საშუალებით (რიცხვითი კლავიშების დამატება 10 ლოკოდან 10).
არდუინოს კოდი შეიცავს NMRA სტანდარტს ინსტრუქციის ბაიტებისთვის.
იხილეთ ბმული
www.nmra.org/sites/default/files/s-9.2.1_20…
(გვერდი 6 განსაკუთრებით აქტუალურია)
პაკეტები განლაგებულია სიჩქარის საფეხურების, გრძელი / მოკლე მისამართისა და ფუნქციური ჯგუფის ინსტრუქციის შესაბამისად.
ყველა ინსტრუქციის ბაიტს წინ უსწრებს '1' ბიტიანი პრეამბულა 11111111 (ან უსაქმური პაკეტი) რასაც მოჰყვება;
მაგალითად. 4 ბაიტიანი მისამართი 0 00000011 0 00111111 0 10000011 0 10111111
უდრის ლოკო 3 -ს, 128 სიჩქარის საფეხურს, წინ მიმართულებას და სიჩქარის საფეხურს 3 (ბოლო ბაიტი არის შეცდომის შემოწმება XOR)
მაგ. 3 ბაიტიანი მისამართი 0 00000011 0 10010000 0 10110011
უტოლდება ლოკო 3, ფუნქციის ჯგუფი 1, FL განათება პლუს XOR ბაიტი ('0' ბიტი ჰყოფს თითოეულ ბაიტს)
იხილეთ თანდართული სადემონსტრაციო ვიდეო loco 12 -ისთვის.
ფუნქციები F1 - F8 ხელმისაწვდომია "A" გასაღებით, DIR ('*' გასაღები = მიმართულება) FL ('0' გასაღები = განათება) და გასაღები '#' იძლევა ლოკუსებს 10 -დან 19 -მდე ციფრულ კლავიატურაზე. "D" გასაღები გამოიყენება "გადაუდებელი გაჩერების" მიზნით.
მადლობა სხვადასხვა პროვაიდერს ინტერნეტში DCC ინფორმაციის წყაროებისა და Arduino კოდისათვის.
კერძოდ, ეს პროექტი შთაგონებულია მაიკლ ბლანკით და მისი "Simple DCC - command station"
www.oscale.net/en/simpledcc
4x4 მატრიცული მასივი 16 გასაღები მემბრანული გადამრთველი კლავიატურა (ebay) £ 1.75
2.2 დიუმიანი 240x320 სერიული SPI TFT LCD ჩვენების მოდული (ebay) 19 7.19
UNIVERSAL 12V 5A 60W POWER SUPPLY AC ADAPTER (ebay) 49 6.49
ნანო V3.0 არდუინოსთვის CH340G 5V 16M თავსებადი ATmega328P (ebay) 2 x £ 3.30 = 60 6.60
საავტომობილო დრაივერის მოდული LMD18200T Arduino R3– სთვის (ebay) 6.99 ფუნტი
კონექტორები, მავთულები, ვერო დაფა, პოტენომეტრი დაახლოებით 3.50 ფუნტი
სულ 32.52 ფუნტი
ძირითადი ბრძანების სადგური tft ეკრანისა და 1 x ნანოს გარეშე იქნება 22.03 ფუნტი
[შენიშვნა: შესაძლებელია მეხსიერების ბარათის დამატება TFT ეკრანზე და კოდის შეცვლა შერჩეული ძრავების გამოსახატად, თუმცა ბიბლიოთეკის კოდები უნდა შეიცვალოს, რათა შეიქმნას მეტი მეხსიერება ესკიზისთვის. ესკიზის მიმდინარე ზომა მაქსიმალურია TFT Arduino Nano– სთვის]
მაიკლ ბლანკის ორიგინალური Arduino კოდი იყო ერთი ძრავისთვის, წინ / უკან მხოლოდ ფუნქციის კონტროლის, კლავიატურის და ეკრანის გარეშე.
მე შევცვალე კოდი, რომელიც მოიცავს 1 - 19 ძრავას, ჩვენების ეკრანს, მიმართულებას, განათებას, 8 ფუნქციას, გადაუდებელ გაჩერებას და ავტომატური დენის ლიმიტს.
LMD18200T ხიდს შეუძლია გაუძლოს 3 ამპერს, რაც მას შესაფერისია ყველა მასშტაბისთვის, მათ შორის G- სკალისთვის (ბაღის მატარებლები). მაგისტრალური ელექტრომომარაგება და ელექტრონიკა განკუთვნილია შიდა გამოყენებისთვის მხოლოდ იმ შემთხვევაში, თუ თქვენ არ შეძლებთ ამინდის მტკიცებულებას. მე მაქვს სარდლობის სადგური საზაფხულო სახლში, სადაც სარკინიგზო ხაზები კედლის გავლით გადის ტრასაზე.
ნაბიჯი 1: Arduino კოდი - ბრძანების სადგური კლავიატურით
მადლობას ვუხდი tvantenna2759- ს სქემის დიაგრამაში 2 შეცდომის აღნიშვნისათვის, სადაც Arduino კოდი არ ემთხვეოდა გაყვანილობას, რომელიც ახლა განახლებულია (21 ოქტომბერი 2017 წ.).
ახლა დაემატა 16 ამომრჩეველი სარდლობის სადგურს. იხილეთ ინსტრუქცია ჩართულობის / ქულების მიკროსქემის დიაგრამაზე Arduino Mini Pro მოდულის გამოყენებით.
შეცვლილი კოდი ჩართულობის კონტროლის ჩათვლით თან ერთვის ქვემოთ.
ძირითადი აქსესუარების დეკოდირების პაკეტი არის: 0 10AAAAAA 0 1AAACDDD 0 EEEEEEEE 1 ქულების კონტროლისთვის ლენზის მიერ გამოყენებული კომპაქტური / ატლასიდან გაანალიზებული მე გამოვიყენე შემდეგი ორობითი პაკეტის ფორმატი 1 და 2 ბაიტებისთვის: tunAddr = 1 გამოსვლა 1a: 1000 0001 1111 1000 / ამომრჩეველთა 1 ბ: 1000 0001 1111 1001 მონაწილეობა 2 ა: 1000 0001 1111 1010 / აქტივობა 2 ბ: 1000 0001 1111 1011 ამომრჩეველი 3 ა: 1000 0001 1111 1100 / აქტივობა 3 ბ: 1000 0001 1111 1101 ამომრჩეველი 4 ა: 1000 0001 1111 1110 / აქტივობა 4b: 1000 0001 1111 1111 tunAddr = 2 ----------------------------------------- ------------------------------------------------------ ----------------- მონაწილეობა 5 ა: 1000 0010 1111 1000 / აქტივობა 5 ბ: 1000 0010 1111 1001 აქტივობა 6 ა: 1000 0010 1111 1010 / ამომრჩეველი 6 ბ: 1000 0010 1111 1011 ამომრჩეველი 7 ა: 1000 0010 1111 1100 / მონაწილეობა 7 ბ: 1000 0010 1111 1101 ამომრჩეველი 8 ა: 1000 0010 1111 1110 / ამომრჩეველი 8 ბ: 1000 0010 1111 1111 ----------------------- ------------------------------------------------------ -------------------------------------- აქტივობა 9 ა: 1000 0011 1111 1000 / აქტივობა 9 ბ: 1000 0011 1111 1001 და სხვ. ………
ამონაწერი მოდიფიცირებული კოდიდან: დაამატეთ კიდევ 2 'სტრუქტური' შეტყობინების განახლება მოერიდეთ amend_tun1 (struct შეტყობინება & x) {x.data [0] = 0x81; // აქსესუარის დეკოდირება 0x80 & მისამართი 1 x.data [1] = 0; }
void amend_tun2 (struct შეტყობინება & x) {x.data [0] = 0x82; // აქსესუარის დეკოდირება 0x80 & მისამართი 2 x.data [1] = 0; }
დაამატეთ ახალი სიცარიელე ამომრჩეველთაათვის: ლოგიკური წაკითხვის_გამოყენება () {დაგვიანება (20);
ლოგიკური შეცვლილი_ტი = ყალბი; get_key ();
if (key_val> = 101 && key_val <= 404 && turn == 1) {
მონაცემები = 0xf8; // = ორობითი 1111 1000
amend_tun1 (msg [1]);
}
if (key_val> = 505 && key_val <= 808 && turn == 1) {
მონაცემები = 0xf8; // = ორობითი 1111 1000
amend_tun2 (msg [1]);
}
if (key_val == 101 && turn == 1) {
თუ (tun1 == 1) {
მონაცემები | = 0; // t1a
შეიცვალა_t = მართალია;}
თუ (tun1 == 0) {
მონაცემები | = 0x01; // t1b
შეიცვალა_t = მართალია;}
}
თუ (key_val == 202 && turn == 1) {
თუ (tun2 == 1) {
მონაცემები | = 0x02; // t2a
შეცვლილი_ტი = ჭეშმარიტი;
}
თუ (tun2 == 0) {
მონაცემები | = 0x03; // t2b
შეცვლილი_ტი = ჭეშმარიტი; }
}
თუ (key_val == 303 && turn == 1) {
თუ (tun3 == 1) {
მონაცემები | = 0x04; // t3a
შეცვლილი_ტი = ჭეშმარიტი;
}
თუ (tun3 == 0) {
მონაცემები | = 0x05; // t3b
შეიცვალა_t = მართალია;}
}
if (key_val == 404 && turn == 1) {
თუ (tun4 == 1) {
მონაცემები | = 0x06; // t4a
შეცვლილი_ტი = ჭეშმარიტი;
}
თუ (tun4 == 0) {
მონაცემები | = 0x07; // f4b
შეიცვალა_t = მართალია;}
}
if (key_val == 505 && turn == 1) {
თუ (tun5 == 1) {
მონაცემები | = 0; // t5a
შეცვლილი_ტი = ჭეშმარიტი;
}
თუ (tun5 == 0) {
მონაცემები | = 0x01; // t5b
შეიცვალა_t = მართალია;}
}
და ა.შ ………………………
ნაბიჯი 2: Arduino კოდი - TFT ჩვენება
ჩვენების სქემა უცვლელი რჩება შეცვლილი კოდით, რათა ნახოთ 16 მონაწილეთა სტატუსი. შენიშვნა: ბიბლიოთეკის კოდი იკავებს თითქმის ყველა ესკიზის კოდის მეხსიერებას, რაც მცირე ადგილს ტოვებს ახალი ფუნქციებისთვის. თუ ვინმეს აქვს აქ გამოყენებული TFT ბიბლიოთეკის უფრო ეფექტური ფაილი, გთხოვთ შემატყობინოთ.
ნაბიჯი 3: მონაწილეობის კონტროლერი
იხილეთ ინსტრუქცია, თუ როგორ უნდა გააკეთოთ ჩართულობა / ქულების კონტროლერი.
სრული წრე აკონტროლებს 16 წერტილს და 15 აქსესუარს, როგორიცაა შუქები, ხმები, ტურნირი და ა.
გირჩევთ:
ვარსკვლავური ომების ყურება სარდლობის ზოლში: 14 ნაბიჯი
ვარსკვლავური ომების ყურება ბრძანების სტრიქონში: სისუფთავე ხრიკი, რომლის გაკეთება შეუძლია ყველა ფანჯრის კომპიუტერს რამდენიმე მარტივი ბრძანებით
ლეპტოპის Touchpad კონტროლირებადი მოდელის რკინიგზა - PS/2 Arduino ინტერფეისი: 14 ნაბიჯი
ლეპტოპის Touchpad კონტროლირებადი მოდელის რკინიგზა | PS/2 Arduino ინტერფეისი: ლეპტოპის სენსორული პანელი არის ერთ -ერთი შესანიშნავი მოწყობილობა, რომელიც გამოიყენება როგორც მიკროკონტროლერის პროექტების შესასვლელი. ასე რომ დღეს, მოდით განვახორციელოთ ეს მოწყობილობა არდუინოს მიკროკონტროლით მოდელის რკინიგზის გასაკონტროლებლად. PS/2 სენსორული პანელის გამოყენებით, ჩვენ შევძლებთ 3 ტ
მარტივი ავტომატიზირებული წერტილოვანი მოდელის რკინიგზა გადის ორ მატარებელში: 13 ნაბიჯი (სურათებით)
მარტივი ავტომატიზირებული წერტილოვანი მოდელის რკინიგზა მუშაობს ორი მატარებლით: Arduino მიკროკონტროლერები რკინიგზის მოდელის განლაგების ავტომატიზაციის შესანიშნავი საშუალებაა მათი დაბალი ხელმისაწვდომობის, ღია კოდის აპარატურისა და პროგრამული უზრუნველყოფის და დიდი საზოგადოების დასახმარებლად. სარკინიგზო მაგისტრალებისთვის, არდუინოს მიკროკონტროლერებს შეუძლიათ დაამტკიცონ, რომ არიან
ავტომატური წერტილოვანი მოდელის რკინიგზა ეზოთი: 10 ნაბიჯი (სურათებით)
ავტომატური წერტილოვანი მოდელის რკინიგზა ეზოთი: Arduino მიკროკონტროლერები ხსნიან დიდ შესაძლებლობებს მოდელის რკინიგზაში, განსაკუთრებით მაშინ, როდესაც საქმე ეხება ავტომატიზაციას. ეს პროექტი არის ასეთი პროგრამის მაგალითი. ეს არის ერთ -ერთი წინა პროექტის გაგრძელება. ეს პროექტი მოიცავს პოინ
ბიუჯეტის 3D მოდელის მოდელის ჯიბის ნაკრები: 4 ნაბიჯი
ბიუჯეტის 3D მოდერერის ჯიბის ნაკრები: აუცილებელი ინსტრუმენტები, რომლებიც გჭირდებათ იმისათვის, რომ შემდგომში მოახდინოთ ობიექტის მოდელირება თქვენს კომპიუტერში