- கூறுகள் தேவை
- APDS9960 RGB & சைகை சென்சார்
- சுற்று வரைபடம்
- குறியீடு விளக்கம்
- சைகை கட்டுப்படுத்தப்பட்ட டச்லெஸ் லிஃப்ட் சோதனை
கொரோனா தொற்றுநோயின் இந்த நேரத்தில், எல்லோரும் ஒரே பொத்தான்களைத் தொடும் அதிக ஆபத்து நிறைந்த இடமாக லிஃப்ட் மாறிவிட்டது. பல இடங்களில், லிஃப்ட் பொத்தான்களை அழுத்துவதற்கு ஒரு பம்பிங் பேப்பர், டூத்பிக்ஸ் அல்லது சுகாதார திசுக்களைப் பயன்படுத்துவது போன்ற லிஃப்ட் பொத்தான்களுடன் தொடர்பு கொள்வதைத் தடுக்க மக்கள் தந்திரங்களைக் கண்டுபிடித்துள்ளனர்.
ஆகவே, எங்கள் முந்தைய கொரோனா பாதுகாப்புத் திட்டங்களான தானியங்கி சுத்திகரிப்பு இயந்திரம், தொடர்பு இல்லாத வெப்பநிலை கண்காணிப்பு மற்றும் சமூக தூரக் கண்டறிதல் ஆகியவற்றின் தொடர்ச்சியாக, இங்கே நாம் அர்டுயினோ நானோவைப் பயன்படுத்தி சைகை கட்டுப்பாட்டு எலிவேட்டர் முன்மாதிரி ஒன்றை உருவாக்கப் போகிறோம்.
இந்த தொடர்பு இல்லாத லிஃப்ட் Arduino நானோ, APDS9960 சைகை சென்சார் மற்றும் OLED காட்சி தொகுதி ஆகியவற்றைப் பயன்படுத்துகிறது. இந்த சைகை அடிப்படையிலான கட்டுப்பாட்டு குழு மூலம், கை சைகை செய்வதன் மூலம் உங்கள் லிஃப்டை எளிதாக கட்டுப்படுத்தலாம். சைகைகளைப் படிக்க APDS9960 சென்சார் பயன்படுத்தப்படுகிறது. மாடி எண்ணை அமைக்க UP மற்றும் DOWN சைகைகள் பயன்படுத்தப்படுகின்றன, இடது சைகை லிப்ட் கதவை மூடி, தரை எண்ணுக்கு ஏற்ப லிப்டை நகர்த்துவதோடு, கதவை திறக்க வலது சைகை பயன்படுத்தப்படுகிறது.
கூறுகள் தேவை
- அர்டுடினோ நானோ
- OLED காட்சி தொகுதி
- APDS9960 RGB & சைகை சென்சார்
- ப்ரெட்போர்டு
- ஜம்பர் கம்பிகள்
APDS9960 RGB & சைகை சென்சார்
APDS9960 RGB & சைகை கண்டறிதல் தொகுதி என்பது ஒரு சிறிய பிரேக்அவுட் போர்டு ஆகும், இது ஒரு உள்ளமைக்கப்பட்ட APDS-9960 சென்சார், UV மற்றும் IR தடுக்கும் வடிப்பான்கள், வெவ்வேறு திசைகளுக்கு உணர்திறன் கொண்ட நான்கு தனித்தனி டையோட்கள் மற்றும் I2C இணக்கமான இடைமுகத்துடன் வருகிறது. இந்த சென்சார் சுற்றுப்புற ஒளி மற்றும் வண்ண அளவீட்டு, அருகாமையில் கண்டறிதல் மற்றும் தொடு இல்லாத சைகை உணர்தல் ஆகியவற்றிற்கு பயன்படுத்தப்படலாம். இது 10 முதல் 20 செ.மீ வரை சைகை கண்டறிதல் வரம்பைக் கொண்டுள்ளது மற்றும் மைக்ரோகண்ட்ரோலர், ரோபோ மற்றும் பல திட்டங்களில் கட்டுப்படுத்தப் பயன்படுத்தலாம்.

அம்சங்கள்:
- செயல்பாட்டு மின்னழுத்தம்: 2.4 வி முதல் 3.6 வி வரை
- இயக்க வரம்பு: 4-8in (10-20cm).
- I2C இடைமுகம் (I2C முகவரி: 0x39).
- சுற்றுப்புற ஒளி மற்றும் ஆர்ஜிபி வண்ண உணர்வு, அருகாமை
- ஆப்டிகல் தொகுதியில் உணர்தல் மற்றும் சைகை கண்டறிதல்
- I2C- பஸ் வேகமான பயன்முறை 400 kHz வரை தரவு விகிதங்களுடன் இணக்கமான இடைமுகம்.
சுற்று வரைபடம்
APDS9960 ஐப் பயன்படுத்தி தொடர்பு இல்லாத உயர்த்திக்கான சுற்று வரைபடம் கீழே கொடுக்கப்பட்டுள்ளது.

நாங்கள் ஆர்டுயினோ நானோவை APDS9960 சென்சார் மற்றும் OLED டிஸ்ப்ளேவுடன் இணைக்கிறோம். APDS9960 சென்சார் மற்றும் OLED டிஸ்ப்ளே இரண்டின் VCC மற்றும் GND ஊசிகளும் 3.3V மற்றும் Arduino இன் GND உடன் இணைக்கப்பட்டுள்ளன. APDS9960 சென்சார் மற்றும் OLED டிஸ்ப்ளேவின் SCL மற்றும் SDA ஊசிகளும் Arduino இன் A5 மற்றும் A4 ஊசிகளுடன் இணைக்கப்பட்டுள்ளன.
|
OLED & APDS9960 பின் |
அர்டுடினோ நானோ பின் |
|
வி.சி.சி. |
3.3 வி |
|
ஜி.என்.டி. |
ஜி.என்.டி. |
|
எஸ்.சி.எல் |
அ 5 |
|
எஸ்.டி.ஏ. |
அ 4 |
Arduino ஐப் பயன்படுத்தி சைகை கட்டுப்படுத்தப்பட்ட எலிவேட்டருக்கான முழுமையான அமைப்பு இப்படித்தான் இருக்கும்:

OLED காட்சி மற்றும் பிற மைக்ரோகண்ட்ரோலர்களுடன் அதன் இடைமுகத்தைப் பற்றி மேலும் அறிய, இணைப்பைப் பின்தொடரவும்.
குறியீடு விளக்கம்
APDS9960 ஐப் பயன்படுத்தி தொடர்பு இல்லாத எலிவேட்டருக்கான முழுமையான குறியீடு பக்கத்தின் இறுதியில் கொடுக்கப்பட்டுள்ளது. குறியீட்டின் சில முக்கியமான பகுதிகளை இங்கே விளக்குகிறோம். இந்த திட்டத்தில், நாங்கள் APDS9960 மற்றும் Adafruit_SH1106 நூலகங்களைப் பயன்படுத்தப் போகிறோம். APDS9960 நூலகத்தை Arduino IDE இலிருந்து பதிவிறக்கம் செய்யலாம். நூலகத்தைப் பதிவிறக்க, ஸ்கெட்ச்> நூலக மேலாளர்> தேடலுக்குச் சென்று, பின்னர் Arduino APDS9960 க்கு உள்ளிடவும் . போது Adafruit_SH1106 நூலகம் இங்கிருந்து பதிவிறக்கம் செய்யலாம்.
எனவே வழக்கம் போல் தேவையான அனைத்து நூலகங்களையும் சேர்த்து குறியீட்டைத் தொடங்கவும். Adafruit_SH1106.h என்பது அசல் அடாஃப்ரூட் நூலகத்தின் மாற்றியமைக்கப்பட்ட பதிப்பாகும்.
#சேர்க்கிறது
அடுத்த வரிகளில், பயனர் செல்ல விரும்பும் தற்போதைய தளம் மற்றும் தரை எண்ணை சேமிக்க மாறிகள் வரையறுக்கவும்.
int floornum = 0; int currentfloor = 0;
அதன் பிறகு, UP அம்பு, கீழ் அம்பு, திறந்த கதவு மற்றும் மூடு கதவு படங்களுக்கான பிட்மாப்களை உள்ளிடவும். Image2cpp போன்ற மாற்றி பயன்படுத்துவதன் மூலம் ஒரு படத்திற்கான HEX குறியீட்டை உருவாக்க முடியும். Image2cpp ஐ எவ்வாறு பயன்படுத்துவது என்பது பற்றி மேலும் அறிய , இந்த Arduino QR குறியீடு ஜெனரேட்டர் டுடோரியலைப் பின்பற்றவும்.
const unsigned char up PROGMEM = x 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, …………………………. ……………………………………………..}; const கையொப்பமிடாத கரி கீழே PROGMEM = x 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, …………………………. ……………………………………………..}; const unsigned char dooropen PROGMEM = x 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xc0, 0x1f, 0xff, 0xff, 0xe0, ………………………. ………………………………………………..};
இல் அமைப்பு () செயல்பாடு, பிழைதிருத்தம் நோக்கங்களுக்காக 9600 ஒரு பாட் விகிதத்தில் சீரியல் கண்காணி துவக்க. அடுத்த வரிகளில், OLED டிஸ்ப்ளே மற்றும் APDS9960 சென்சார் ஆகியவற்றை தொடக்க () முறையுடன் பின்வருமாறு துவக்கவும்:
சீரியல்.பெஜின் (9600); if (! APDS.begin ()) {Serial.println ("APDS9960 சென்சார் துவக்குவதில் பிழை!"); } Serial.println ("சைகைகளைக் கண்டறிதல்…"); display.begin (SH1106_SWITCHCAPVCC, 0x3C);
காட்சி மற்றும் சென்சார் துவக்குவதில் பிறகு, காட்சிப் தாங்கல் அழிக்க clearDisplay () முறை மற்றும் பயன்படுத்தி எழுத்துரு அளவு மற்றும் நிறத்தை அமைக்க display.setTextSize () மற்றும் display.setTextColor () முறைகள்.
display.setTextSize (2); display.setTextColor (WHITE); display.clearDisplay (); display.display ();
உள்ளே வெற்றிடத்தை லூப் () , எந்த சைகை செய்யப்பட்டது என்றால் தொடர்ந்து பார்க்கலாம். ஆம் எனில், சைகை மதிப்புகள் மற்றும் அது எந்த சைகை (UP, DOWN, RIGHT, LEFT) என்பதைப் படித்து, சீரியல் மானிட்டரில் தொடர்புடைய வாசிப்பை அச்சிடுகிறது. பயனர் செல்ல விரும்பும் தள எண்ணை அமைக்க UP மற்றும் DOWN சைகைகள் பயன்படுத்தப்படுகின்றன. இடது சைகை என்பது லிப்ட் கதவை மூடி, தரை எண்ணுக்கு ஏற்ப லிப்டை நகர்த்துவது, அதே நேரத்தில் கதவை திறக்க வலது சைகை பயன்படுத்தப்படுகிறது.
if (APDS.gestureAvailable ()) {int சைகை = APDS.readGesture (); சுவிட்ச் (சைகை) {வழக்கு GESTURE_UP: Serial.println ("கண்டறியப்பட்ட UP சைகை"); display.clearDisplay (); ஃப்ளோர்னம் ++; home1 (); உடைத்தல்; வழக்கு GESTURE_DOWN: Serial.println ("DOWN சைகை கண்டறியப்பட்டது"); display.clearDisplay (); floornum -; home1 (); உடைத்தல்; வழக்கு GESTURE_LEFT: Serial.println ("கண்டறியப்பட்ட இடது சைகை"); display.clearDisplay (); தொடக்க (); உடைத்தல்; வழக்கு GESTURE_RIGHT: Serial.println ("கண்டறியப்பட்ட RIGHT சைகை"); display.clearDisplay (); home1 (); உடைத்தல்; இயல்புநிலை: இடைவெளி; }
Home1 () செயல்பாடு ஒரு உயர்த்தி வீட்டில் காட்சி பெற பயன்படுத்தப்படுகிறது. இது ஒரு மேல் அம்பு, கீழ் அம்பு, திறந்த கதவு, மூடு கதவு அறிகுறிகள் மற்றும் தற்போதைய தள எண் ஆகியவற்றைக் கொண்டுள்ளது. OLED காட்சியில் படங்களை வரைய drawBitmap () செயல்பாடு பயன்படுத்தப்படுகிறது. DrawBitmap () செயல்பாட்டிற்கான தொடரியல் கீழே கொடுக்கப்பட்டுள்ளது:
drawBitmap (int16_t x, int16_t y, bitmap, int16_t w, int16_t h, color);
எங்கே:
int16_t x, int16_t y என்பது OLED காட்சியின் X மற்றும் Y ஆயத்தொகுப்புகள்
பிட்மேப் என்பது பிட்மேப்பின் பெயர்
int16_t w, int16_t h என்பது படத்தின் உயரம் மற்றும் எடை.
void home1 () {display.setCursor (101,23); display.println (ஃப்ளோர்னம்); display.drawBitmap (23, 0, uparrow, 40, 18, WHITE); display.drawBitmap (26, 46, கீழ்நோக்கி, 40, 18, வெள்ளை); display.drawBitmap (0, 15, டூரோபன், 29, 30, வெள்ளை); display.drawBitmap (60, 15, மூடிய, 29, 30, வெள்ளை); display.display (); }
தொடக்கத்தில் () செயல்பாடு மேல்நோக்கி அல்லது கீழ்நோக்கி லிப்ட் நகர்த்த பயன்படுத்தப்படுகிறது. அதற்காக, தற்போதைய மாடி எண் பயனர் செல்ல விரும்பும் தரை எண்ணுடன் ஒப்பிடப்படுகிறது. தரை எண் தற்போதைய தளத்தை விட அதிகமாக இருந்தால். பின்னர் லிப்ட் மேல்நோக்கி நகரும் மற்றும் தரை எண் தற்போதைய தளத்தை விட குறைவாக இருந்தால். பின்னர் லிப்ட் கீழ்நோக்கி நகரும். தற்போதைய மாடி எண் இரண்டுமே இருக்கும்போது லிப்ட் நிறுத்தப்படும். மற்றும் மாடி எண். அவை ஒன்றே.
void start () {போது (floornum> currentfloor) {Serial.println ("UP போகிறது"); currentfloor ++; display.drawBitmap (0, 0, மேலே, 100, 64, WHITE); display.setCursor (101,23); display.println (currentfloor); display.display (); display.clearDisplay (); தாமதம் (2000); } போது (ஃப்ளோர்னம் <currentfloor) {Serial.println ("கீழே செல்கிறது"); currentfloor--; display.drawBitmap (0, 0, கீழே, 100, 64, WHITE); display.setCursor (101,23); display.println (currentfloor); display.display (); display.clearDisplay (); தாமதம் (2000); } if (floornum == currentfloor) {Serial.println ("அடைந்தது"); display.clearDisplay (); home1 (); சீரியல்.பிரண்ட் (கரண்ட்ஃப்ளூர்); }}
சைகை கட்டுப்படுத்தப்பட்ட டச்லெஸ் லிஃப்ட் சோதனை
வன்பொருள் மற்றும் குறியீடு தயாரானதும், Arduino நானோவை மடிக்கணினியுடன் இணைத்து கீழே கொடுக்கப்பட்டுள்ள முழுமையான குறியீட்டைப் பதிவேற்றவும். இயல்பாக நீங்கள் பார்க்க முடியும் என OLED எலிவேட்டர் UI ஐக் காண்பிக்கும்.

இப்போது நீங்கள் செல்ல விரும்பும் தளத்தை அமைக்க, கீழேயுள்ள வீடியோவில் காட்டப்பட்டுள்ளதைப் போல, உங்கள் கையை மேலே அல்லது கீழ் நோக்கி அசைக்கவும். அந்த மாடிக்கு செல்ல லிப்டை ஒப்புக்கொள்வதற்கு இடது சைகை செய்யுங்கள். நீங்கள் லிப்டை நிறுத்த விரும்பினால், உங்கள் கையால் சரியான சைகை செய்யுங்கள்.
இந்த திட்டத்திற்கான முழுமையான வேலை வீடியோ மற்றும் குறியீடு கீழே கொடுக்கப்பட்டுள்ளன. இந்த திட்டத்தை உருவாக்குவதில் நீங்கள் மகிழ்ந்தீர்கள் என்று நம்புகிறேன். இந்த திட்டம் தொடர்பாக ஏதேனும் கேள்விகள் இருந்தால், தயவுசெய்து அவற்றை கருத்துப் பிரிவில் விடுங்கள்.
