Orodha ya maudhui:
- Hatua ya 1: Vipengele
- Hatua ya 2: Kusanya na Kupakia
- Hatua ya 3: Kutumia Kifaa
- Hatua ya 4: Njia zingine
Video: Mfumo wa Kompyuta Kufuli kiotomatiki: Hatua 4
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:52
Katika mafunzo haya tutachunguza usalama wa skrini ya kompyuta. Mifumo ya uendeshaji ina muda wa kusanidi ambao utafunga skrini yako ikiwa mtumiaji hajagusa panya au kibodi.
Kawaida chaguo-msingi ni karibu dakika moja. Ukifuata chaguo-msingi hiki na kuacha kompyuta yako katika mazingira yenye shughuli nyingi mtu anaweza kufikia kompyuta yako kwa dakika hiyo hadi skrini ifungwe. Ukiiweka kwa sekunde chache utapata skrini ya kufunga mara nyingi sana wakati haugusi kibodi na hiyo inakera…
Siku moja mfanyakazi mwenzangu aliniuliza ikiwa naweza "kurekebisha" suala hili kwa aina fulani ya kifaa kinachofunga kompyuta wakati hayupo, na nikachukua changamoto:)
Nimechunguza chaguzi kadhaa kichwani mwangu kama kutumia arduinos na sensor ya infrared thermometer, sensor ya PIR au labda kutumia utambuzi wa uso kwenye kompyuta, lakini nimekaa kwa njia rahisi:
Tutachanganya utendaji wa Arduino Leonardo HID (kuiga kibodi) na sensa ya umbali wa kugundua ikiwa mtu anatumia kompyuta, ikiwa sivyo kifaa kitatuma mchanganyiko muhimu kupitia USB ili kufunga kompyuta.
Hatua ya 1: Vipengele
Kwa sababu hii ni uthibitisho wa dhana tutaunda kifaa kwenye ubao wa mkate
Utahitaji:
1. Arduino Leonardo (ni muhimu kumtumia Leonardo kwa sababu inaweza kuiga kibodi)
2. HC-SR04 sensor ya umbali wa ultrasonic
3. 2 x 10 K vipinga tofauti
4. ubao wa mkate, waya za mkate
5. Kebo ya USB
Onyesho la OLED (https://www.adafruit.com/product/931)
Hatua ya 2: Kusanya na Kupakia
Kwanza angalia ikiwa una vifaa vyote vinavyohitajika na IDE ya Arduino. Nitaenda kwa kifupi kwa hatua za unganisho, na unaweza kutazama kila wakati muundo wa fritzing ulioambatanishwa
Mkutano
1. Weka Leonardo kwenye ubao wa mkate na ushikilie mahali pake na bendi ya mpira
2. weka vipikizi viwili vya kutofautisha, onyesho la OLED na sensor ya ultrasonic kwenye ubao wa mkate
3. unganisha viwanja na vcc's
4. unganisha pini za katikati za vipinga na arduino A0 na A1
5. unganisha SDA na SCL ya onyesho kwa SDA na SCL iliyowekwa alama kwenye Leonardo
6. unganisha kichocheo na pini ya mwangwi ya sensa ya ultrasonic kwa pini 12, 13 za dijiti za Leonardo
7. unganisha USB kwenye kompyuta
Pakia
Kwanza kabisa utahitaji kupakua na kusanikisha maktaba muhimu za arduino:
1. Maktaba ya GOFi2cOLED:
2. Maktaba ya Ultrasonic-HC-SR04:
Ikiwa haujui jinsi ya kusanikisha maktaba za arduino angalia mafunzo haya.
Baada ya kupakua na kusanikisha maktaba hapo juu, unaweza kushikilia au kupakua hazina yangu ya arduino iliyoko hapa: https://github.com/danionescu0/arduino, na tutatumia mchoro huu: https://github.com/danionescu0 / arduino / mti / bwana…
Au unaweza kunakili na kubandika nambari hapa chini:
/ * * Maktaba zinazotumiwa na mradi huu: * * GOFi2cOLED: https://github.com/hramrach/GOFi2cOLED * Ultrasonic-HC-SR04: https://github.com/JRodrigoTech/Ultrasonic-HC-SR04 * / #include "Kinanda.h" # pamoja na "Wire.h" # pamoja na "GOFi2cOLED.h" # pamoja na "Ultrasonic.h"
GOFi2cOLED GOFoled;
Ultrasonic ultrasonic (12, 13);
const byte umbaliPot = A0;
tim byte timerPot = A1; asilimia ya kuelea ya ConstaxMaxDistanceChangedAllowed = 25; int actualDistance; saini ndefu maxDistanceDetectionTime; bool lockTimerStarted = uongo;
kuanzisha batili ()
{Serial.begin (9600); Kinanda.anza (); AnzishaDisplay (); }
kitanzi batili ()
{clearDisplay (); Usaidizi halisi = pataUsaidizi wa kweli (); andikaStatusData (); fanya Onyesha (); ikiwa (! lockTimerStarted && shouldEnableLockTimer ()) {lockTimerStarted = kweli; maxDistanceDetectionTime = milimita (); Serial.println ("kipima muda cha kuanza"); } mwingine ikiwa (! shouldEnableLockTimer ()) {Serial.println ("lock timer imelemazwa"); lockTimerStarted = uwongo; } ikiwa (inapaswaLockScreen ()) {lockScreen (); Serial.println ("Skrini iliyofungwa"); } kuchelewa (100); }
bool inapaswa LockScreen ()
{kurudi lockTimerStarted && (millis () - maxDistanceDetectionTime) / 1000> getTimer (); }
bool inapaswa WezeshaLockTimer ()
{int kuruhusiwaDistance = percentMaxDistanceChangedAllowed / 100 * getDistance (); kurudi GetTimer ()> 1 && getDistance ()> 1 && actualDistance - getDistance ()> ruhusaDistance; }
kuandikaStatusData ()
{setDisplayText (1, "MinDistance:", Kamba (getDistance ())); setDisplayText (1, "Timer:", String (GetTimer ())); setDisplayText (1, "Ukweli halisi:", Kamba (actualDistance)); int countDown = GetTimer () - (millis () - maxDistanceDetectionTime) / 1000; Ujumbe wa kamba = ""; ikiwa (shouldLockScreen ()) {message = "lock sent"; } kingine ikiwa (inapaswaEnableLockTimer () && countDown> = 0) {message = ".." + String (countDown); } mwingine {message = "no"; } setDisplayText (1, "Kufunga:", ujumbe); }
tupu initializeDisplay ()
{GOFoled.init (0x3C); GOFoled. clearDisplay (); Mshale wa GOFoled.set (0, 0); }
batili setDisplayText (byte fontSize, String studio, String data)
{GOFoled.setTextSize (fontSize); GOFoled.println (lebo + ":" + data); }
Onyesha batili ()
{GOFoled.display (); }
batili waziDisplay ()
{GOFoled.clearDisplay (); Mshale wa GOFoled.set (0, 0); }
upataji wa Ukweli ()
{int umbaliSum = 0; kwa (byte i = 0; i <10; i ++) {distanceSum + = ultrasonic. Kubadilisha (CM); }
umbali wa kurudiSum / 10;
}
kupata GetDistance ()
{ramani ya kurudi (AnalogRead (TimerPot), 0, 1024, 0, 200); }
kupataTimer ()
{ramani ya kurudi (AnalogSoma (umbaliPot), 0, 1024, 0, 20); }
utupu wa kufunga Skrini ()
{Serial.println ("kubonyeza"); Kinanda.press (KEY_LEFT_CTRL); kuchelewesha (10); Kinanda.press (KEY_LEFT_ALT); kuchelewesha (10); Andika kibodi ('l'); kuchelewesha (10); Kinanda.releaseAll (); }
Mwishowe unganisha arduino kompyuta kwa kutumia kebo ya usb, na upakie mchoro kwenye arduino.
Hatua ya 3: Kutumia Kifaa
Wakati arduino imeunganishwa na kompyuta itaendelea kufuatilia umbali mbele ya sensor na kutuma mchanganyiko wa kitufe cha "lock" kwa kompyuta ikiwa umbali unaongezeka.
Kifaa kina usanidi fulani:
1. Umbali wa kawaida, umbali unaweza kusanidiwa kwa kutumia kontena inayobadilika iliyounganishwa na A0. Umbali pia unaonyeshwa kwenye OLED. Wakati umbali utaongezeka na 25% kutoka kwa ile ambayo imewekwa hesabu itaanza
2. Muda wa kuisha (countdown). Kuisha kwa sekunde pia kunaweza kusanidiwa kutoka kwa kontena iliyounganishwa na A1. Wakati wa kuisha utakapomalizika amri ya kufuli itatumwa
3. Lock mchanganyiko muhimu. Mchanganyiko wa ufunguo wa chaguo-msingi umewekwa ili kufanya kazi kwa Ubuntu Linux 18 (CTRL + ALT + L). Ili kubadilisha mchanganyiko unahitaji kurekebisha mchoro wako kulingana na mfumo wako wa operesheni:
4. Muda wa ulinzi na umbali. Kwa sababu hiki ni kifaa kinachotoa kibodi ni wazo nzuri kuwa na utaratibu wa kuzima utendaji wa kibodi. Katika mchoro wangu nimechagua kuwa muda wa kuisha na umbali lazima uwe mkubwa zaidi ya "1". (unaweza kurekebisha hiyo kwenye nambari ikiwa unapenda)
Pata na ubadilishe kazi ya "lockScreen ()"
batili lockScreen () {Serial.println ("kubonyeza"); Kinanda.press (KEY_LEFT_CTRL); kuchelewesha (10); Kinanda.press (KEY_LEFT_ALT); kuchelewesha (10); Andika kibodi ('l'); kuchelewesha (10); Kinanda.releaseAll (); }
Kwa orodha kamili ya funguo maalum za arduino, angalia hapa:
Hatua ya 4: Njia zingine
Kabla ya utekelezaji huu nimezingatia utekelezaji mwingine pia:
1. Kipimajoto cha infrared (MLX90614 https://www.sparkfun.com/products/10740). Thermometer ya infrared ni kifaa kinachopima joto kwa kuchambua mionzi ya infrared inayotolewa na kitu kwa mbali. Nilikuwa na mmoja amelala karibu na nilifikiri labda ninaweza kugundua tofauti ya joto mbele ya kompyuta.
Nimeiunganisha, lakini tofauti ya joto ilikuwa ndogo sana (wakati nilikuwa mbele au la) digrii 1-2 na nilidhani haiwezi kuaminika sana
2. Sensor ya PIR. (https://www.sparkfun.com/products/13285) Sensorer hizi za bei rahisi zinauzwa kama "sensorer za mwendo" lakini hugundua mabadiliko katika mionzi ya infrared kwa hivyo kwa nadharia inaweza kufanya kazi, mtu anapoondoka kwenye kompyuta sensor itagundua. hiyo.. Pia sensorer hizi zina mkusanyiko wa vitisho vya muda wa kumaliza na unyeti. Kwa hivyo nimeunganisha moja na kucheza nayo lakini inaonekana kwamba sensorer haijatengenezwa kwa anuwai ya karibu (ina pembe pana), ilitoa kila aina ya tahadhari za uwongo.
3. Kugundua uso kwa kutumia kamera ya wavuti. Chaguo hili lilionekana kuvutia sana, kwani nilicheza na uwanja huu wa kompyuta katika miradi yangu mingine kama: https://github.com/danionescu0/robot-camera-platfo… na https://github.com/danionescu0/image-processing- pr…
Hii ilikuwa kipande cha keki! Lakini kulikuwa na mapungufu: kamera ya mbali haiwezi kutumiwa kwa madhumuni mengine wakati programu hiyo ilikuwa ikiendelea, na rasilimali zingine za kompyuta zingehitajika kwa hilo. Kwa hivyo nimeacha wazo hili pia.
Ikiwa una maoni zaidi juu ya jinsi hii inaweza kufanywa tafadhali shiriki, asante!
Ilipendekeza:
Mfumo wa Kiotomatiki wa Nguvu ya chini ya Nguvu ya WiFi: Hatua 6 (na Picha)
Mfumo wa Uendeshaji wa Nyumbani wa Nguvu ya Ultra-low Power: Katika mradi huu tunaonyesha jinsi unaweza kujenga mfumo msingi wa kiotomatiki wa nyumbani kwa hatua chache. Tutatumia Raspberry Pi ambayo itafanya kama kifaa cha kati cha WiFi. Kwa kuwa nodi za mwisho tutatumia kriketi ya IOT kutengeneza nguvu ya betri
Ofisi ya Powered Battery. Mfumo wa jua na Kugeuza kiotomatiki Paneli za jua za Mashariki / Magharibi na Turbine ya Upepo: Hatua 11 (na Picha)
Ofisi ya Powered Battery. Mfumo wa jua na Kugeuza kiotomatiki Paneli za jua za Mashariki / Magharibi na Turbine ya Upepo: Mradi: Ofisi ya mraba 200 inahitajika kuwezeshwa na betri. Ofisi lazima pia iwe na vidhibiti vyote, betri na vifaa vinavyohitajika kwa mfumo huu. Nguvu ya jua na upepo itachaji betri. Kuna tatizo kidogo la
Mfumo wa Kujibu kiotomatiki V1.0: Hatua 17 (na Picha)
Mfumo wa Kujibu kiotomatiki V1.0: Wakati mwingine huwa sijisikii kama kujibu simu. Sawa, sawa … wakati mwingi sijali kujibu simu. Ninaweza kusema nini, mimi ni mtu mwenye shughuli nyingi. Kwa muda mrefu nimekuwa nikitaka mfumo sawa na ule ambao kampuni ya simu kwa th
Mfumo wa Kufuli wa RFID Kutumia Arduino: Hatua 6
Mfumo wa Kufuli wa RFID Kutumia Arduino: Halo kila mtu, Hii ndio mafunzo yangu ya kwanza na iliwasilishwa na Judhi Prasetyo. Warsha hiyo iliendeshwa na Bunge, ambapo ninafanya kazi kama mwanafunzi na ni moja ya mahali pazuri pa kufanya kazi ikiwa wewe ni mtengenezaji. Kurudi kwenye mfumo wa kufuli wa RFID, mimi
Ukarabati wa Shida ya Kompyuta ngumu ya Kompyuta (Kushindwa kwa Diski ya mfumo na Kuvunjika kwa PSU na Faili Zilizokosa / Rushwa): Hatua 4
Kukarabati Tatizo La Msingi La Kompyuta Kubwa (Kushindwa kwa Diski ya Mfumo na Kuvunjika kwa PSU na Faili Zilizokosa / Rushwa): KIONGOZO HIKI BADO HAJAKAMALIZWA, NITAONGEZA TAARIFA ZAIDI NINAPOPA NAFASI. Ikiwa unahitaji msaada wowote kwa kurekebisha kompyuta au ikiwa kuwa na maswali yoyote wakati wote jisikie huru kunitumia " Katika hii nitafundishwa nitakuambia jinsi ya kutengeneza com ya msingi