Mündəricat:
- Addım 1: Komponentlər
- Addım 2: Montaj və Yükləmə
- Addım 3: Cihazdan istifadə
- Addım 4: Digər yanaşmalar
Video: Avtomatik kilidləmə kompüter sistemi: 4 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:46
Bu təlimatda kompüter ekran kilidinin təhlükəsizliyini araşdıracağıq. Əməliyyat sistemlərində istifadəçi siçana və ya klaviaturaya toxunmadığı təqdirdə ekranınızı kilidləyəcək konfiqurasiya edilə bilən bir fasilə var.
Varsayılan adətən bir dəqiqəyə yaxındır. Bu standarta əməl etsəniz və kompüterinizi sıx bir mühitdə tərk etsəniz, ekran kilidlənənə qədər kimsə kompüterinizə daxil ola bilər. Bir neçə saniyəyə təyin etsəniz, klaviaturaya toxunmadığınız zaman tez -tez kilid ekranı alacaqsınız və bu sizi narahat edir …
Bir gün bir iş yoldaşı məndən soruşdu ki, bu problemi kompüteri orada olmadıqda kilidləyən bir cihazla "həll edə bilərəmmi?"
Arduino və infraqırmızı termometr sensoru, PIR sensoru və ya bəlkə də kompüterdə üz tanıma istifadə etmək kimi başımda bir neçə variant araşdırdım, amma daha sadə bir üsula qərar verdim:
Arduino Leonardo HID funksiyasını (klaviaturanı təqlid etmək) ultrasəs məsafə sensoru ilə birləşdirərək bir insanın kompüterdən istifadə edib -etmədiyini aşkar edəcəyik, əks halda cihaz kompüteri bağlamaq üçün USB vasitəsilə düymələr kombinasiyasını göndərəcək.
Addım 1: Komponentlər
Bu, cihazı çörək taxtası üzərində quracağımız anlayışın bir sübutudur
Lazım olacaq:
1. Arduino Leonardo (Leonardodan istifadə etmək vacibdir, çünki klaviaturanı təqlid edə bilər)
2. HC-SR04 ultrasəs məsafə sensoru
3. 2 x 10 K dəyişən rezistorlar
4. çörək taxtası, çörək taxtası telləri
5. USB kabeli
6. OLED ekran (https://www.adafruit.com/product/931)
Addım 2: Montaj və Yükləmə
Əvvəlcə bütün lazımi komponentlərin və Arduino IDE -nin olub olmadığını yoxlayın. Qısaca keçid addımlarına gedəcəyəm və hər zaman əlavə olunan qıvrım sxeminə nəzər sala bilərsiniz
Məclis
1. Leonardonu çörək taxtasına qoyun və rezin bantla yerində saxlayın
2. iki dəyişən rezistoru, OLED ekranı və ultrasəs sensorunu çörək taxtasına qoyun
3. sahələri və vcc -ləri birləşdirin
4. rezistorların orta sancaqlarını arduino A0 və A1 -ə qoşun
5. ekranın SDA və SCL -ni Leonardoda qeyd olunan SDA və SCL -ə qoşun
6. ultrasəs sensorunun tetikleyicisini və yankı pinini Leonardonun 12, 13 rəqəmsal pininə qoşun
7. USB -ni kompüterə qoşun
Yükləmək
Əvvəlcə lazımi arduino kitabxanalarını yükləməli və quraşdırmalısınız:
1. GOFi2cOLED kitabxanası:
2. Ultrasonik-HC-SR04 kitabxanası:
Arduino kitabxanalarını necə quracağınızı bilmirsinizsə, bu təlimatı oxuyun.
Yuxarıdakı kitabxanaları yüklədikdən və yüklədikdən sonra buradakı arduino depomu klonlaya və ya yükləyə bilərsiniz: https://github.com/danionescu0/arduino və bu eskizi istifadə edəcəyik: https://github.com/danionescu0 /arduino/ağac/usta…
Və ya aşağıdakı kodu kopyalayıb yapışdıra bilərsiniz:
/ * * Bu layihənin istifadə etdiyi kitabxanalar: * * GOFi2cOLED: https://github.com/hramrach/GOFi2cOLED * Ultrasonic-HC-SR04: https://github.com/JRodrigoTech/Ultrasonic-HC-SR04 */#include "Keyboard.h" #"Wire.h" daxil et "GOFi2cOLED.h" daxil et "Ultrasonik.h" daxil et
GOFi2cOLED GOFoled;
Ultrasonik ultrasəs (12, 13);
const bayt məsafəsiPot = A0;
const bayt timerPot = A1; const float faizMaxDistanceChangedAllowed = 25; int actualDistance; işarəsiz uzun maxDistanceDetectionTime; bool lockTimerStarted = yalan;
boş quraşdırma ()
{Serial.begin (9600); Keyboard.begin (); başlatmaDisplay (); }
boşluq döngəsi ()
{clearDisplay (); actualDistance = getActualDistance (); writeStatusData (); doDisplay (); if (! lockTimerStarted && shouldEnableLockTimer ()) {lockTimerStarted = true; maxDistanceDetectionTime = milis (); Serial.println ("kilid taymeri başlayır"); } else if (! shouldEnableLockTimer ()) {Serial.println ("kilid taymeri əlil"); lockTimerStarted = yalan; } if (shouldLockScreen ()) {lockScreen (); Serial.println ("Ekran kilidi"); } gecikmə (100); }
bool shouldLockScreen ()
{return lockTimerStarted && (millis () - maxDistanceDetectionTime) / 1000> getTimer (); }
bool olmalıdırEnEnableLockTimer ()
{int icazə verilən məsafə = faizMaxDistanceChangedAllowed / 100 * getDistance (); getTimer ()> 1 && getDistance ()> 1 && actualDistance - getDistance ()> icazə verilən məsafə; }
yazmaqStatusData () boşdur
{setDisplayText (1, "MinDistance:", String (getDistance ())); setDisplayText (1, "Taymer:", String (getTimer ())); setDisplayText (1, "AktualDistance:", String (actualDistance)); int countDown = getTimer () - (milis () - maxDistanceDetectionTime) / 1000; String mesajı = ""; if (shouldLockScreen ()) {message = "kilid göndərildi"; } else if (shouldEnableLockTimer () && countDown> = 0) {message = ".." + String (countDown); } başqa {mesaj = "yox"; } setDisplayText (1, "Kilidləmə:", mesaj); }
void initializeDisplay ()
{GOFoled.init (0x3C); GOFoled.clearDisplay (); GOFoled.setCursor (0, 0); }
void setDisplayText (byte fontSize, String label, String data)
{GOFoled.setTextSize (fontSize); GOFoled.println (etiket + ":" + məlumatlar); }
void doDisplay ()
{GOFoled.display (); }
void clearDisplay ()
{GOFoled.clearDisplay (); GOFoled.setCursor (0, 0); }
int getActualDistance ()
{int məsafəSum = 0; for (bayt i = 0; i <10; i ++) {distanceSum+= ultrasəs. Aralıq (CM); }
dönüş məsafəsiSum / 10;
}
int getDistance ()
{dönüş xəritəsi (analogRead (timerPot), 0, 1024, 0, 200); }
int getTimer ()
{dönüş xəritəsi (analogRead (distancePot), 0, 1024, 0, 20); }
void lockScreen ()
{Serial.println ("basaraq"); Keyboard.press (KEY_LEFT_CTRL); gecikmə (10); Keyboard.press (KEY_LEFT_ALT); gecikmə (10); Keyboard.write ('l'); gecikmə (10); Keyboard.releaseAll (); }
Nəhayət, usdu kabelindən istifadə edərək arduino kompüterini qoşun və eskizini arduinoya yükləyin.
Addım 3: Cihazdan istifadə
Arduino kompüterə qoşulduqda, sensorun qarşısındakı məsafəni davamlı olaraq izləyəcək və məsafə artarsa kompüterə "kilid" ekran düymələri kombinasiyasını göndərəcək.
Cihazın bəzi konfiqurasiyaları var:
1. Normal məsafə, məsafə A0 -a bağlı dəyişən müqavimət istifadə edərək konfiqurasiya edilə bilər. Məsafə OLED -də də göstərilir. Məsafə 25% artdıqda geri sayma başlayacaq
2. Zaman aşımı (geri sayma). A1 -ə qoşulan rezistordan saniyələrdəki fasilə də konfiqurasiya edilə bilər. Vaxt bitdikdə kilidləmə əmri göndəriləcək
3. Kilidi açar kombinasiyası. Varsayılan kilid düymələri birləşməsi Ubuntu Linux 18 (CTRL+ALT+L) üçün işləmək üçün qurulmuşdur. Kombinasiyanı dəyişdirmək üçün eskizinizi əməliyyat sisteminizə uyğun olaraq dəyişdirməlisiniz:
4. Zaman aşımı və məsafədən qorunma. Bu, klaviaturanı təqlid edən bir cihaz olduğundan, klaviatura funksiyalarını deaktiv etmək mexanizminin olması yaxşı olar. Eskizimdə zaman aşımı və məsafənin "1" dən daha böyük olmasını seçdim. (İstəsəniz bunu kodda dəyişə bilərsiniz)
"LockScreen ()" funksiyasını tapın və dəyişdirin
void lockScreen () {Serial.println ("basaraq"); Keyboard.press (KEY_LEFT_CTRL); gecikmə (10); Keyboard.press (KEY_LEFT_ALT); gecikmə (10); Keyboard.write ('l'); gecikmə (10); Keyboard.releaseAll (); }
Arduino xüsusi açarlarının tam siyahısı üçün bura baxın:
Addım 4: Digər yanaşmalar
Bu tətbiqdən əvvəl digər tətbiqləri də nəzərdən keçirdim:
1. İnfraqırmızı termometr (MLX90614 https://www.sparkfun.com/products/10740). İnfraqırmızı termometr, bir obyektin uzaqdan yaydığı infraqırmızı radiasiyanı analiz edərək temperaturu ölçən bir cihazdır. Ətrafımda yatan biri vardı və düşündüm ki, bəlkə də kompüterin qarşısında temperatur fərqini aşkar edə bilərəm.
Bağladım, amma temperatur fərqi çox kiçik idi (qabaqda olanda da yox idi) 1-2 dərəcə idi və düşünürdüm ki, bu qədər etibarlı ola bilməz
2. PIR sensoru. (https://www.sparkfun.com/products/13285) Bu ucuz sensorlar "hərəkət sensoru" olaraq satılır, lakin həqiqətən infraqırmızı radiasiyadakı dəyişiklikləri aşkar edirlər, buna görə də bir adam kompüteri tərk edəndə sensorun aşkar edə biləcəyi nəzəri olaraq işləyə bilər. ki.. Həmçinin bu sensorlar zaman aşımı və həssaslıq düymələrinə malikdir. Beləliklə, birini bağladım və onunla oynadım, amma görünür ki, sensor yaxın məsafədə deyil (geniş bir bucağa malikdir), hər cür yalan xəbərdarlıq verdi.
3. Veb kameradan istifadə edərək üz tanıma. Bu kompüter sahəsi ilə digər layihələrimdə oynadığım üçün bu seçim çox maraqlı görünürdü: https://github.com/danionescu0/robot-camera-platfo… və https://github.com/danionescu0/image-processing- pr…
Bu tort parçası idi! Ancaq bəzi çatışmazlıqlar var idi: proqram işləyərkən noutbuk kamerası başqa məqsədlər üçün istifadə edilə bilməzdi və bunun üçün bəzi kompüter qaynaqları tələb olunacaqdı. Buna görə də bu fikri tərk etdim.
Bunun necə edilə biləcəyinə dair daha çox fikriniz varsa, paylaşın, təşəkkürlər!
Tövsiyə:
K40 lazer kəsici üçün kilidləmə təhlükəsizlik açarları necə edilir: 4 addım (şəkillərlə)
K40 lazer kəsici üçün kilidləmə təhlükəsizlik açarları necə edilir: Vacib redaktə! Zəhmət olmasa kilidlərinizi maşının elektrik şəbəkəsinə bağlamayın. Bunun əvəzinə PSU üzərindəki PG pinlərinə tel bağlayın. Tezliklə tam bir yeniləmə aparacaq. -Tony 7/30-19 İnternetdəki yeni məsləhətləriniz üçün ilk məsləhətlərdən biri nədir?
5 LDR dövrəsi: kilidləmə, taymerlər, işıq və qaranlıq sensorlar: 3 addım
5 LDR Dövrü: Kilidləmə, Taymerlər, İşıq və Qaranlıq Sensorları: İşığa Bağlı Rezistor, aka LDR, üzərinə düşən işıq intensivliyi ilə dəyişən (dəyişən) müqavimət göstərən bir komponentdir. Bu, onların işıq algılama sxemlərində istifadə edilməsinə imkan verir.Burada, mən ola biləcək beş sadə dövrə göstərdim
Röleler (DC): 99.9% Daha Az Güc və Kilidləmə Seçimi: 5 Addım (Şəkillərlə)
Röleler (DC): 99.9% Daha Az Güc və Kilidləmə Seçimi: Röleyi dəyişdirmə elektrik idarəetmə sistemlərinin əsas elementidir. Ən azı 1833 -cü ilə aid olan, teleqraf sistemləri üçün erkən elektromaqnit röleləri inkişaf etdirildi. Vakuum borularının və daha sonra yarımkeçiricilərin icad edilməsindən əvvəl, röleler u
ATX PSU Dönüşümü üçün kilidləmə ani keçid: 4 addım
ATX PSU Dönüşümü üçün kilidli ani keçid: Bəs nə? Dediyinizi eşidirəm! Qalan bir anlıq keçid? Əlbəttə ki, belə bir şey mümkün deyil! Dizaynı şəbəkədə tapdım və bir az düzəltdim ki, bir ATX psu -ya qoşulduqda PSU bağlanarsa düzgün parametrlərə keçər
İPhone kilidləmə bilək kəməri: 4 addım
IPhone Kilidli Bilək Kəməri: iPhone ilə bir körpüdə şəkil çəkdiyinizi düşünün. Onu atarsan və 200 dollar çıxarsan. Bunun baş verməməsi üçün üç seçiminiz var. 1, körpülərdə şəkil çəkməyin. 2, danglet üçün $ 15 qoyun http: //www.collinsamerica.c