ዝርዝር ሁኔታ:
- ደረጃ 1 የወረቀት ንድፍ
- ደረጃ 2 የሃርድዌር ዝርዝር
- ደረጃ 3 የወረዳ ንድፍ
- ደረጃ 4 የሃርድዌር ግንኙነት
- ደረጃ 5 የሶፍትዌር ንድፍ
- ደረጃ 6 - በዳቦ ሰሌዳ ላይ አርም
- ደረጃ 7 የሃርድዌር ስብሰባ
- ደረጃ 8 በ Adobe Illustrator ውስጥ የኤሌክትሮኒክስ የቤቶች ዲዛይን
- ደረጃ 9 የካርቶን ፕሮቶታይፕ
- ደረጃ 10: የበርች ኮምፖንች ፕሮቶታይፕ
ቪዲዮ: ፊንዱካር: መኪናው ወደቆመበት ቦታ የሚሄድ ዘመናዊ የመኪና ቁልፍ ሰዎችን መምራት 11 ደረጃዎች (ከስዕሎች ጋር)
2024 ደራሲ ደራሲ: John Day | [email protected]. ለመጨረሻ ጊዜ የተሻሻለው: 2024-01-30 07:32
ከላይ የተጠቀሱትን ችግሮች ለመፍታት ይህ ፕሮጀክት ሰዎች መኪናውን ወደቆሙበት ሊያመራ የሚችል ዘመናዊ የመኪና ቁልፍ ለማዳበር ሀሳብ ያቀርባል። እና የእኔ ዕቅድ ጂፒኤስን በመኪና ቁልፍ ውስጥ ማዋሃድ ነው። መኪናውን ለመከታተል የስማርትፎን መተግበሪያን መጠቀም አያስፈልግም ፣ ሁሉም መመሪያው በመኪና ቁልፍ ላይ ብቻ ይታያል።
ደረጃ 1 የወረቀት ንድፍ
ሰዎች መኪናውን ለመቆለፍ ቁልፉን ሲጫኑ ፣ የአከባቢው መረጃ በራስ -ሰር በማይክሮ መቆጣጠሪያ ውስጥ ሊቀረጽ ይችላል። ከዚያ ሰዎች ወደ መኪናው መጓዝ ሲጀምሩ ፣ ወደ መኪናው አቀማመጥ በቀጥታ ለመምራት የተለያዩ ኤልኢዲ መብራቱ እና ብልጭ ድርግም የሚሉ ድግግሞሽ የመኪናውን ርቀት ያሳያል። ብልጭ ድርግም የሚል LED ን በቀላሉ መከተል እና መኪናውን በፍጥነት ማግኘት ይችላሉ።
ደረጃ 2 የሃርድዌር ዝርዝር
በዚህ ፕሮጀክት ውስጥ ጥቅም ላይ የዋሉ እነዚህ ክፍሎች ናቸው። አንዳንዶቹ ከ ቅንጣት ኪት (ዳቦ ሰሌዳ ፣ አዝራር ፣ ራስጌዎች) ፣ ሌሎች ከአዳፍ ፍሬ ኦፊሴላዊ ድር ጣቢያ (Adafruit Feather M0 ፣ Adafruit Ultimate GPS module ፣ Lpoly Battery and Coin Cell Battery) እና Amazon (NeoPixel Ring - 12 RGB LED) ይገዛሉ።
ደረጃ 3 የወረዳ ንድፍ
Neopixel_LED ከላባ M0 ፒን 6 ጋር ተገናኝቷል
Button_Unlock ከላባ M0 ፒን 12 ጋር ተገናኝቷል
አዝራር_ሎክ ከላባ M0 ፒን 13 ጋር ተገናኝቷል
ደረጃ 4 የሃርድዌር ግንኙነት
ራስጌዎቹን በ Adafruit M0 ላባ ፣ Adafruit Ultimate GPS Featherwing ይሽጡ። ሁለቱን ሰሌዳዎች አንድ ላይ ያከማቹ። የጂፒኤስ ላባ ክንፍ ያለ ተጨማሪ ሽቦዎች በቀጥታ ወደ ላባ M0 ሰሌዳዎ ውስጥ ይሰካል።
ደረጃ 5 የሶፍትዌር ንድፍ
የሙከራ አካላት
FIX ን ያንብቡ
ባዶነት ማዋቀር () {
Serial.println ("የጂፒኤስ ማሚቶ ፈተና"); Serial.begin (9600); Serial1.begin (9600); // ነባሪ NMEA GPS baud}
ባዶነት loop () {
ከሆነ (Serial.available ()) {char c = Serial.read (); ተከታታይ 1. መጻፍ (ሐ); } ከሆነ (Serial1.available ()) {char c = Serial1.read (); Serial.write (ሐ); }}
ብልጭታ የ LED ቀለበት
Adafruit NeoPixel ምሳሌዎችን ይመልከቱ።
የጂፒኤስ ስሌት ተግባራት
አዚሙትን አስሉ
// አዚሙትን አስሉ
ድርብ አዚም (ድርብ ላቲ_አ ፣ ድርብ ሎሎን ፣ ድርብ ላቲ_ቢ ፣ ድርብ lon_b) {
ድርብ d = 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; መ = ኃጢአት (lat_a)*ኃጢአት (lat_b)+cos (lat_a)*cos (lat_b)*cos (lon_b-lon_a); d = sqrt (1-d*መ); d = cos (lat_b)*ኃጢአት (lon_b-lon_a)/መ; d = አሲን (መ)*180/PI; መመለስ መ; }
በ LED ሰዓት ላይ ያለውን ጊዜ ያሰሉ ፣ ይህም የተሽከርካሪው አቅጣጫም ነው
// በ LED ሰዓት ላይ ያለውን ጊዜ ያሰሉ
int led_time (ድርብ አንግል) {
int ባንዲራ = 0; ከሆነ (አንግል = 15) {angle_time = angle_time + 1; } ከሆነ (ባንዲራ == 1) {angle_time = 12 - angle_time; } የመመለሻ አንግል_ጊዜ; }
በግለሰቡ እና በተሽከርካሪው መካከል ያለውን ርቀት ያሰሉ
// ርቀቱን ያስሉ
ድርብ ርቀት (ድርብ lat_a ፣ ድርብ lon_a ፣ double lat_b ፣ double lon_b) {
ድርብ EARTH_RADIUS = 6378137.0; ድርብ radLat1 = (lat_a * PI / 180.0); ድርብ radLat2 = (lat_b * PI / 180.0); ድርብ ሀ = radLat1 - radLat2; ድርብ ለ = (lon_a - lon_b) * PI / 180.0; ድርብ s = 2 * አሲን (ስኩዌር (ፓው (ኃጢአት (ሀ / 2) ፣ 2) + ኮስ (radLat1) * cos (radLat2) * ዱቄት (ኃጢአት (ለ / 2) ፣ 2))); s = s * EARTH_RADIUS / 10000000; መመለስ s; }
የ LED ማሳያ ተግባራት
ማሰስ መጀመሩን በማሳየት በክበብ ውስጥ ኤልኢዲዎችን ያብሩ
// የ LED ቀለበት ማብራት አንድ በአንድ አሰሳ መጀመሩን ያሳያል
ባዶነት ቀለም ይጥረጉ (uint32_t c ፣ uint8_t ይጠብቁ) {
ለ (uint16_t i = 0; i strip.setPixelColor (i, c); strip.show (); መዘግየት (ይጠብቁ);}}
በርቀቱ መሠረት የ LED ድግግሞሹን ያግኙ
// የ LED ድግግሞሽ ያግኙ
int ድግግሞሽ (ድርብ ርቀት) {
int f = (int) ርቀት * 20; መመለስ ረ; }
የመኪናውን አቅጣጫ የሚያመለክት የተወሰኑ ኤልኢዲዎችን ያብሩ
// በ LED ላይ ማሳያ
strip.clear ();
strip.show (); መዘግየት (ድግግሞሽ (የመኪና_ሰው_እርቀት)); // መዘግየት (500); strip.setPixelColor (angle_time, strip. Color (0, 0, 255)); strip.show (); መዘግየት (ድግግሞሽ (የመኪና_ሰው_እርቀት)); // መዘግየት (500);
// LED ን ያሰናክሉ
ከሆነ (button_flag == 1 && car_person_distance <5.0) {button_flag = 0; led_flag = 1; strip.clear (); strip.show (); }
ዋና
#አካፍፍፍፍፍፍፍፍፍፍፍፍፍፍፍፍፍፍ_ጂፒኤስ.ህ #አዳፍ ፍሬን_ኖፒክስል.ሕን ጨምሮ #ሃርድዌርSerial.h #አካት አዝራር.ህ #ሒሳብን ጨምሮ
#ኒዮፒክስል_ኤልዲ_ፒን 6 ን ይግለጹ 6
#ገላጭ ኒኦፒክስል_ኤልኢዲ_NUM 12 #ገላጭ አዝራር_ቁልፍ_ፒን 13 #ገላጭ አዝራር_ክፈት_ፒን 12 #ጂፒኤስ / ሲሪያል ተከታታይ 1
#ጂፒኤስሲኦን ውሸትን ይግለጹ
Adafruit_GPS GPS (& GPSSerial) ፤ Adafruit_NeoPixel strip = Adafruit_NeoPixel (Neopixel_LED_NUM ፣ Neopixel_LED_PIN ፣ NEO_GRB + NEO_KHZ800) የአዝራር አዝራር ቁልፍ (አዝራር_ሎክ_ፒን); የአዝራር አዝራር_ክፈት (አዝራር_ክፈት_ፒን); int button_flag = 0; int led_flag = 1; uint32_t ሰዓት ቆጣሪ = ሚሊስ (); ድርብ car_lat ፣ car_lon; ድርብ የመኪና_ሰውነት_ርቀት; ድርብ ማንቀሳቀስ_ አቅጣጫ; ድርብ car_azimuth; ድርብ የመኪና_ሰው_አንግል; int angle_time;
ባዶነት ማዋቀር () {
Serial.begin (115200); // Serial1.begin (9600); GPS.begin (9600); // ነባሪ NMEA GPS baud strip.begin (); // ይህንን መስመር RMC (የሚመከር ዝቅተኛ) እና ጂጂኤ (ውሂብን ማስተካከል) ከፍታ GPS.sendCommand (PMTK_SET_NMEA_OUTPUT_RMCGGA) ን ለማብራት ይህንን መስመር አለመቀበል ፤ // የዝማኔ ተመን GPS.sendCommand (PMTK_SET_NMEA_UPDATE_1HZ) ያዘጋጁ ፤ // 1 Hz የዝማኔ መጠን // በአንቴና ሁኔታ ላይ ዝመናዎችን ይጠይቁ ፣ ዝም ለማለት አስተያየት ይስጡ/ GPS.sendCommand (PGCMD_ANTENNA) ፤ መዘግየት (1000);}
ባዶነት loop () {// ከሆነ (Serial.available ()) {
// char c = Serial.read (); // Serial1. ጻፍ (ሐ); //} // ከሆነ (Serial1.available ()) {char c = GPS.read (); ከሆነ (GPSECHO) ከሆነ (ሐ) Serial.print (c); // ዓረፍተ -ነገር ከተቀበለ ፣ ቼክውን መመርመር ፣ መተንተን እንችላለን… ከሆነ (ጂፒኤስ አዲስ ሌሎች ዓረፍተ ነገሮችን መያዝ! // ስለዚህ Serut.println (GPS.lastNMEA ()) ን ለማተም OUTPUT_ALLDATA ን እና trytng ን የሚጠቀሙ ከሆነ በጣም ይጠንቀቁ ፤ // ይህ ደግሞ አዲሱንNMEAreceived () ባንዲራ ወደ ሐሰት ያዘጋጃል (! // እኛ አንድን ዓረፍተ ነገር መተንተን ስንችል ሌላ መጠበቅ አለብን} // ሚሊስ () ወይም ሰዓት ቆጣሪ ከተጠጋ ፣ (ሰዓት ቆጣሪ> ሚሊስ ()) ሰዓት ቆጣሪ = ሚሊስ (); ከሆነ (ሚሊስ () - ሰዓት ቆጣሪ> 2000) {ሰዓት ቆጣሪ = ሚሊስ (); // የሰዓት ቆጣሪውን ዳግም ያስጀምሩ Serial.print ("\ nTime:"); Serial.print (GPS.hour, DEC); Serial.print (':'); Serial.print (GPS.minute, DEC); Serial.print (':'); Serial.print (GPS.seconds, DEC); Serial.print ('.'); Serial.println (GPS.milliseconds); Serial.print ("ቀን:"); Serial.print (GPS.day, DEC); Serial.print ('/'); Serial.print (GPS.month, DEC); Serial.print ("/20"); Serial.println (GPS.year, DEC); Serial.print ("Fix:"); Serial.print ((int) GPS.fix); Serial.print ("ጥራት:"); Serial.println ((int) GPS.fixquality); ከሆነ (GPS.fix) {Serial.print ("አካባቢ:"); Serial.print (GPS.latitude, 4); Serial.print (GPS.lat); Serial.print (","); Serial.print (GPS.longitude, 4); Serial.println (GPS.lon); Serial.print ("አካባቢ (በዲግሪዎች ፣ ከ Google ካርታዎች ጋር ይሰራል):"); Serial.print (GPS.latitudeDegrees, 4); Serial.print (","); Serial.println (GPS.longitudeDegrees, 4); Serial.print ("ፍጥነት (ኖቶች):"); Serial.println (GPS.speed); Serial.print ("አንግል:"); Serial.println (GPS.angle); Serial.print ("ከፍታ:"); Serial.println (GPS.altitude); Serial.print ("ሳተላይቶች:"); Serial.println ((int) GPS.satellites); // (button_lock.read ()) {car_lat = GPS.latitudeDegrees; የተሽከርካሪውን ጂፒኤስ ያስቀምጡ። car_lon = GPS.longitudeDegrees; // ለማረም Serial.print ("carLatitude:"); Serial.println (car_lat); Serial.print ("carLongitude:"); Serial.println (car_lon); } // (button_flag == 0) {button_flag = button_unlock.read () ከሆነ መኪናውን ለማግኘት ይጀምሩ። } ከሆነ (button_flag == 1 && led_flag == 1) {colorWipe (strip. ቀለም (0, 255, 0) ፣ 500); led_flag = 0; } ከሆነ (button_flag == 1) {car_person_distance = ርቀት (GPS.latitudeDegrees ፣ GPS.longitudeDegrees ፣ car_lat ፣ car_lon); // ርቀቱን ያሰሉ // የመኪና_person_distance = ርቀት (100.0005 ፣ 100.0005 ፣ 100.0 ፣ 100.0) ፤ // ለማረም Serial.println (car_person_distance); move_direction = GPS.angle; // የሚንቀሳቀስ አቅጣጫ (አንግል) // move_direction = 100.0; // የ Azimuth (አንግል) 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 ላይ ያሰሉ። angle_time = led_time (የመኪና_ሰው_አንግል); // በ LED strip.clear (ማሳያ) ላይ ማሳያ; strip.show (); // መዘግየት (ድግግሞሽ (የመኪና_ሰው_እርቀት)); መዘግየት (500); strip.setPixelColor (angle_time, strip. Color (0, 0, 255)); strip.show (); // መዘግየት (ድግግሞሽ (የመኪና_ሰው_እርቀት)); መዘግየት (500); // (button_flag == 1 && car_person_distance <5.0) {button_flag = 0; led_flag = 1; strip.clear (); strip.show (); }}}} //}}}
ደረጃ 6 - በዳቦ ሰሌዳ ላይ አርም
ደረጃ 7 የሃርድዌር ስብሰባ
ደረጃ 8 በ Adobe Illustrator ውስጥ የኤሌክትሮኒክስ የቤቶች ዲዛይን
ደረጃ 9 የካርቶን ፕሮቶታይፕ
ይህ እርምጃ የቤቱን መጠን እና እያንዳንዱን የአምሳያው ቁራጭ ለማረጋገጥ ፣ የሳጥን መጠኑን እና የአዝራሩን አቀማመጥ እና የ LED አቀማመጥ ከተሰበሰቡ የኤሌክትሮኒክስ ክፍሎች ጋር የሚስማማ መሆኑን ለማረጋገጥ ያገለግላል።
ደረጃ 10: የበርች ኮምፖንች ፕሮቶታይፕ
ይህ የመጀመሪያ ተምሳሌት ነበር። ወደ ባትሪ መሙያ ለመሰካት አንድ ካሬ ቀዳዳ በመጨረሻ ወደ አንድ ቁርጥራጮች ተጨምሯል።
የሚመከር:
ሰዎችን ሲያይ የሚዘጋ ዓይናፋር ጭንብል 9 ደረጃዎች (ከስዕሎች ጋር)
ሰዎችን ሲያይ የሚዘጋ ዓይናፋር ጭንብል -በኮቪድ -19 ምክንያት የፊት መሸፈኛ ማድረጋችን የሚያሳዝን ነው። እሱ በጣም አስደሳች ተሞክሮ አይደለም ፣ ያሞቅዎታል ፣ ላብ ፣ የነርቭ እና በእርግጥ ለመተንፈስ ከባድ ያደርግዎታል። ጭምብሉን እንዲያስወግዱ የሚገፋፉ ነገር ግን ይህን ለማድረግ የሚፈሩበት የተጠሙ ጊዜዎች አሉ። ምን I
የአደጋ ጊዜ ተሽከርካሪ ማምለጫ ቁልፍ ቁልፍ 11 ደረጃዎች (ከስዕሎች ጋር)
የአደጋ ጊዜ ተሽከርካሪ ማምለጫ ቁልፍ ቁልፍ - የመኪና አደጋዎች። እሺ! በአደጋ ውስጥ ላለመሆን በጣም ጥሩው መንገድ ደህንነቱ የተጠበቀ የማሽከርከር ቴክኒኮችን መጠቀም እና ሁል ጊዜ ለሚሄዱበት እና በዙሪያዎ ላሉት ሌሎች መኪኖች ትኩረት መስጠት ነው። ሆኖም ፣ ምንም እንኳን እርስዎ ከፍተኛ ጥረት ቢያደርጉም ሌላ ድራይቭን አይቆጣጠሩም
Raspberry Pi Voice Navigation ዓይነ ስውራን ሰዎችን መርዳት 7 ደረጃዎች (ከስዕሎች ጋር)
Raspberry Pi Voice Navigation ዓይነ ሥውራን ሰዎችን መርዳት-ሠላም በዚህ አስተማሪ ውስጥ እኛ በተጠቃሚው የተገለጸውን የድምፅ መመሪያ በመጠቀም ዓይነ ሥውራን እንዴት እንደሚረዳ እንመለከታለን። እዚህ ፣ የምንችለውን ርቀት ለመለካት በአልትራሳውንድ ዳሳሽ ግብዓት እገዛ። ድምጽ ዕውሮችን ወደ follo መመሪያ
DIY ስማርት ሮቦት መከታተያ የመኪና ኪትስ መከታተያ የመኪና ፎቶን የሚስብ 7 ደረጃዎች
DIY Smart Robot Tracking Car Kits Tracking Car Kits Tracking መኪና ፎቶሲንሴቲቭ - በ RINBOT ንድፍ የሮቦት መኪናን ከመከታተል መግዛት ይችላሉ TheoryLM393 ቺፕ ሁለቱን የፎቶግራፍ ተቆጣጣሪ ያወዳድሩ ፣ በሞተር በኩል አንድ ጎን የፎቶግራፍ ተቆጣጣሪ LED ሲኖር የሞተሩ ጎን ወዲያውኑ ይቆማል ፣ የሞተሩ ሌላኛው ወገን ፈተለ ፣ ስለዚህ
Raspberry Pi ላይ የሚሄድ Bitcoin-like Crypto-5 ደረጃዎች
Raspberry Pi ላይ Bitcoin-like Crypto Running: መስቀለኛ መንገድን ለማስኬድ መመሪያዎች የዩኤስ-ኦኤስ ኦፕሬቲንግ ሲስተም የ us-cryptoplatform ጥቅልን በሚያከናውን ራፕቢያን የተሰራ ነው። ለመቀላቀል ፈቃድ መጠየቅ የለብዎትም። እነዚህን ቀላል መመሪያዎች ይከተሉ እና በየደቂቃው ምንዛሪ የሚያገኝ መስቀለኛ መንገድ ያሂዱ