Përmbajtje:
- Hapi 1: Skica e letrës
- Hapi 2: Lista e pajisjeve
- Hapi 3: Dizajni i qarkut
- Hapi 4: Lidhja e harduerit
- Hapi 5: Dizajni i softuerit
- Hapi 6: Rregulloni gabimet në Breadboard
- Hapi 7: Asambleja e harduerit
- Hapi 8: Dizajni i Strehimit Elektronik në Adobe Illustrator
- Hapi 9: Prototip kartoni
- Hapi 10: Prototipi i kompensatës së thuprës
- Hapi 11: Prototipi i Asamblesë Finale
Video: FinduCar: Një çelës i zgjuar i makinës që i udhëzon njerëzit atje ku është parkuar makina: 11 hapa (me fotografi)
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:22
Me qëllim të zgjidhjes së problemeve të mësipërme, ky projekt propozon zhvillimin e një çelësi të zgjuar të makinës i cili mund t'i drejtojë njerëzit atje ku e kanë parkuar makinën. Dhe plani im është integrimi i një GPS në çelësin e makinës. Nuk ka nevojë të përdorni aplikacionin smartphone për të gjurmuar makinën, të gjitha udhëzimet do të shfaqen vetëm në çelësin e makinës.
Hapi 1: Skica e letrës
Kur njerëzit shtypin butonin për të kyçur makinën, informacioni i vendndodhjes mund të regjistrohet automatikisht në mikrokontrollues. Pastaj, kur njerëzit fillojnë të lundrojnë në makinë, LED i ndryshëm ndizet për t'u drejtuar në pozicionin e makinës dhe frekuenca e ndezjes tregon distancën nga makina. Ata lehtë mund të ndjekin dritën LED që pulson dhe të gjejnë shpejt makinën.
Hapi 2: Lista e pajisjeve
Këta janë përbërësit e përdorur në këtë projekt. Disa janë nga grupet e grimcave (dërrasa buke, buton, tituj), të tjerat blihen nga faqja zyrtare e Adafruit (Adafruit Feather M0, Adafruit Ultimate GPS module, Lpoly Battery and Coin Cell Battery) dhe Amazon (NeoPixel Ring - 12 RGB LED).
Hapi 3: Dizajni i qarkut
Neopixel_LED është i lidhur me PIN 6 të Pendës M0
Button_Unlock është i lidhur me PIN 12 të Pendës M0
Button_Lock është i lidhur me PIN 13 të Pendës M0
Hapi 4: Lidhja e harduerit
Ngjitini titujt me pendën Adafruit M0, Adafruit Ultimate GPS Featherwing. Vendosini të dy bordet së bashku. GPS FeatherWing futet direkt në bordin tuaj Feather M0 pa më shumë tela.
Hapi 5: Dizajni i softuerit
Komponentët e Testit
Lexoni një FIX
void setup () {
Serial.println ("GPS eko test"); Serial.filloj (9600); Serial1.fill (9600); // parazgjedhja e NMEA GPS baud}
lak void () {
if (Serial.disponueshëm ()) {char c = Serial.read (); Serial1.shkruani (c); } if (Serial1.disponueshëm ()) {char c = Serial1.read (); Serial.shkruani (c); }}
Unaza LED e ndezjes
Shihni Shembujt Adafruit NeoPixel.
Funksionet e llogaritjes GPS
Llogaritni Azimuthin
// Llogarit Azimutin
azimuth i dyfishtë (i dyfishtë lat_a, i dyfishtë lon_a, i dyfishtë lat_b, i dyfishtë lon_b) {
dyfish 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; 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; kthimi d; }
Llogaritni kohën në orën LED, e cila është gjithashtu drejtimi i automjetit
// Llogaritni kohën në orën LED
int led_time (kënd i dyfishtë) {
int flamur = 0; nëse (këndi = 15) {koha_këndi = koha_këndi + 1; } if (flag == 1) {angle_time = 12 - angle_time; } koha_këndi i kthimit; }
Llogaritni distancën midis personit dhe automjetit të tij
// Llogarit Distancën
distancë e dyfishtë (dyshe lat_a, dyshe lon_a, dyshe lat_b, dyshe lon_b) {
dyshe EARTH_RADIUS = 6378137.0; radLat1 = (lat_a * PI / 180.0); radLat2 = (lat_b * PI / 180.0); dyfish a = radLat1 - radLat2; dyshe b = (lon_a - lon_b) * PI / 180.0; dyshe s = 2 * asin (sqrt (pow (sin (a / 2), 2) + cos (radLat1) * cos (radLat2) * pow (sin (b / 2), 2))); s = s * EARTH_RADIUS / 10000000; kthimi s; }
Funksionet e ekranit LED
Ndizni LED -të në një rreth që tregojnë se fillon të lundrojë
// Ndriçimi i unazës LED një nga një tregon se lundrimi fillon
ngjyra e pavlefshme Fshij (uint32_t c, uint8_t prit) {
për (uint16_t i = 0; i strip.setPixelColor (i, c); strip.show (); vonesë (prit);}}
Merrni frekuencën LED në bazë të distancës
// Merrni Frekuencën LED
frekuenca int (distancë e dyfishtë) {
int f = (int) distanca * 20; kthimi f; }
Mbyllni dritën LED të caktuar që tregon drejtimin e makinës
// Shfaq në LED
shirit.i qartë ();
shirit.shfaq (); vonesa (frekuenca (distanca_personi_ makinë)); // vonesë (500); strip.setPixelColor (koha_këndore, strip. Color (0, 0, 255)); shirit.shfaq (); vonesa (frekuenca (distanca_personi_ makinë)); // vonesë (500);
// Çaktivizoni LED
nëse (button_flag == 1 && distanca e makinës <5.0) {button_flag = 0; flamuri i udhëhequr = 1; shirit.i qartë (); shirit.shfaq (); }
Kryesore
#përfshi Adafruit_GPS.h #përfshi Adafruit_NeoPixel.h #përfshi HardwareSerial.h #përfshi Button.h #përfshi matematikën.h
#përcaktoni Neopixel_LED_PIN 6
#define Neopixel_LED_NUM 12 #define Button_Lock_PIN 13 #define Button_Unlock_PIN 12 #define GPSSerial Serial1
#përcaktoni GPSECHO false
Adafruit_GPS GPS (& GPSSerial); Rrip Adafruit_NeoPixel = Adafruit_NeoPixel (Neopixel_LED_NUM, Neopixel_LED_PIN, NEO_GRB + NEO_KHZ800); Butoni i butonit_bllokues (Butoni_Lock_PIN); Butoni i hapjes së butonit (Butoni_Unlock_PIN); int button_flag = 0; int led_flag = 1; kohëmatësi uint32_t = millis (); makinë e dyfishtë_lat, makinë_lon; makinë_person_distanca e dyfishtë; lëvizje_drejtim i dyfishtë; makinë e dyfishtë_azimuth; dykëndësh_këndi i makinës; int angle_time;
void setup () {
Serial.fillo (115200); // Serial1.filloj (9600); GPS.filloj (9600); // default NMEA GPS baud strip.begin (); // mos komentoni këtë linjë për të aktivizuar RMC (minimumi i rekomanduar) dhe GGA (rregulloni të dhënat) përfshirë lartësinë GPS.sendCommand (PMTK_SET_NMEA_OUTPUT_RMCGGA); // Vendosni normën e përditësimit GPS.sendCommand (PMTK_SET_NMEA_UPDATE_1HZ); // Shkalla e përditësimit 1 Hz // Kërkoni përditësime mbi statusin e antenës, komentoni për të heshtur // GPS.sendCommand (PGCMD_ANTENNA); vonesë (1000);}
lak void () {// if (Serial.disponueshëm ()) {
// char c = Serial.read (); // Serial1.shkruani (c); //} // nëse (Serial1.disponueshëm ()) {char c = GPS.read (); nëse (GPSECHO) nëse (c) Serial.print (c); // nëse një fjali merret, ne mund të kontrollojmë shumën e kontrollit, ta analizojmë atë … nëse (GPS.newNMEArecedived ()) {// një gjë e ndërlikuar këtu është nëse shtypim fjalinë NMEA, ose të dhënat // ne përfundojmë duke mos dëgjuar dhe kapja e fjalive të tjera! // prandaj jini shumë të kujdesshëm nëse përdorni OUTPUT_ALLDATA dhe përpiqeni të printoni të dhënat Serial.println (GPS.lastNMEA ()); // kjo gjithashtu vendos flamurin newNMEAreceived () në false nëse (! GPS.parse (GPS.lastNMEA ())) // kjo gjithashtu vendos flamurin newNMEAreceived () në kthim të rremë; // ne mund të dështojmë në analizimin e një fjalie, në të cilin rast thjesht duhet të presim për një tjetër} // nëse millis () ose kohëmatësi përfundon, thjesht do ta rivendosim nëse (timer> millis ()) timer = millis (); if (millis () - kohëmatësi> 2000) {timer = millis (); // rivendosni kohëmatësin Serial.print ("\ nOra:"); Serial.print (GPS.hour, DEC); Serial.print (':'); Serial.print (GPS.minute, DEC); Serial.print (':'); Serial.print (GPS.sekonda, DEC); Serial.print ('.'); Serial.println (GPS.milisekonda); Serial.print ("Data:"); Serial.print (GPS.day, DEC); Serial.print ('/'); Serial.print (GPS.month, DEC); Serial.print ("/20"); Serial.println (GPS.year, DEC); Serial.print ("Rregullo:"); Serial.print ((int) GPS.fix); Serial.print ("cilësia:"); Serial.println ((int) GPS.fixquality); if (GPS.fix) {Serial.print ("Vendndodhja:"); Serial.print (GPS.latitude, 4); Serial.print (GPS.lat); Serial.print (","); Serial.print (GPS.gjatësia, 4); Serial.println (GPS.lon); Serial.print ("Vendndodhja (në gradë, punon me Google Maps):"); Serial.print (GPS.latitudeDegrees, 4); Serial.print (","); Serial.println (GPS.gjatësia e gradave, 4); Serial.print ("Shpejtësia (nyjet):"); Serial.println (GPS.speed); Serial.print ("Këndi:"); Serial.println (GPS.angle); Serial.print ("Lartësia:"); Serial.println (GPS.altitude); Serial.print ("Satelitë:"); Serial.println ((int) GPS.satellites); // Ruani GPS -në e automjetit nëse (button_lock.read ()) {car_lat = GPS.latitudeDegrees; car_lon = GPS.longitudeDegrees; // për korrigjimin Serial.print ("carLatitude:"); Serial.println (car_lat); Serial.print ("carLongitude:"); Serial.println (makinë_lon); } // Filloni të gjeni makinën nëse (button_flag == 0) {button_flag = button_unlock.read (); } if (button_flag == 1 && led_flag == 1) {colorWipe (strip. Color (0, 255, 0), 500); flamuri i udhëhequr = 0; } if (button_flag == 1) {car_person_distance = distance (GPS.latitudeDegrees, GPS.longitudeDegrees, car_lat, car_lon); // Njehsoni distancën // distanca e_karbonit = distanca (100.0005, 100.0005, 100.0, 100.0); // për debug Serial.println (car_person_distance); move_direction = GPS.angle; // Regjistroni drejtimin e lëvizjes (këndi) // move_direction = 100.0; // Regjistroni Azimuthin (këndin) car_azimuth = azimuth (GPS.latitudeDegrees, GPS.longitudeDegrees, car_lat, car_lon); // makinë_azimuth = azimuth (100.0005, 100.0005, 100.0, 100.0); // Llogarit kohën në orën LED car_person_angle = car_azimuth - move_direction; koha_këndore = koha_ udhëheqëse (këndi_person_i makinës); // Shfaq në shiritin LED. I qartë (); shirit.shfaq (); // vonesa (frekuenca (distanca_personi_ makinë)); vonesë (500); strip.setPixelColor (koha_këndore, strip. Color (0, 0, 255)); shirit.shfaq (); // vonesa (frekuenca (distanca_personi_ makinë)); vonesë (500); // Çaktivizo LED nëse (button_flag == 1 && car_person_distance <5.0) {button_flag = 0; flamuri i udhëhequr = 1; shirit.i qartë (); shirit.shfaq (); }}} //}}}
Hapi 6: Rregulloni gabimet në Breadboard
Hapi 7: Asambleja e harduerit
Hapi 8: Dizajni i Strehimit Elektronik në Adobe Illustrator
Hapi 9: Prototip kartoni
Ky hap përdoret për të konfirmuar madhësinë e strehimit dhe çdo pjesë të modelit, duke u siguruar që madhësia e kutisë, pozicioni i butonit dhe pozicioni LED të përshtaten me përbërësit elektronikë të grumbulluar.
Hapi 10: Prototipi i kompensatës së thuprës
Ky ishte prototipi fillestar. Një vrimë katrore për t'u lidhur me një karikues u shtua në njërën prej pjesëve më në fund.
Hapi 11: Prototipi i Asamblesë Finale
Recommended:
Hyrja Biometrike e Makinave - Makina e Vërtetë pa Çelës: 4 Hapa
Hyrja Biometrike e Makinës - Makinë e vërtetë pa çelës: Disa muaj më parë vajza ime më pyeti, pse makinat moderne nuk janë të pajisura me sistem hyrjeje bio -metrikë, kur edhe një celular e ka atë. Që atëherë ishte duke punuar në zbatimin e së njëjtës dhe më në fund arrita të instaloj dhe provoj diçka në T -në time
Ndërtimi i alarmit të makinës pa çelës: 3 hapa
Ndërtimi i Alarmit të Makinave pa Çelës: Shumica e automjeteve moderne të nivelit të lartë vijnë me Alarm të makinave pa çelës ose PKE: siç thotë emri në makinën më të vogël nuk keni nevojë të përdorni asnjë çelës për të zhbllokuar/kyçur dyert dhe as të ndizni motorin e makinës. Për të zhbllokuar ose mbyllni dyert shoferi thjesht shtyp në sma
Nike LED Swoosh! Ky është një dekor i shkëlqyeshëm për një dhomë. Ky është një projekt që të gjithë mund ta përsërisin .: 5 hapa
Nike LED Swoosh! Ky është një dekor i shkëlqyeshëm për një dhomë. Ky është një projekt që të gjithë mund ta përsërisin .: Mjetet -masë-kaçavidë-hekur saldimi-sharrë për përballim-stërvitje elektrike-letër zmerile Furnizon-Rrip LED (RGB) 5m-kontrollues LED-Furnizim me energji 12V 4A-lëndë drusore 50-50-1500 2x-lëndë druri 20-20-3000 2x-kompensatë 500-1000mm-vida (45mm) 150x-vida (35mm) 30x-scr
Një mënyrë vërtet e thjeshtë/e lehtë/jo e ndërlikuar për t'i bërë njerëzit/njerëzit/kafshët/robotët të duken sikur kanë vërtet vizion të nxehtë të ftohtë/të ndritshëm (ngjyra sipas zgjedhjes suaj) duke përdorur GIMP: 4 hapa
Një mënyrë vërtet e thjeshtë/e lehtë/jo e komplikuar për t'i bërë njerëzit/njerëzit/kafshët/robotët të duken sikur kanë vërtet vizion të nxehtë të ftohtë/të ndritshëm (ngjyra sipas zgjedhjes suaj) Duke përdorur GIMP: Lexoni … titullin
Hack një zile derë pa tel në një çelës alarmi pa tel ose çelës aktivizues/fikës: 4 hapa
Hack një zile derë pa tel në një çelës alarmi pa tel ose çelës aktivizues/fikës: Kohët e fundit kam ndërtuar një sistem alarmi dhe e kam instaluar në shtëpinë time. Kam përdorur çelsat magnetikë në dyert dhe i kam lidhur ato me papafingo. Dritaret ishin një histori tjetër dhe instalimi i fortë i tyre nuk ishte një opsion. Kisha nevojë për një zgjidhje pa tel dhe kjo është