ዝርዝር ሁኔታ:
ቪዲዮ: የአስማት አዝራር 4 ኪ: 20USD BMPCC 4k (ወይም 6 ኪ) ገመድ አልባ የርቀት መቆጣጠሪያ 4 ደረጃዎች (ከስዕሎች ጋር)
2024 ደራሲ ደራሲ: John Day | [email protected]. ለመጨረሻ ጊዜ የተሻሻለው: 2024-01-30 07:29
ብዙ ሰዎች ስለ BMPCC4k ስለ ሽቦ አልባ መቆጣጠሪያዬ አንዳንድ ዝርዝሮችን እንዳካፍል ጠይቀውኛል። አብዛኛዎቹ ጥያቄዎች ስለ ብሉቱዝ ቁጥጥር ነበሩ ፣ ስለዚህ ስለዚያ ጥቂት ዝርዝሮችን እጠቅሳለሁ። ከ ESP32 አርዱinoኖ አካባቢ ጋር የሚያውቁት ይመስለኛል።
ይህ የርቀት መቆጣጠሪያ ስሪት በብሉቱዝ በኩል የካሜራውን ቀረፃ ፣ ትኩረት እና ቀዳዳ መቆጣጠር ይችላል። ቪዲዮውን ይመልከቱ። በ BMPCC4k የብሉቱዝ መቆጣጠሪያ መመሪያ መሠረት ተጨማሪ የቁጥጥር ተግባሮችን ማከል በጣም ቀላል ነው። እኔ እንዳየሁት በመሠረቱ በካሜራው ውስጥ ያለ ማንኛውም ነገር ቁጥጥር ሊደረግበት ይችላል።
የአንድን ርዕሰ ጉዳይ ርቀት ለመለካት የ “LIDAR” ሞዱልን ማከል ቀላል እርምጃ ይሆናል ፣ ስለዚህ አንድ ዓይነት የራስ -ማተኮር ስርዓት ማግኘት ይችላሉ… ምንም እንኳን እንደ ዓይኖች ያሉ የተወሰኑ አካባቢዎች ላይ በቂ የሆነ በቂ ትኩረት ማግኘት ቢችሉ አጠራጣሪ ቢሆንም…
አዘምን 2020 - እኔ ስሪት 3.0 አድርጌያለሁ። መግነጢሳዊ ኢንኮደርን በመጠቀም በነፃ በሚሽከረከር ጎማ ላይ የተመሠረተ ነው። እንዲሁም ከእኔ የሚከተለው የትኩረት ሞተር ጋር ይገናኛል ፣ እሱም በመሠረቱ ሁለተኛ የብሉቱዝ መሣሪያ ይሆናል (ESP32 በርካታ የብሉቱዝ ግንኙነቶችን ይደግፋል)። አዲሱ ቪዲዮ ይህንን ያሳያል።
ሥሪት 3 ን ለማዘዝ ከፈለጉ እባክዎን በ MagicButton ድርጣቢያ ላይ ይመልከቱ
አቅርቦቶች
ማንኛውም የ ESP32 ሞዱል ከ wifi እና ብሉቱዝ ጋር። እኔ TTGO micro32 ን ተጠቀምኩ ምክንያቱም ጥቃቅን ስለሆነ
የትኩረት መንኮራኩር ፣ ማንኛውም ፖታቲሞሜትር ያደርግ ነበር። እኔ ጥቃቅን ስለሆንኩ የሚከተለውን ተጠቅሜያለሁ - https://www.aliexpress.com/item/32963061806.html? S… ይህ ዓይነቱ የላይኛው እና የታችኛው ድንበር ላይ ጠንካራ ማቆሚያዎች አሉት። በመጪው ስሪት ውስጥ ሮታሪ ኢንኮደርን እጠቀማለሁ። በዚህ መንገድ ትኩረቴ ወይም መክፈቻው ወደ ሁነታ ስገባ ወደ የአሁኑ የጎማ ቅንብር “አይዘልም”።
የተደጋጋሚ/ሞድ ቁልፍ። የሚከተለውን ተጠቅሜያለሁ https://www.aliexpress.com/item/32806223591.html? S…
እንደ ሬስቶራንት ፣ ካፕ ፣ ወዘተ ያሉ ሌሎች መደበኛ ክፍሎች…
ደረጃ 1 - ኮዱ
በኤፒ ሞድ ውስጥ ከሚታወቅ አውታረ መረብ ጋር ለመገናኘት የ ESP32 ን የ wifi ችሎታ እጠቀማለሁ ፣ ወይም በመስኩ ውስጥ ሳለሁ ፣ እኔ የምገናኝበት ጣቢያ (STA) ይሆናል። በዚህ መንገድ ሞጁሉን ማዋቀር እችላለሁ። ስለ wifi/ድረ -ገጽ ክፍል በዝርዝር አልናገርም ፣ ይህንን በሚቀጥለው ደረጃ ላይ ማከል እችል ይሆናል።
ESP32 ከካሜራ ጋር ተገናኝቶ የብሉቱዝ ሊ ደንበኛ ይሆናል። በ Arduino ESP32 ማዕቀፍ ውስጥ የተካተተው የብሉቱዝ ኮድ ከ BMPCC4k ጋር አይሰራም። ዋቅክ-ኮባ ለእኛ አስተካክሎልናል። አመሰግናለሁ Wakwak-koba! የ BLE ቤተመጽሐፉን ከዚህ ተጠቀምኩኝ
github.com/wakwak-koba/arduino-esp32
የሆነ ሆኖ ያ የ BLE lib ስሪት ገና በመገንባት ላይ ነው እና የቅርብ ጊዜው የ BLEUUID.cpp ስሪት በአሁኑ ጊዜ የሚሰራ አይመስልም ፣ ስለዚህ የዚህን ፋይል ቀደም ሲል “የተረጋገጠ” ስሪት ይውሰዱ።
በቀሪው ፣ አብዛኛው የብሉቱዝ ኮድ በአርዲኖ ማዕቀፍ ውስጥ በተካተቱት የ BLE ምሳሌዎች መሠረት ብዙ ነው-
አንዳንድ BLE UUID እና ተለዋዋጭ የሚከተሉትን ይገልፃሉ
የማይንቀሳቀስ BLEUUID BlackMagic ("00001800-0000-1000-8000-00805f9b34fb");
የማይንቀሳቀስ BLEUUID ControlserviceUUID ("291D567A-6D75-11E6-8B77-86F30CA893D3"); የማይንቀሳቀስ BLEUUID DevInfoServiceControlUUID ("180A"); የማይንቀሳቀስ BLEUUID ControlcharUUID ("5DD3465F-1AEE-4299-8493-D2ECA2F8E1BB"); የማይንቀሳቀስ BLEUUID NotifcharUUID ("B864E140-76A0-416A-BF30-5876504537D9"); የማይንቀሳቀስ BLEUUID ደንበኛNamecharUUID ("FFAC0C52-C9FB-41A0-B063-CC76282EB89C"); የማይንቀሳቀስ BLEUUID CamModelcharUUID ("2A24"); የማይንቀሳቀስ BLEScan *pBLEScan = BLEDevice:: getScan (); የማይንቀሳቀስ BLEAddress *pServerAddress; የማይንቀሳቀስ BLEAdvertisedDevice* myDevice; የማይንቀሳቀስ BLERemoteCharacteristic *pControlCharacteristic; የማይንቀሳቀስ BLERemoteCharacteristic *pNotifCharacteristic; የማይንቀሳቀስ ቡሊያን doConnect = 0; የማይንቀሳቀስ ቡሊያን ተገናኝቷል = 0; ተለዋዋጭ ተለዋዋጭ ቅኝት = 0; የማይለዋወጥ 32_t pinCode;
ቅኝት እና ዋና ዑደት
ክፍል MyAdvertisedDeviceCallbacks: public BLEAdvertisedDeviceCallbacks {
ባዶ ውጤት ላይ (BLEAdvertisedDevice advertisedDevice) {Serial.print ("BLE Advertised Device ተገኝቷል"); Serial.println (advertisedDevice.toString (). C_str ()); ከሆነ (advertisedDevice.haveServiceUUID () && advertisedDevice.getServiceUUID ()። (BlackMagic)) {Serial.print ("የእኛን መሣሪያ አገኘ!"); advertisedDevice.getScan ()-> ማቆሚያ (); myDevice = አዲስ BLEAdvertisedDevice (ማስታወቂያ ማስታወቂያ); doConnect = እውነት; }}}; የማይንቀሳቀስ ባዶ ቅኝትCompleteCB (BLEScanResults scanResults) {Serial.println ("መቃኘት ተከናውኗል"); መቃኘት = ሐሰት; } ባዶ ባዶ (ባዶ) {ከሆነ (! ተገናኝቷል && ((uint32_t) (ሚሊስ () - ሰዓት ቆጣሪ)) BLE_RESCAN_TIME || (! መቃኘት))) {Serial.println ("መቃኘት …"); መቃኘት = እውነት; pBLEScan-> ጀምር (BLE_SCAN_TIME ፣ scanCompleteCB); ሰዓት ቆጣሪ = ሚሊስ (); } ከሆነ (doConnect == true) {if (connectToServer ()) {Serial.println («አሁን ከ BLE አገልጋዩ ጋር ተገናኝተናል») ፤ ተገናኝቷል = እውነት; } ሌላ {Serial.println («ከአገልጋዩ ጋር መገናኘት አልቻልንም ፤ ከዚህ በላይ የምናደርገው የለም»)። } doConnect = ሐሰት; }}
ከካሜራ ጋር መገናኘት;
bool connectToServer () {
Serial.print ("ግንኙነትን በመፍጠር ላይ"); Serial.println (myDevice-> getAddress (). ToString (). C_str ()); BLEDevice:: setEncryptionLevel (ESP_BLE_SEC_ENCRYPT); BLEDevice:: setSecurityCallbacks (አዲስ MySecurity ()); ብልጽግና *pSecurity = አዲስ BLESecurity (); pSecurity-> setKeySize (); pSecurity-> setAuthenticationMode (ESP_LE_AUTH_REQ_SC_MITM_BOND); pSecurity-> setCapability (ESP_IO_CAP_IN); pSecurity-> setRespEncryptionKey (ESP_BLE_ENC_KEY_MASK | ESP_BLE_ID_KEY_MASK); BLEClient *pClient = BLEDevice:: createClient (); pClient-> setClientCallbacks (አዲስ MyClientCallback ()); pClient-> ይገናኙ (myDevice); Serial.println (" - ከአገልጋይ ጋር ተገናኝቷል"); BLEDevice:: setMTU (BLEDevice:: getMTU ()); // CAMERA MODEL BLERemoteService *pRemoteService = pClient-> getService (DevInfoServiceControlUUID) ያግኙ። ከሆነ (pRemoteService == nullptr) {Serial.print (" - የመሣሪያ መረጃ አገልግሎት ማግኘት አልተሳካም"); Serial.println (DevInfoServiceControlUUID.toString (). C_str ()); መሄድ አለመቻል; } Serial.println (" - የመሣሪያ መረጃን ማንበብ"); // በርቀት BLE አገልጋዩ አገልግሎት ውስጥ ስለ ባህሪው ማጣቀሻ ያግኙ። BLERemoteCharacteristic *pRemoteCamModelCharacteristic = pRemoteService-> getCharacteristic (CamModelcharUUID); ከሆነ (pRemoteCamModelCharacteristic == nullptr) {Serial.print (" - የካሜራ ሞዴል ማግኘት አልተሳካም"); Serial.println (CamModelcharUUID.toString (). C_str ()); መሄድ አለመቻል; } // የባህሪያቱን ዋጋ ያንብቡ። std:: string value = pRemoteCamModelCharacteristic-> readValue (); Serial.print ("ካሜራ ነው"); Serial.println (value.c_str ()); ከሆነ (CamModel! = value.c_str ()) {Serial.print (" - ካሜራ BMPCC4k አይደለም"); መሄድ አለመቻል; } // መቆጣጠሪያን ያግኙ pRemoteService = pClient-> getService (ControlserviceUUID); ከሆነ (pRemoteService == nullptr) {Serial.print (" - የካሜራ አገልግሎት ማግኘት አልተሳካም"); Serial.println (ControlserviceUUID.toString (). C_str ()); መሄድ አለመቻል; } BLERemoteCharacteristic *pRemoteClientNameCharacteristic = pRemoteService-> getCharacteristic (ClientNamecharUUID); ከሆነ (pRemoteClientNameCharacteristic! = nullptr) {pRemoteClientNameCharacteristic-> writeValue (MyName.c_str () ፣ MyName.length ()); } pControlCharacteristic = pRemoteService-> getCharacteristic (ControlcharUUID); ከሆነ (pControlCharacteristic == nullptr) {Serial.print (" - የቁጥጥር ባህሪ ማግኘት አልተሳካም"); Serial.println (ControlcharUUID.toString (). C_str ()); መሄድ አለመቻል; } pNotifCharacteristic = pRemoteService-> getCharacteristic (NotifcharUUID); ከሆነ (pNotifCharacteristic! = nullptr) // && pNotifCharacteristic-> canIndicate ()) {Serial.println (" - ለማሳወቂያ መመዝገብ"); const uint8_t indicationOn = {0x2, 0x0}; pNotifCharacteristic-> registerForNotify (ማሳወቂያ ደውል ፣ ሐሰተኛ); pNotifCharacteristic-> getDescriptor (BLEUUID ((uint16_t) 0x2902))-> ጻፍ እሴት ((uint8_t*) አመላካች ላይ ፣ 2 ፣ እውነት); } እውነት መመለስ; አልተሳካም pClient-> ግንኙነት አቋርጥ (); ሐሰትን መመለስ; }
የተገናኘው/የተቋረጠው መልሶ መደወያ ፦
ክፍል MyClientCallback ፦ የሕዝብ BLEClientCallbacks {
ባዶነት onConnect (BLEClient *pclient) {Serial.println ("እኛ ተገናኝተናል"); } ባዶነትን በ ‹አገናኝ› (BLEClient *pclient) {የተገናኘ = ሐሰት; pclient-> ግንኙነት አቋርጥ (); Serial.println ("ተለያይተናል"); }};
የፒን ኮድ ክፍል:
አሁን ባለው ሥሪት ውስጥ በድር በይነገጽ በኩል የፒንኮዱን ማስገባት እችላለሁ ፣ ግን እነዚህ በኋላ ላይ ልጨምር የምችለው የ wifi/የድር ገጽ ዝርዝሮች ናቸው።
ክፍል MySecurity: የሕዝብ BLESecurityCallbacks
{uint32_t onPassKeyRequest () {Serial.println ("- እባክዎ 6 ዲጂት ፒን ያስገቡ (በ ENTER ይጨርሱ):"); pinCode = 0; ቻር ቸ; ያድርጉ {ሳለ (! Serial.available ()) {መዘግየት (1); } ch = Serial.read (); ከሆነ (ch> = '0' && ch <= '9') {pinCode = pinCode *10+ (ch -'0 '); Serial.print (ch); }} እያለ ((ch! = '\ n')); ፒንኮድ ተመለስ; } ባዶነት በ ‹PassKeyNotify ›(uint32_t pass_key) {ESP_LOGE (LOG_TAG ፣« የቁልፍ ሰሌዳው ማሳወቂያ ቁጥር%d »፣ pass_key); } bool onConfirmPIN (uint32_t pass_key) {ESP_LOGI (LOG_TAG ፣ «የይለፍ ቁልፉ YES/NO number:%d» ፣ pass_key); vTaskDelay (5000); እንደገና መመለስ; } SecureRequest () {ESP_LOGI (LOG_TAG ፣ «የደህንነት ጥያቄ»)) እንደገና መመለስ; } ባዶነት ማረጋገጫ ማረጋገጫ ተጠናቅቋል (esp_ble_auth_cmpl_t auth_cmpl) {Serial.print ("ጥንድ ሁኔታ ="); Serial.println (auth_cmpl.success); }};
BLE ማሳወቂያ ፦
ካሜራው መቅረጽ ሲጀምር እና ሲያቆም ጨምሮ ስለማንኛውም የካሜራ ለውጦች ለ BLE ደንበኞቹን ያሳውቃል። መቅዳት ሲጀምር/ሲያቆም ይህ ኮድ የእኔን ኤልኢዲ ይቀይራል።
የማይንቀሳቀስ ባዶነት ማሳወቂያ ደውል (BLERemoteCharacteristic *pBLERemote ባህሪ ፣
uint8_t*pData ፣ የመጠን_ቲ ርዝመት ፣ bool isNotify) {// BMPCC4k BLE የመልዕክት ቅርጸት: // rec on is 255 9 0 0 10 1 1 2 2 0 64 0 2 // rec off is 255 9 0 0 10 1 1 2 0 0 64 0 2if (ርዝመት == 13 && pData [0] == 255 && pData [1] == 9 && pData [4] == 10 && pData [5] == 1) {ከሆነ (pData [8] == 0) { ዳግም ሁኔታ = 0; } ከሆነ (pData [8] == 2) {recstatus = 1; }}}
ደረጃ 2 - ኮዱ ክፍል 2
ይህ ትዕዛዞችን በትክክል ወደ ካሜራ የሚልክ ክፍል ነው።
መቅዳት
uint8_t መዝገብ = {255 ፣ 9 ፣ 0 ፣ 0 ፣ 10 ፣ 1 ፣ 1 ፣ 0 ፣ 0 ፣ 0 ፣ 0 ፣ 0 ፣ 0 ፣ 0 ፣ 0 ፣ 0 ፣ 0 ፣ 0}; // 0 = ጠፍቷል ፣ 2 = በርቷል ፣ [8] ባዶ መዝገብ (ቡሊያን ሬኦኦን) {ከሆነ (! RecOn) መዝገብ [8] = 0; ሌላ መዝገብ [8] = 2; pControlCharacteristic-> writeValue ((uint8_t*) መዝገብ ፣ 16 ፣ እውነት); }
በማተኮር ላይ
ካሜራው ከቅርብ እስከ ሩቅ ትኩረት የሚይዝ 11 ቢት ቁጥርን ይጠብቃል። በኤዲሲ እሴትዎ ላይ ማጣሪያ እንዲጭኑ እመክርዎታለሁ ፣ አለበለዚያ ትኩረቱ በነርሷ ሊያንቀጠቅጥ ይችላል።
uint8_t ትኩረት = {255, 6, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0}; // 0.0… 1.0 ፣ 11bit ፣ [8] = LSB ፣ [9] = MSBvoid Focus (uint16_t val) {// ከ 12 ቢት ኤዲሲ እሴት ወደ 11 ቢት የትኩረት እሴት ትኩረት [8] = (uint8_t) (((val> > 1) & 0xFF)); ትኩረት [9] = (uint8_t) (((val >> 1) & 0xFF00) >> 8); pControlCharacteristic-> ጻፍ እሴት ((uint8_t*) ትኩረት ፣ 12 ፣ እውነት); }
ቀዳዳ:
ካሜራው 11 ቢት ቁጥርን ይጠብቃል ፣ ይህም ከዝቅተኛ እስከ ከፍተኛ የመክፈቻ እሴት። በኤዲሲ እሴትዎ ላይ ማጣሪያ እንዲጭኑ እመክርዎታለሁ ፣ አለበለዚያ የመክፈቻው እሴት በፍርሃት ይርገበገብ ይሆናል።
uint8_t aperture = {255, 6, 0, 0, 0, 3, 128, 0, 0, 0, 0, 0}; // 0.0… 1.0 ፣ [8] = LSB ፣ [9] = MSBvoid Aperture (uint16_t val) {// ከ 12 ቢት ኤዲሲ እሴት ወደ 11 ቢት የመክፈቻ እሴት መክፈቻ [8] = (uint8_t) (((val >> 1) & 0xFF)); ቀዳዳ [9] = (uint8_t) (((val >> 1) & 0xFF00) >> 8); pControlCharacteristic-> WriteValue ((uint8_t*) aperture, 12, true); }
ደረጃ 3 ወረዳው
የወረዳዬን ፒዲኤፍ አያይ I'veዋለሁ። አንዳንድ የፒሲቢ ስዕሎች እንዲሁ ተያይዘዋል።
ቦርዱ በማይክሮ ዩኤስቢ ተጎድቷል።
ፒሲቢውን ከተቀበልኩ በኋላ የ RGB LED ን መንዳት እንደምፈልግ ወሰንኩ ፣ ስለዚህ ሁለት WS2812B ን በ “Button Led” ውፅዓት (በፒሲቢው ላይ አንዳንድ የሽቦ ጥገናዎች ያስፈልጉ ነበር)። የ PCB ዎች ከ OSHPark.com ጋር 8USD ነበሩ።
እኔ እንደማልጠቀምበት እና ከተያያዙት መርሃግብሮች የተወገዱትን እንደ “adc” ያሉ በ PCB ላይ አንዳንድ ተጨማሪ ግንኙነቶችን ማየት ይችላሉ። ዕቅዱ ቀደም ሲል የውጭ የትኩረት መንኮራኩርን ለመጠቀም ነበር ነገር ግን በአሁኑ ጊዜ በትንሽ አውራ ጣት ጎማ ፍጹም ደስተኛ ነኝ።
ደረጃ 4 መደምደሚያ
ይህ እንደረዳኝ ተስፋ አደርጋለሁ።
እንደ ጠንካራ ማቆሚያዎች ያለ ሮታሪ ኢንኮደር መጠቀምን የመሳሰሉ አንዳንድ የወደፊት ዝመናዎችን በአዕምሮዬ ውስጥ አግኝቻለሁ። ይህ ተቆጣጣሪው የአሁኑን የትኩረት ወይም የመክፈቻ ዋጋ ከካሜራ እንዲያገኝ እና ከዚያ እንዲቀጥል ይጠይቃል። የ “notifyCallback” ተግባር ለዚያ ምናልባት መዘመን አለበት።
ፒሲቢ ለ WS2812B RGB LED ዎች ምልክቶችን በትክክል ለማቅረብ ዝመና ይፈልጋል።
ይህንን ሥራ ለመስራት ብዙ (አንድ loooot) ጊዜን ፣ በተለይም የ BLE ክፍልን አሳልፌያለሁ። ይህ እርስዎን ከረዳዎት እና መጠጥ ሊገዙኝ ከፈለጉ ፣ ያ በጣም አድናቆት አለው:) ይህ የ Paypal ልገሳ አገናኝ ነው
የሚመከር:
HC12 ገመድ አልባ ሞዱልን በመጠቀም ገመድ አልባ አርዱዲኖ ሮቦት 7 ደረጃዎች
ኤች.ሲ.ኤል 12 ገመድ አልባ ሞዱልን በመጠቀም ገመድ አልባ አርዱዲኖ ሮቦት - ሄይ ሰዎች ፣ እንኳን ደህና መጡ። በቀደመው ልጥፌዬ ፣ የ H ድልድይ ወረዳ ፣ L293D የሞተር ሾፌር አይሲ ፣ አሳማሚ L293D የሞተር ሾፌር አይሲ ከፍተኛ የአሁኑን የሞተር ነጂዎችን ለማሽከርከር እና የእራስዎን የ L293D ሞተር አሽከርካሪ ቦርድ እንዴት ዲዛይን ማድረግ እና መሥራት እንደሚችሉ አብራራሁ
2.4Ghz NRF24L01 ሞዱሉን ከአርዲኖ ጋር በመጠቀም ገመድ አልባ የርቀት መቆጣጠሪያ - Nrf24l01 4 ሰርጥ / 6 የሰርጥ አስተላላፊ ተቀባይ ለ Quadcopter - Rc ሄሊኮፕተር - አርዱinoኖን በመጠቀም የ Rc አውሮፕላን 5 ደረጃዎች (ከስዕሎች ጋር)
2.4Ghz NRF24L01 ሞዱሉን ከአርዲኖ ጋር በመጠቀም ገመድ አልባ የርቀት መቆጣጠሪያ | Nrf24l01 4 ሰርጥ / 6 የሰርጥ አስተላላፊ ተቀባይ ለ Quadcopter | Rc ሄሊኮፕተር | አርዱinoኖን በመጠቀም የ Rc አውሮፕላን - የ Rc መኪና ለመሥራት | ባለአራትኮፕተር | ድሮን | RC አውሮፕላን | የ RC ጀልባ ፣ እኛ ሁል ጊዜ ተቀባይ እና አስተላላፊ እንፈልጋለን ፣ ለ RC QUADCOPTER 6 ሰርጥ አስተላላፊ እና ተቀባይ እንፈልጋለን እንበል እና ያንን ዓይነት TX እና RX በጣም ውድ ነው ፣ ስለሆነም በእኛ ላይ አንድ እናደርጋለን
የ Play ጣቢያ የርቀት መቆጣጠሪያ ገመድ አልባ 3 ዲ የታተመ መኪና - 7 ደረጃዎች (ከስዕሎች ጋር)
የ Play ጣቢያ በርቀት ቁጥጥር የሚደረግበት ገመድ አልባ 3 ዲ የታተመ መኪና ጨዋታን የማይወድ ማነው? በምናባዊው የጨዋታ ጣቢያ እና በ Xbox ውስጥ እሽቅድምድም እና መዋጋት !! ስለዚህ ፣ ያንን አስደሳች ወደ እውነተኛ ሕይወት ለማምጣት ማንኛውንም የ Play ጣቢያ የርቀት መቆጣጠሪያን (ባለገመድ
ሃምሳ ሜትሮች ክልል ገመድ አልባ የመዳረሻ ነጥብ በ TP አገናኝ WN7200ND USB ገመድ አልባ አስማሚ በ Raspbian Stretch ላይ: 6 ደረጃዎች
ሃምሳ ሜትሮች ክልል ሽቦ አልባ የመዳረሻ ነጥብ በ TP አገናኝ WN7200ND ዩኤስቢ ገመድ አልባ አስማሚ በ Raspbian Stretch ላይ: Raspberry Pi ደህንነቱ የተጠበቀ ሽቦ አልባ የመዳረሻ ነጥቦችን ለመፍጠር ጥሩ ነው ግን ጥሩ ክልል የለውም ፣ እሱን ለማራዘም የ TP አገናኝ WN7200ND USB ገመድ አልባ አስማሚን እጠቀም ነበር። እኔ እንዴት ማድረግ እንዳለብኝ ማጋራት እፈልጋለሁ ለምን ከ ራውተር ይልቅ ራስተርቤሪ ፒን መጠቀም እፈልጋለሁ? ቲ
የአስማት አዝራር '' የርቀት መቀየሪያ -3 ደረጃዎች (ከስዕሎች ጋር)
የአስማት አዝራር '' የርቀት መቀየሪያ - ችግር - በእኔ አውደ ጥናት/ጋራዥ ጣሪያ ላይ የተጫነው የ LED ፓነል መብራት (DIY - በእርግጥ!) በጣሪያው ላይ ባለው የኃይል ሶኬት ውስጥ ተጣብቋል። ዋናው የመብራት መቀየሪያዎች ከሚገኙበት በርቀት በርቶ ለማብራት እና ለማጥፋት መንገድ ያስፈልገኝ ነበር።