সুচিপত্র:
- ধাপ 1: কাগজের স্কেচ
- পদক্ষেপ 2: হার্ডওয়্যার তালিকা
- ধাপ 3: সার্কিট ডিজাইন
- ধাপ 4: হার্ডওয়্যার সংযোগ
- ধাপ 5: সফটওয়্যার ডিজাইন
- ধাপ 6: ব্রেডবোর্ডে ডিবাগ করুন
- ধাপ 7: হার্ডওয়্যার সমাবেশ
- ধাপ 8: অ্যাডোব ইলাস্ট্রেটরে ইলেকট্রনিক্স হাউজিং ডিজাইন
- ধাপ 9: কার্ডবোর্ড প্রোটোটাইপ
- ধাপ 10: বার্চ পাতলা পাতলা কাঠের প্রোটোটাইপ
ভিডিও: FinduCar: একটি স্মার্ট কার কী যেখানে গাড়ি পার্ক করা হয়েছে সেখানে মানুষকে নির্দেশনা দিচ্ছে: 11 টি ধাপ (ছবি সহ)
2024 লেখক: John Day | [email protected]. সর্বশেষ পরিবর্তিত: 2024-01-30 08:01
উপরের সমস্যাগুলি সমাধান করার জন্য, এই প্রকল্পটি একটি স্মার্ট গাড়ির চাবি তৈরি করার প্রস্তাব দেয় যা মানুষকে গাড়ি যেখানে পার্ক করে সেখানে নিয়ে যেতে পারে। এবং আমার পরিকল্পনা হল গাড়ির চাবিতে একটি জিপিএস সংহত করা। গাড়ি ট্র্যাক করার জন্য স্মার্টফোন অ্যাপ ব্যবহার করার দরকার নেই, সমস্ত নির্দেশিকা শুধু গাড়ির চাবিতেই দেখাবে।
ধাপ 1: কাগজের স্কেচ
যখন লোকেরা গাড়িটি লক করার জন্য বোতাম টিপবে, তখন অবস্থানের তথ্য স্বয়ংক্রিয়ভাবে মাইক্রোকন্ট্রোলারে রেকর্ড করা যাবে। তারপরে, যখন লোকেরা গাড়িতে চলাচল শুরু করে, তখন বিভিন্ন LED গাড়ির অবস্থানের দিকে সরাসরি আলোকিত হয় এবং ঝলকানি ফ্রিকোয়েন্সি গাড়ির দূরত্ব দেখায়। তারা সহজেই জ্বলজ্বলে এলইডি অনুসরণ করতে পারে এবং দ্রুত গাড়িটি খুঁজে পেতে পারে।
পদক্ষেপ 2: হার্ডওয়্যার তালিকা
এগুলি এই প্রকল্পে ব্যবহৃত উপাদান। কিছু কণা কিট (ব্রেডবোর্ড, বোতাম, হেডার) থেকে, অন্যগুলি অ্যাডাফ্রুট অফিসিয়াল ওয়েবসাইট (অ্যাডাফ্রুট ফেদার এম 0, অ্যাডাফ্রুট আলটিমেট জিপিএস মডিউল, লপলি ব্যাটারি এবং কয়েন সেল ব্যাটারি) এবং আমাজন (নিওপিক্সেল রিং - 12 আরজিবি এলইডি) থেকে কেনা হয়।
ধাপ 3: সার্কিট ডিজাইন
Neopixel_LED পালক M0 এর PIN 6 এর সাথে সংযুক্ত
বাটন_উনলকটি ফেদার এম 0 এর পিন 12 এর সাথে সংযুক্ত
বাটন_লক ফেদার এম 0 এর পিন 13 এর সাথে সংযুক্ত
ধাপ 4: হার্ডওয়্যার সংযোগ
Adafruit M0 Feather, Adafruit Ultimate GPS Featherwing- এর সাথে হেডারগুলি বিক্রি করুন। দুটি বোর্ড একসাথে স্ট্যাক করুন। জিপিএস ফেদারউইং আপনার ফেদার এম 0 বোর্ডে কোন তারের ছাড়াই প্লাগ করে।
ধাপ 5: সফটওয়্যার ডিজাইন
পরীক্ষার উপাদান
একটি ফিক্স পড়ুন
অকার্যকর সেটআপ() {
Serial.println ("জিপিএস ইকো টেস্ট"); Serial.begin (9600); Serial1.begin (9600); // ডিফল্ট NMEA GPS baud}
অকার্যকর লুপ () {
যদি (Serial.available ()) {char c = Serial.read (); Serial1.write (c); } যদি (Serial1.available ()) {char c = Serial1.read (); Serial.write (c); }}
জ্বলজ্বলে LED রিং
Adafruit NeoPixel এর উদাহরণ দেখুন।
জিপিএস গণনা ফাংশন
আজিমুথ গণনা করুন
// আজিমুথ গণনা করুন
ডাবল আজিমুথ (ডাবল ল্যাট_এ, ডাবল লন_এ, ডাবল ল্যাট_বি, ডাবল লন_বি) {
ডাবল ডি = 0; lat_a = lat_a*PI/180; lon_a = lon_a*PI/180; lat_b = lat_b*PI/180; lon_b = lon_b*PI/180; d = sin (lat_a)*sin (lat_b)+cos (lat_a)*cos (lat_b)*cos (lon_b-lon_a); d = sqrt (1-d*d); d = cos (lat_b)*sin (lon_b-lon_a)/d; d = asin (d)*180/PI; ফেরত d; }
LED ঘড়িতে সময় গণনা করুন, যা গাড়ির দিকও
// LED ঘড়িতে সময় গণনা করুন
int led_time (ডবল এঙ্গেল) {
int পতাকা = 0; যদি (কোণ = 15) {কোণ_ সময় = কোণ_ সময় + 1; } যদি (পতাকা == 1) {কোণ_ সময় = 12 - কোণ_ সময়; } ফিরে কোণ_ সময়; }
ব্যক্তি এবং তার গাড়ির মধ্যে দূরত্ব গণনা করুন
// দূরত্ব গণনা করুন
দ্বিগুণ দূরত্ব (ডাবল ল্যাট_এ, ডাবল লোন_ এ, ডাবল ল্যাট_বি, ডাবল লোন_বি) {
ডাবল EARTH_RADIUS = 6378137.0; ডবল radLat1 = (lat_a * PI / 180.0); ডবল radLat2 = (lat_b * PI / 180.0); ডবল a = radLat1 - radLat2; ডবল b = (lon_a - lon_b) * PI / 180.0; ডবল s = 2 * asin (sqrt (pow (sin (a / 2), 2) + cos (radLat1) * cos (radLat2) * pow (sin (b / 2), 2))); s = s * EARTH_RADIUS / 10000000; ফিরে এস; }
LED ডিসপ্লে ফাংশন
একটি বৃত্তে LEDs জ্বালান যা দেখায় যে এটি নেভিগেট শুরু করে
// LED রিং এক এক করে আলো দেখায় যে নেভিগেশন শুরু হয়
অকার্যকর রঙ মুছুন (uint32_t c, uint8_t অপেক্ষা করুন) {
জন্য (uint16_t i = 0; i strip.setPixelColor (i, c); strip.show (); বিলম্ব (অপেক্ষা);}}
দূরত্বের ভিত্তিতে LED ফ্রিকোয়েন্সি পান
// এলইডি ফ্রিকোয়েন্সি পান
int ফ্রিকোয়েন্সি (দ্বিগুণ দূরত্ব) {
int f = (int) দূরত্ব * 20; ফেরত f; }
গাড়ির দিক নির্দেশ করে নির্দিষ্ট এলইডি ব্লিংক করুন
// LED তে ডিসপ্লে
strip.clear ();
strip.show (); বিলম্ব (ফ্রিকোয়েন্সি (car_person_distance)); // বিলম্ব (500); strip.setPixelColor (angle_time, strip. Color (0, 0, 255)); strip.show (); বিলম্ব (ফ্রিকোয়েন্সি (car_person_distance)); // বিলম্ব (500);
// LED নিষ্ক্রিয় করুন
যদি (button_flag == 1 && car_person_distance <5.0) {button_flag = 0; led_flag = 1; strip.clear (); strip.show (); }
প্রধান
#অন্তর্ভুক্ত Adafruit_GPS.h #অন্তর্ভুক্ত Adafruit_NeoPixel.h #অন্তর্ভুক্ত হার্ডওয়্যার সিরিয়াল।
#Neopixel_LED_PIN 6 নির্ধারণ করুন
#Neopixel_LED_NUM 12 ডিফাইন করুন
#GPSECHO মিথ্যা নির্ধারণ করুন
Adafruit_GPS GPS (& GPSSerial); Adafruit_NeoPixel স্ট্রিপ = Adafruit_NeoPixel (Neopixel_LED_NUM, Neopixel_LED_PIN, NEO_GRB + NEO_KHZ800); বাটন button_lock (Button_Lock_PIN); বাটন button_unlock (Button_Unlock_PIN); int button_flag = 0; int led_flag = 1; uint32_t টাইমার = মিলিস (); ডাবল কার_ল্যাট, কার_লন; দ্বিগুণ গাড়ি_ ব্যক্তি_ দূরত্ব; ডবল move_direction; ডবল গাড়ি_ আজিমুথ; ডবল কার_পার্সন_এঙ্গেল; int angle_time;
অকার্যকর সেটআপ() {
Serial.begin (115200); // Serial1.begin (9600); GPS.begin (9600); // ডিফল্ট NMEA GPS baud strip.begin (); // এই লাইনটিকে RMC (প্রস্তাবিত ন্যূনতম) এবং GGA (ফিক্স ডেটা) চালু করতে উচ্চতা GPS.sendCommand (PMTK_SET_NMEA_OUTPUT_RMCGGA) সহ চালু করুন; // আপডেট হার সেট করুন GPS.sendCommand (PMTK_SET_NMEA_UPDATE_1HZ); // 1 Hz আপডেট রেট // অ্যান্টেনা স্ট্যাটাসে আপডেটের অনুরোধ করুন, চুপ থাকার জন্য মন্তব্য করুন // GPS.sendCommand (PGCMD_ANTENNA); বিলম্ব (1000);}
অকার্যকর লুপ () {// যদি (Serial.available ()) {
// char c = Serial.read (); // Serial1.write (c); //} // যদি (Serial1.available ()) {char c = GPS.read (); if (GPSECHO) if (c) Serial.print (c); // যদি কোনো বাক্য পাওয়া যায়, আমরা চেকসাম চেক করতে পারি, বিশ্লেষণ করতে পারি… অন্যান্য বাক্য ধরা! // তাই OUTPUT_ALLDATA ব্যবহার করে খুব সতর্ক থাকুন এবং ডাটা Serial.println (GPS.lastNMEA ()) প্রিন্ট করার চেষ্টা করুন; // এটি নতুন NMEAreceived () পতাকাটি মিথ্যাতে সেট করে যদি (! GPS.parse (GPS.lastNMEA ())) // এটি নতুনNMEAreceived () পতাকাটিকে মিথ্যা রিটার্নের জন্যও সেট করে; // আমরা একটি বাক্য বিশ্লেষণ করতে ব্যর্থ হতে পারি যে ক্ষেত্রে আমাদের কেবল অন্যের জন্য অপেক্ষা করতে হবে} // যদি মিলিস () বা টাইমার চারপাশে আবৃত থাকে, আমরা এটি পুনরায় সেট করব যদি (টাইমার> মিলিস ()) টাইমার = মিলিস (); যদি (মিলিস () - টাইমার> 2000) {টাইমার = মিলিস (); // টাইমার Serial.print রিসেট করুন ("\ nTime:"); সিরিয়াল.প্রিন্ট (GPS.hour, DEC); সিরিয়াল.প্রিন্ট (':'); সিরিয়াল.প্রিন্ট (GPS.minute, DEC); সিরিয়াল.প্রিন্ট (':'); Serial.print (GPS.seconds, DEC); সিরিয়াল.প্রিন্ট ('।'); Serial.println (GPS.milliseconds); সিরিয়াল.প্রিন্ট ("তারিখ:"); সিরিয়াল.প্রিন্ট (GPS.day, DEC); সিরিয়াল.প্রিন্ট ('/'); Serial.print (GPS.month, DEC); সিরিয়াল.প্রিন্ট ("/20"); Serial.println (GPS.year, DEC); সিরিয়াল.প্রিন্ট ("ফিক্স:"); Serial.print ((int) GPS.fix); সিরিয়াল.প্রিন্ট ("গুণ:"); Serial.println ((int) GPS.fixquality); যদি (GPS.fix) {Serial.print ("Location:"); সিরিয়াল.প্রিন্ট (GPS. Litude, 4); সিরিয়াল.প্রিন্ট (GPS.lat); সিরিয়াল.প্রিন্ট (","); সিরিয়াল.প্রিন্ট (GPS. Longitude, 4); Serial.println (GPS.lon); Serial.print ("অবস্থান (ডিগ্রীতে, গুগল ম্যাপের সাথে কাজ করে):"); Serial.print (GPS.latitudeDegrees, 4); সিরিয়াল.প্রিন্ট (","); Serial.println (GPS.longitudeDegrees, 4); সিরিয়াল.প্রিন্ট ("গতি (নট):"); Serial.println (GPS.speed); সিরিয়াল.প্রিন্ট ("কোণ:"); Serial.println (GPS.angle); সিরিয়াল.প্রিন্ট ("উচ্চতা:"); Serial.println (GPS.altitude); সিরিয়াল.প্রিন্ট ("স্যাটেলাইট:"); Serial.println ((int) GPS.satellites); // গাড়ির জিপিএস সংরক্ষণ করুন যদি (button_lock.read ()) {car_lat = GPS.latitudeDegrees; car_lon = GPS.longitudeDegrees; // ডিবাগ সিরিয়াল.প্রিন্টের জন্য ("carLatitude:"); Serial.println (car_lat); Serial.print ("carLongitude:"); Serial.println (car_lon); } // গাড়ি খুঁজে পেতে শুরু করুন যদি (button_flag == 0) {button_flag = button_unlock.read (); } if (button_flag == 1 && led_flag == 1) {colorWipe (strip. Color (0, 255, 0), 500); led_flag = 0; } যদি (button_flag == 1) {car_person_distance = distance (GPS.latitudeDegrees, GPS.longitudeDegrees, car_lat, car_lon); // দূরত্ব গণনা করুন // car_person_distance = দূরত্ব (100.0005, 100.0005, 100.0, 100.0); // ডিবাগ করার জন্য Serial.println (car_person_distance); move_direction = GPS.angle; // চলমান দিক রেকর্ড করুন (কোণ) // move_direction = 100.0; // রেকর্ড করুন আজিমুথ (কোণ) car_azimuth = azimuth (GPS.latitudeDegrees, GPS.longitudeDegrees, car_lat, car_lon); // car_azimuth = azimuth (100.0005, 100.0005, 100.0, 100.0); // LED ঘড়িতে সময় গণনা করুন car_person_angle = car_azimuth - move_direction; কোণ_ সময় = নেতৃত্বাধীন সময় (গাড়ী_ব্যক্তি_কোণ); // LED strip.clear () এ প্রদর্শন; strip.show (); // বিলম্ব (ফ্রিকোয়েন্সি (car_person_distance)); বিলম্ব (500); strip.setPixelColor (angle_time, strip. Color (0, 0, 255)); strip.show (); // বিলম্ব (ফ্রিকোয়েন্সি (car_person_distance)); বিলম্ব (500); // LED নিষ্ক্রিয় করুন যদি (button_flag == 1 && car_person_distance <5.0) {button_flag = 0; led_flag = 1; strip.clear (); strip.show (); }}} //}}}
ধাপ 6: ব্রেডবোর্ডে ডিবাগ করুন
ধাপ 7: হার্ডওয়্যার সমাবেশ
ধাপ 8: অ্যাডোব ইলাস্ট্রেটরে ইলেকট্রনিক্স হাউজিং ডিজাইন
ধাপ 9: কার্ডবোর্ড প্রোটোটাইপ
এই ধাপটি হাউজিংয়ের আকার এবং মডেলের প্রতিটি অংশ নিশ্চিত করতে ব্যবহৃত হয়, নিশ্চিত করে যে বাক্সের আকার, এবং বোতামের অবস্থান, এবং LED অবস্থান একত্রিত ইলেকট্রনিক উপাদানগুলির সাথে মানানসই।
ধাপ 10: বার্চ পাতলা পাতলা কাঠের প্রোটোটাইপ
এটি ছিল প্রাথমিক প্রোটোটাইপ। একটি চার্জারে প্লাগ করার জন্য একটি বর্গাকার গর্ত শেষ পর্যন্ত একটি টুকরোতে যুক্ত করা হয়েছিল।
প্রস্তাবিত:
Arduino পার্কিং সহকারী - প্রতিবার সঠিক স্থানে আপনার গাড়ি পার্ক করুন: 5 টি ধাপ (ছবি সহ)
Arduino পার্কিং সহকারী - প্রতিবার সঠিক স্থানে আপনার গাড়ি পার্ক করুন: এই প্রকল্পে, আমি আপনাকে দেখাব কিভাবে একটি Arudino ব্যবহার করে আপনার নিজের পার্কিং সহকারী তৈরি করবেন। এই পার্কিং সহকারী আপনার গাড়ির দূরত্ব পরিমাপ করে এবং একটি এলসিডি ডিসপ্লে রিডআউট এবং একটি এলইডি ব্যবহার করে এটি সঠিক স্থানে পার্ক করার জন্য আপনাকে নির্দেশ দেয়, যা অগ্রগতিশীল
DIY স্মার্ট রোবট ট্র্যাকিং কার কিটস ট্র্যাকিং কার ফটোসেনসিটিভ: 7 ধাপ
DIY স্মার্ট রোবট ট্র্যাকিং কার কিটস ট্র্যাকিং কার ফটোসেনসিটিভ: সিনোনিং রোবট দ্বারা ডিজাইন আপনি ট্র্যাকিং রোবট কার থেকে কিনতে পারেন থিওরি এলএম 393 চিপ দুটি ফটোরিসিস্টারের তুলনা করুন, যখন হোয়াইটের উপর একটি সাইড ফটোরিসিস্টার এলইডি থাকে তখনই মোটরের অন্য পাশ থেমে যাবে, মোটরের অন্য পাশে স্পিন আপ, যাতে
একটি পুরানো এলসিডি মনিটর থেকে গোপনীয়তা মনিটর হ্যাক করা হয়েছে: 7 টি ধাপ (ছবি সহ)
একটি পুরানো এলসিডি মনিটর থেকে গোপনীয়তা মনিটর হ্যাক করা হয়েছে: অবশেষে আপনি গ্যারেজে থাকা পুরানো এলসিডি মনিটর দিয়ে কিছু করতে পারেন। আপনি এটি একটি গোপনীয়তা মনিটরে পরিণত করতে পারেন! আপনি ছাড়া সবার কাছে সব সাদা দেখায়, কারণ আপনি " ম্যাজিক " চশমা! আপনার সত্যিই যা আছে তা হ'ল একটি পা
থমাসকে ট্রেন দিচ্ছে রাতে গাড়ি চালানোর ক্ষমতা: ৫ টি ধাপ
থমাসকে ট্রেনকে রাতে গাড়ি চালানোর ক্ষমতা প্রদান: এই নির্দেশনাটি আপনাকে শিখাবে কিভাবে ট্রেন আসার সময় অপেক্ষমান যাত্রীদের সতর্ক করার জন্য লাইটের ব্যবস্থা তৈরি করতে হয় এবং ট্রেনটি যখন ল্যাপটপে উপস্থিত হয় তখন কীভাবে একটি বার্তা পেতে হয় স্টেশন ট্রেন যখন স্ট্যাটের পাশ দিয়ে যায় তার জন্য একটি শব্দ
ESP8266 রোবট গাড়ি ESP8266 বেসিক দিয়ে প্রোগ্রাম করা হয়েছে: 18 টি ধাপ (ছবি সহ)
ESP8266 রোবট কার ESP8266 বেসিক দিয়ে প্রোগ্রাম করা: আমি একজন মিডল স্কুল বিজ্ঞানের শিক্ষক এবং রোবটিক ক্লাবের উপদেষ্টাও। আমি আমার ছাত্রদের হাতে রোবট পেতে আরো সাশ্রয়ী উপায় খুঁজছি। ESP8266 বোর্ডের কম দামের সাথে, আমি একটি স্বায়ত্তশাসিত তৈরি করতে সক্ষম হয়েছি