সুচিপত্র:
ভিডিও: স্মার্ট ট্রেন সিস্টেম: 4 টি ধাপ
2024 লেখক: John Day | [email protected]. সর্বশেষ পরিবর্তিত: 2024-01-30 08:01
নিরাপত্তা বৃদ্ধি, দুর্ঘটনা রোধ, এবং দুর্ঘটনা ঘটলে সাহায্য করার জন্য ইতিবাচক এবং উৎপাদনশীল প্রতিক্রিয়া বৃদ্ধি করার জন্য ডিজাইন করা হয়েছে।
ধাপ 1: যন্ত্রাংশ এবং উপকরণ
উপরের ছবিগুলি নিচের অংশের তালিকার ক্রমে রাখা হয়েছে:
অংশ তালিকা
1) এক রাস্পবেরি পিআই 3 - মডেল বি
2) একটি ব্রেডবোর্ড
3) তারগুলি (উপরে থেকে নীচে) - এক শক্তি, এক ইথারনেট, এক অ্যাডাপ্টার
4) এক Servo মোটর
5) একটি 3D মুদ্রিত রেলরোড গেট
6) দুটি LEDs (বিশেষত লাল এবং সবুজ)
7) একটি পুশ বোতাম
8) দশ জাম্পার তারের
9) চারজন প্রতিরোধক
10) MATLAB সহ ল্যাপটপ বা ডেস্কটপ
পদক্ষেপ 2: কনফিগারেশন
উপরে একাধিক কোণ থেকে কনফিগার করার ছবি রয়েছে:
পিন লোকেশন (লোয়ার কেস লেটার এবং তারপরে একটি সারি নম্বর) বর্তমান প্রবাহের পরে ক্রম অনুসারে তালিকাভুক্ত করা হয়েছে।
তারের:
j19 থেকে i47
j8 থেকে b50
b5 থেকে Servo
c6 থেকে Servo
b7 থেকে servo
a13 থেকে j7
a17 থেকে LED
LED থেকে a37
e40 থেকে j20
j53 থেকে j18
j7 থেকে LED
LED থেকে j6
বোতাম:
e54 থেকে h51
প্রতিরোধক:
d40 থেকে b37
c50 থেকে d54
i51 থেকে j47
ধাপ 3: কোড এবং যুক্তি
আমাদের ট্রেন ব্যবস্থার লক্ষ্য হল নিরাপত্তা বৃদ্ধি করা এবং রেলক্রসিংয়ে সম্ভাব্য মারাত্মক দুর্ঘটনার ঝুঁকি কমানো। এটি অর্জনের জন্য, আমাদের সিস্টেমে চালকদের জন্য একটি ট্রেন সতর্কীকরণ ব্যবস্থা রয়েছে, ট্র্যাক অতিক্রম করতে গাড়িগুলিকে আটকাতে একটি শারীরিক বাধা, এবং প্রাথমিক সতর্কতা ব্যবস্থা ব্যর্থ হলে কন্ডাক্টরের জন্য একটি ব্যাকআপ জরুরী বোতাম টিপুন।
GUI কন্ডাকটর অপারেটিং সিস্টেম:
উপরে দেখানো GUI, কন্ডাকটর ব্যবহারের জন্য তৈরি করা হয়েছে কারণ তারা ট্র্যাকের যেসব এলাকায় গাড়ি ট্রাফিক রেলপথ ক্রসিং রয়েছে সেখান দিয়ে ট্রেন চালাচ্ছে।
উপরের ডান দিকের কোণে, একটি আলো রয়েছে যা কন্ডাক্টরকে জানিয়ে দেয় যদি আসন্ন রেলরোড ক্রসিং গেট বন্ধ থাকে এবং প্রয়োজনে কন্ডাক্টরকে গেট খুলতে বা বন্ধ করতে দেয়। তার নীচে, ক্যামেরা থেকে ট্রেন পাস করে ফিড দেখানো হয়। নীচের বাম কোণে, ট্রেনের অবস্থান ক্রমাগত একটি গ্রাফে এবং গ্রাফের নীচে প্লট করা হয়, একটি দিনে ট্রেনটি সম্পন্ন হওয়া ল্যাপের সংখ্যা বলা হয়েছে। অবস্থান গ্রাফের উপরে, একটি জরুরী বোতাম এবং স্থিতি বিবৃতি রয়েছে। এটি ট্র্যাকের উপর গাড়ি থাকলে বা নিরাপত্তা গেট সঠিকভাবে কাজ না করলে কন্ডাক্টর জরুরী অবস্থার জন্য সংকেত দিতে পারে।
কোড:
classdef মাইক্রো
বৈশিষ্ট্য (অ্যাক্সেস = পাবলিক)
UIFigure matlab.ui. চিত্র
RailwaygatestatusLampLabel matlab.ui.control. Label
গেটল্যাম্প matlab.ui.control. Lamp
OpenGateButton matlab.ui.control. Button
CloseGateButton matlab.ui.control. Button
UIAxes matlab.ui.control. UIAxes
জরুরী বোতাম স্ট্যাটাস ল্যাম্প লেবেল matlab.ui.control. Label
জরুরী বোতাম স্ট্যাটাস ল্যাম্প matlab.ui.control. Lamp
অস্বাভাবিক শর্তাবলী matlab.ui.control. Label
UIAxes2 matlab.ui.control. UIAxes
EF230Group6Label matlab.ui.control. Label
IanAllishKellyBondIanDaffronLabel matlab.ui.control. Label
LoopsCompletedLabel matlab.ui.control. Label
লেবেল matlab.ui.control. Label
শেষ
বৈশিষ্ট্য (অ্যাক্সেস = ব্যক্তিগত)
কাউন্টার int16
শেষ
পদ্ধতি (অ্যাক্সেস = পাবলিক)
ফাংশন টাইমার কলব্যাক (অ্যাপ, এসআরসি, ইভেন্ট)
app. Temp. Text = int2str (app.counter);
app.counter = app.counter + 1;
প্রোগ্রামের প্রয়োজনীয় সকল ভেরিয়েবলকে কল করুন - - - - - - - - - - - - -
গ্লোবাল rpi
গ্লোবাল এস
বৈশ্বিক উন্মুক্ত
বিশ্বব্যাপী বন্ধ
গ্লোবাল ক্যাম
বিশ্বব্যাপী মি
বৈশ্বিক ইএমএস
বৈশ্বিক t_count
%------------------------- ট্রেন আর্ম বিভাগ --------------------- ---------
খোলা থাকলে == 0
লেখার অবস্থান (গুলি, 50)
app.gateLamp. Color = 'সবুজ';
শেষ
যদি বন্ধ == 0
লেখার অবস্থান (গুলি, 120)
app.gateLamp. Color = 'লাল';
শেষ
%---------------------- ক্যামেরার মাধ্যমে গতি সনাক্তকরণ -----------------------
যখন সত্য
img = স্ন্যাপশট (ক্যাম);
ছবি (img);
app. UIAxes (drawnow)
শেষ
%---------------------- বাহু খোলা/বন্ধ ----------------------- --------------
যদি পড়ুন
i = 40:.5: 150 %সেতু উত্থাপন করে
লেখার অবস্থান (গুলি, আমি)
শেষ
i = 1:10 %লুপ জ্বলজ্বল করে লাল আলো x পরিমাণে
লিখুন ডিজিটালপিন (rpi, 13, 1)
বিরতি (.5)
লিখুন ডিজিটালপিন (rpi, 13, 0)
বিরতি (.5)
শেষ
writePosition (গুলি, 50)%গেট ডাউন রাখুন
শেষ
%-------------------- মোবাইল ফোন সাপোর্ট/প্লট ------------------------ -
m. AxcelerationSensorEnabled = 1
m.logging = ১
তথ্য = শূন্য (200, 1); রোলিং প্লটের জন্য %intialize ডেটা
চিত্র (app. UIAxes2)
p = চক্রান্ত (তথ্য)
অক্ষ ([xbounda, ybounds])
বিরতি (1)
টিক
যখন toc <30 %30 সেকেন্ডের জন্য চালান
[a, ~] = accellog (m);
যদি দৈর্ঘ্য (a)> 200
ডেটা = একটি (শেষ -199: শেষ, 3);
অন্য
তথ্য (1: দৈর্ঘ্য (a)) = a (:, 3);
শেষ
%redraw প্লট
p. YData = ডেটা;
আঁকা
শেষ
%------------------ হঠাৎ পিক্সেল পরিবর্তন ---------------------------- ------
x1 = img; % পাই এর ক্যামেরা বন্ধ পড়ে
red_mean = mean (mean (x1 (:,:, 1))); % লাল পিক্সেলের গড় পরিমাণ পড়ে
green_mean = mean (mean (x1 (:,:, 2))); % সবুজ পিক্সেলের গড় পরিমাণ পড়ে
blue_mean = mean (mean (x1 (:,:, 3))); % নীল পিক্সেলের গড় পরিমাণ পড়ে
যদি red_mean> 150 && green_mean> 150 && blue_mean> 150
t_count = t_count + 1;
শেষ
app. LoopsCompletedLabel. Text = num2str (t_count)
%------------------ বোতাম ইএমএস প্রোগ্রামিং ---------------------------- ---
configurePin (rpi, 12, 'DigitalOutput'); %আউটপুট হিসাবে নেতৃত্বাধীন পিন, পিন 16 সেট করে
configurePin (rpi, 16, 'DigitalInput'); %একটি ইনপুট হিসাবে বোতাম পিন, পিন 24 সেট করে
buttonPressed = readDigitalPin (rpi, 16); % পিন 16 এ বোতাম প্রেস মান পড়ে
যদি buttonPressed == 1
যখন buttonPressed == 1
লিখুন ডিজিটালপিন (rpi, 12, 1)
buttonunPressed = writeDigitalPin (rpi, 12, 0); %
শেষ % শেষ হয় 'while buttonPressed == 1' লুপ
শেষ
writeDigitalPin (rpi, 16, 0) %সেট বাছাই না করলে বাটনে চাপ দেওয়া হয় setpref (ইন্টারনেট setpref ('ইন্টারনেট', 'ই_মেইল', '[email protected]'); setpref ('ইন্টারনেট', 'SMTP_Username', '[email protected]') থেকে পাঠানোর জন্য % মেল অ্যাকাউন্ট; % প্রেরকের ব্যবহারকারীর নাম setpref ('ইন্টারনেট', 'SMTP_Password', 'efgroup6'); % প্রেরকদের পাসওয়ার্ড
প্রপস = java.lang. System.getProperties;
props.setProperty ('mail.smtp.auth', 'true'); props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty ('mail.smtp.socketFactory.port', '465');
সেন্ডমেইল ('[email protected] ',' জরুরী অবস্থা! '
app. UndernormalconditionsLabel. Text = ems
শেষ
শেষ
%app. Label_4. Text = num2str (curr_temp);
পদ্ধতি (অ্যাক্সেস = ব্যক্তিগত)
% কোড যা কম্পোনেন্ট তৈরির পরে কার্যকর হয়
ফাংশন স্টার্টআপএফসিএন (অ্যাপ)
এই ফাংশনের জন্য প্রয়োজনীয় সকল ভেরিয়েবল --------------------
গ্লোবাল rpi %arduino
rpi = রাস্পি ('169.254.0.2', 'পাই', 'রাস্পবেরি');
গ্লোবাল s %সার্ভো
s = servo (rpi, 17, 'MinPulseDuration', 5e-4, 'MaxPulseDuration', 2.5e-3);
বৈশ্বিক উন্মুক্ত
খোলা = 1;
বিশ্বব্যাপী বন্ধ
বন্ধ = 1;
গ্লোবাল ক্যাম
ক্যাম = ক্যামেরাবোর্ড (আরপিআই);
বিশ্বব্যাপী মি
m = মোবাইলদেব;
বৈশ্বিক ইএমএস
ems = 'একটি জরুরি অবস্থা রিপোর্ট করা হয়েছে, EMS কে অবহিত করে';
বৈশ্বিক t_count
t_count = 0;
%পাসওয়ার্ডের সংযোগকারী হল EFGroup6
লুপের জন্য % টাইমার ফাংশন --------------------------------
app.counter = 0;
t = টাইমার (…
'টাইমারএফসিএন', @app.timerCallback,…
'StartDelay', 1, … 'Period', 1, …
'এক্সিকিউশন মোড', 'ফিক্সডস্পেসিং',…
'TasksToExecute', inf);
শুরু (টি);
শেষ
% কলব্যাক ফাংশন
ফাংশন ManualOverrideSwitchValueChanged (app, event)
শেষ
% বাটন পুশ ফাংশন: OpenGateButton
ফাংশন OpenGateButtonPushed (অ্যাপ, ইভেন্ট)
বিশ্বব্যাপী বন্ধ
বন্ধ = 0;
শেষ
% বোতাম ধাক্কা ফাংশন: CloseGateButton
ফাংশন CloseGateButtonPushed (অ্যাপ, ইভেন্ট)
বৈশ্বিক উন্মুক্ত
খোলা = 0;
শেষ
শেষ
% অ্যাপ আরম্ভ এবং নির্মাণ
পদ্ধতি (অ্যাক্সেস = ব্যক্তিগত)
% UIFigure এবং উপাদান তৈরি করুন
ফাংশন createComponents (অ্যাপ)
% UIFigure তৈরি করুন
app. UIFigure = uifigure;
app. UIFigure. Position = [100 100 640 480];
app. UIFigure. Name = 'UI চিত্র';
% RailwaygatestatusLampLabel তৈরি করুন
app. RailwaygatestatusLampLabel = uilabel (app. UIFigure);
app. RailwaygatestatusLampLabel. HorizontalAlignment = 'right'; app. RailwaygatestatusLampLabel. Position = [464 422 110 22]; app. RailwaygatestatusLampLabel. Text = 'রেল গেটের অবস্থা';
% গেটল্যাম্প তৈরি করুন
app.gateLamp = uilamp (app. UIFigure);
app.gateLamp. Position = [589 422 20 20];
app.gateLamp. Color = [0.9412 0.9412 0.9412];
% OpenGateButton তৈরি করুন
app. OpenGateButton = uibutton (app. UIFigure, 'push');
app. OpenGateButton. ButtonPushedFcn = createCallbackFcn (app, penOpenGateButtonPushed, true); app. OpenGateButton. Position = [474 359 100 22];
app. OpenGateButton. Text = 'Open Gate';
% CloseGateButton তৈরি করুন
app. CloseGateButton = uibutton (app. UIFigure, 'push');
app. CloseGateButton. ButtonPushedFcn = createCallbackFcn (app, loseCloseGateButtonPushed, true); app. CloseGateButton. Position = [474 285 100 22];
app. CloseGateButton. Text = 'গেট বন্ধ করুন';
UIAxes তৈরি করুন
app. UIAxes = uiaxes (app. UIFigure);
শিরোনাম (app. UIAxes, 'ক্যামেরা ফিড')
app. UIAxes. Position = [341 43 300 185];
% EmergencyButtonStatusLampLabel তৈরি করুন
app. EmergencyButtonStatusLampLabel = uilabel (app. UIFigure); app. EmergencyButtonStatusLampLabel. HorizontalAlignment = 'right'; app. EmergencyButtonStatusLampLabel. Position = [97 323 142 22]; app. EmergencyButtonStatusLampLabel. Text = 'জরুরী বোতাম অবস্থা';
% EmergencyButtonStatusLamp তৈরি করুন
app. EmergencyButtonStatusLamp = uilamp (app. UIFigure); app. EmergencyButtonStatusLamp. Position = [254 323 20 20];
% UndernormalconditionsLabel তৈরি করুন
app. UndernormalconditionsLabel = uilabel (app. UIFigure);
app. UndernormalconditionsLabel. Position = [108 285 248 22];
app. UndernormalconditionsLabel. Text = 'স্বাভাবিক অবস্থায়';
% UIAxes2 তৈরি করুন
app. UIAxes2 = uiaxes (app. UIFigure);
শিরোনাম (app. UIAxes2, 'ট্রেনের অবস্থান')
xlabel (app. UIAxes2, 'X পজিশন')
ylabel (app. UIAxes2, 'Y অবস্থান')
app. UIAxes2. Box = 'on';
app. UIAxes2. XGrid = 'on';
app. UIAxes2. YGrid = 'on';
app. UIAxes2. Position = [18 43 300 185];
EF230Group6Label তৈরি করুন
app. EF230Group6Label = uilabel (app. UIFigure);
app. EF230Group6Label. HorizontalAlignment = 'center';
app. EF230Group6Label. FontSize = 28;
app. EF230Group6Label. FontWeight = 'সাহসী';
app. EF230Group6Label. Position = [-4 401 379 64];
app. EF230Group6Label. Text = 'EF 230 Group 6';
IanAllishKellyBondIanDaffronLabel তৈরি করুন
app. IanAllishKellyBondIanDaffronLabel = uilabel (app. UIFigure); app. IanAllishKellyBondIanDaffronLabel. Position = [94 380 184 22]; app. IanAllishKellyBondIanDaffronLabel. Text = 'Ian Allish, Kelly Bond, Ian Daffron';
% LoopsCompletedLabel তৈরি করুন
app. LoopsCompletedLabel = uilabel (app. UIFigure);
app. LoopsCompletedLabel. Position = [18 10 103 22];
app. LoopsCompletedLabel. Text = 'Loops Completed:';
% লেবেল তৈরি করুন
app. Label = uilabel (app. UIFigure);
app. Label. Position = [120 10 178 22];
app. Label. Text = '####';
শেষ
শেষ
পদ্ধতি (অ্যাক্সেস = পাবলিক)
% কনস্ট্রাক্ট অ্যাপ
ফাংশন অ্যাপ = মাইক্রো
% উপাদান তৈরি এবং কনফিগার করুন
createComponents (অ্যাপ)
অ্যাপ ডিজাইনারের সাথে অ্যাপটি নিবন্ধন করুন
RegisterApp (app, app. UIFigure)
% স্টার্টআপ ফাংশন চালান
runStartupFcn (অ্যাপ, artstartupFcn)
যদি nargout == 0
পরিষ্কার অ্যাপ
শেষ
শেষ
% কোড যা অ্যাপ মুছে ফেলার আগে কার্যকর হয়
মুছে ফেলুন (অ্যাপ)
অ্যাপ মুছে গেলে UIFigure % মুছে দিন
মুছে দিন (app. UIFigure)
শেষ
শেষ
শেষ
ধাপ 4: চূড়ান্ত ধাপ
একবার কোড লেখা হয়ে গেলে এবং রাস্পবেরি পাই তারযুক্ত হয়ে গেলে, 3-ডি মুদ্রিত রেলরোড ট্র্যাক গেটে সার্ভো মোটর সংযুক্ত করুন কারণ এটি উপরের ছবিতে সংযুক্ত রয়েছে।
এখন, প্রকল্পটি সম্পূর্ণ। রাস্পবেরি পিআইকে ট্রেনের ট্র্যাকের সাথে সংযুক্ত করুন এবং গাড়ি চালক এবং কন্ডাক্টর উভয়ের জন্য নিরাপদ রেলপথ ক্রসিং তৈরি করে নতুন সিস্টেমটি পর্যবেক্ষণ করুন। দুর্ঘটনা রোধ করার জন্য সেট করা ব্যর্থ সেফগুলিকে ট্রিগার করতে GUI- এর সাথে যোগাযোগ করে সিস্টেমের সাথে খেলুন।
এটি টিউটোরিয়ালের সমাপ্তি, আপনার নতুন স্মার্ট ট্রেন সিস্টেম উপভোগ করুন!
প্রস্তাবিত:
NodeMCU ব্যবহার করে স্মার্ট ডিস্ট্রিবিউটেড আইওটি ওয়েদার মনিটরিং সিস্টেম: ১১ টি ধাপ
নোডএমসিইউ ব্যবহার করে স্মার্ট ডিস্ট্রিবিউটেড আইওটি ওয়েদার মনিটরিং সিস্টেম: আপনারা সবাই হয়তো weatherতিহ্যবাহী আবহাওয়া কেন্দ্র সম্পর্কে অবগত আছেন; কিন্তু আপনি কি কখনও ভেবে দেখেছেন এটি আসলে কিভাবে কাজ করে? যেহেতু weatherতিহ্যবাহী আবহাওয়া কেন্দ্রটি ব্যয়বহুল এবং ভারী, তাই প্রতি ইউনিট এলাকায় এই স্টেশনগুলির ঘনত্ব খুব কম যা এতে অবদান রাখে
স্টোন এইচএমআই ডিসপে একটি স্মার্ট হোম কন্ট্রোল সিস্টেম তৈরি করুন: 23 টি ধাপ
স্টোন এইচএমআই ডিসপ-এ একটি স্মার্ট হোম কন্ট্রোল সিস্টেম তৈরি করুন: প্রকল্পের ভূমিকা নীচের টিউটোরিয়ালটি আপনাকে দেখায় কিভাবে একটি সাধারণ হোম অ্যাপ্লায়েন্স কন্ট্রোল সিস্টেম তৈরির জন্য STONE STVC050WT-01 টাচ ডিসপ্লে মডিউল ব্যবহার করতে হয়
রঙ বাছাই সিস্টেম: দুটি বেল্ট সহ Arduino ভিত্তিক সিস্টেম: 8 টি ধাপ
রঙ বাছাই ব্যবস্থা: দুইটি বেল্ট সহ আরডুইনো ভিত্তিক সিস্টেম: পরিবহন এবং/অথবা শিল্প ক্ষেত্রে পণ্য ও সামগ্রীর প্যাকেজিং পরিবাহক বেল্ট ব্যবহার করে তৈরি লাইন ব্যবহার করে সম্পন্ন করা হয়। সেই বেল্টগুলি নির্দিষ্ট গতিতে আইটেমটিকে এক বিন্দু থেকে অন্য স্থানে নিয়ে যেতে সাহায্য করে। কিছু প্রক্রিয়াকরণ বা শনাক্তকরণ কাজ হতে পারে
ট্রেন ক্রসিং মনিটর সিস্টেম: 5 টি ধাপ (ছবি সহ)
ট্রেন ক্রসিং মনিটর সিস্টেম: এই নির্দেশনাটি আপনাকে শেখাবে কিভাবে একটি রেলপথ ব্যবস্থার অংশ নিয়ন্ত্রণ করতে একটি Arduino কোড করার জন্য ম্যাটল্যাব ব্যবহার করতে হয়
কিভাবে সঠিকভাবে একটি মিনি হাইফাই শেলফ সিস্টেম (সাউন্ড সিস্টেম) সংযুক্ত করুন এবং সেট আপ করুন: 8 টি ধাপ (ছবি সহ)
কিভাবে সঠিকভাবে সংযুক্ত এবং একটি মিনি হাইফাই শেলফ সিস্টেম (সাউন্ড সিস্টেম) সেট আপ: আমি একজন ব্যক্তি যে বৈদ্যুতিক প্রকৌশল সম্পর্কে শেখার উপভোগ করি। আমি তরুণ মহিলা নেতাদের জন্য অ্যান রিচার্ডস স্কুলে একটি উচ্চ বিদ্যালয়। আমি একটি মিনি এলজি হাইফাই শেলফ সিস্টেম থেকে যে কেউ তাদের সঙ্গীত উপভোগ করতে চায় তাকে সাহায্য করার জন্য আমি এই নির্দেশনা তৈরি করছি