- భాగాలు అవసరం
- కెమెరా మాడ్యూల్ OV7670 గురించి గుర్తుంచుకోవలసిన విషయాలు
- సర్క్యూట్ రేఖాచిత్రం
- ప్రోగ్రామింగ్ Arduino UNO
- చిత్రాలను చదవడానికి సీరియల్ పోర్ట్ రీడర్ను ఎలా ఉపయోగించాలి
- OV7670 నుండి తీసిన నమూనా చిత్రాలు క్రింద ఉన్నాయి
- OV7670 ఉపయోగిస్తున్నప్పుడు జాగ్రత్తలు
సందర్శకుల పర్యవేక్షణ వ్యవస్థ, నిఘా వ్యవస్థ, హాజరు వ్యవస్థ వంటి అనేక అనువర్తనాలు ఉన్నందున కెమెరాలు ఎల్లప్పుడూ ఎలక్ట్రానిక్స్ పరిశ్రమపై ఆధిపత్యం చెలాయిస్తాయి. ఈ రోజు మనం ఉపయోగించే కెమెరాలు స్మార్ట్ మరియు మునుపటి కెమెరాలలో లేని చాలా లక్షణాలను కలిగి ఉన్నాయి. నేటి డిజిటల్ కెమెరాలు చిత్రాలను సంగ్రహించడమే కాకుండా, దృశ్యం యొక్క ఉన్నత-స్థాయి వర్ణనలను సంగ్రహిస్తాయి మరియు వారు చూసే వాటిని విశ్లేషిస్తాయి. ఇది రోబోటిక్స్, ఆర్టిఫిషియల్ ఇంటెలిజెన్స్, మెషిన్ లెర్నింగ్ మొదలైన వాటిలో విస్తృతంగా ఉపయోగించబడుతుంది. సంగ్రహించిన ఫ్రేమ్లు ఆర్టిఫిషియల్ ఇంటెలిజెన్స్ మరియు మెషిన్ లెర్నింగ్ ఉపయోగించి ప్రాసెస్ చేయబడతాయి మరియు తరువాత నంబర్ ప్లేట్ డిటెక్షన్, ఆబ్జెక్ట్ డిటెక్షన్, మోషన్ డిటెక్షన్, ఫేషియల్ రికగ్నిషన్ వంటి అనేక అనువర్తనాల్లో ఉపయోగించబడతాయి.
ఈ ట్యుటోరియల్లో మేము విస్తృతంగా ఉపయోగించిన కెమెరా మాడ్యూల్ OV7670 ను Arduino UNO తో ఇంటర్ఫేస్ చేస్తాము. కెమెరా మాడ్యూల్ OV7670 అంతర్ముఖం చేయవచ్చు Arduino మెగా అదే పిన్ ఆకృతీకరణ, కోడ్ మరియు దశల. కెమెరా మాడ్యూల్ ఇంటర్ఫేస్ చేయడం కష్టం, ఎందుకంటే ఇది పెద్ద సంఖ్యలో పిన్లు మరియు జంబుల్ వైరింగ్ను కలిగి ఉంది. కెమెరా మాడ్యూళ్ళను ఉపయోగించినప్పుడు వైర్ చాలా ముఖ్యమైనది అవుతుంది, ఎందుకంటే వైర్ యొక్క ఎంపిక మరియు వైర్ యొక్క పొడవు చిత్ర నాణ్యతను గణనీయంగా ప్రభావితం చేస్తుంది మరియు శబ్దాన్ని తెస్తుంది.
మేము ఇప్పటికే కెమెరాలలో వివిధ రకాల మైక్రోకంట్రోలర్లు మరియు IoT పరికరాలతో తగినంత ప్రాజెక్టులు చేసాము:
- రాస్ప్బెర్రీ పై మరియు పై కెమెరాతో సందర్శకుల పర్యవేక్షణ వ్యవస్థ
- ఇమెయిల్ హెచ్చరికతో IOT ఆధారిత రాస్ప్బెర్రీ పై హోమ్ సెక్యూరిటీ సిస్టమ్
- మోషన్ క్యాప్చర్తో రాస్ప్బెర్రీ పై నిఘా కెమెరా
కెమెరా OV7670 3.3V రచనలతో, అది వారి అవుట్పుట్ GPIO సూదులు వద్ద 5V అవుట్పుట్ ఇస్తుంది Arduino నివారించేందుకు చాలా ముఖ్యమైన అవుతుంది కాబట్టి. OV7670 ఒక FIFO కెమెరా. కానీ ఈ ట్యుటోరియల్లో, చిత్రం లేదా ఫ్రేమ్లు FIFO లేకుండా పట్టుకోబడతాయి. ఈ ట్యుటోరియల్లో ఆర్డునో యుఎన్ఓతో OV7670 ఇంటర్ఫేస్కు సరళమైన దశలు మరియు సరళీకృత ప్రోగ్రామింగ్ ఉంటుంది.
భాగాలు అవసరం
- ఆర్డునో UNO
- OV7670 కెమెరా మాడ్యూల్
- రెసిస్టర్లు (10 కే, 4.7 కె)
- జంపర్స్
సాఫ్ట్వేర్ అవసరం:
- Arduino IDE
- సీరియల్ పోర్ట్ రీడర్ (అవుట్పుట్ చిత్రాన్ని విశ్లేషించడానికి)
కెమెరా మాడ్యూల్ OV7670 గురించి గుర్తుంచుకోవలసిన విషయాలు
OV7670 కెమెరా మాడ్యూల్ అనేది వివిధ తయారీదారుల నుండి వేర్వేరు పిన్ కాన్ఫిగరేషన్లతో లభించే FIFO కెమెరా మాడ్యూల్. TheOV7670 పూర్తి ఫ్రేమ్, విండోస్డ్ 8-బిట్ చిత్రాలను విస్తృత శ్రేణి ఫార్మాట్లలో అందిస్తుంది. ఇమేజ్ అర్రే VGA లో సెకనుకు 30 ఫ్రేమ్ల (ఎఫ్పిఎస్) వరకు పనిచేయగలదు. OV7670 ఉన్నాయి
- చిత్ర సెన్సార్ అర్రే (సుమారు 656 x 488 పిక్సెల్స్)
- టైమింగ్ జనరేటర్
- అనలాగ్ సిగ్నల్ ప్రాసెసర్
- A / D కన్వర్టర్లు
- టెస్ట్ సరళి జనరేటర్
- డిజిటల్ సిగ్నల్ ప్రాసెసర్ (DSP)
- చిత్ర స్కేలర్
- డిజిటల్ వీడియో పోర్ట్
- LED మరియు స్ట్రోబ్ ఫ్లాష్ కంట్రోల్ అవుట్పుట్
OV7670 ఇమేజ్ సెన్సార్ సీరియల్ కెమెరా కంట్రోల్ బస్ (SCCB) ను ఉపయోగించి నియంత్రించబడుతుంది, ఇది I2C ఇంటర్ఫేస్ (SIOC, SIOD), గరిష్టంగా 400KHz క్లాక్ ఫ్రీక్వెన్సీతో ఉంటుంది.
కెమెరా హ్యాండ్షేకింగ్ సిగ్నల్లతో వస్తుంది:
- VSYNC: లంబ సమకాలీకరణ అవుట్పుట్ - ఫ్రేమ్ సమయంలో తక్కువ
- HREF: క్షితిజసమాంతర సూచన - అడ్డు వరుస యొక్క చురుకైన పిక్సెల్ల సమయంలో ఎక్కువ
- పిసిఎల్కె: పిక్సెల్ క్లాక్ అవుట్పుట్ - ఉచిత రన్నింగ్ క్లాక్. పెరుగుతున్న అంచున డేటా చెల్లుతుంది
దీనికి తోడు, దీనికి మరెన్నో సంకేతాలు ఉన్నాయి
- D0-D7: 8-బిట్ YUV / RGB వీడియో కాంపోనెంట్ డిజిటల్ అవుట్పుట్
- పిడబ్ల్యుడిఎన్: పవర్ డౌన్ మోడ్ ఎంపిక - సాధారణ మోడ్ మరియు పవర్ డౌన్ మోడ్
- XCLK: సిస్టమ్ క్లాక్ ఇన్పుట్
- రీసెట్ చేయండి: సిగ్నల్ రీసెట్ చేయండి
OV7670 24MHz ఓసిలేటర్ నుండి క్లాక్ చేయబడింది. ఇది 24MHz యొక్క పిక్సెల్ క్లాక్ (PCLK) అవుట్పుట్ ఇస్తుంది. FIFO 3Mbps వీడియో ఫ్రేమ్ బఫర్ మెమరీని అందిస్తుంది. టెస్ట్ ప్యాటర్న్ జెనరేటర్లో 8-బార్ కలర్ బార్ నమూనా, ఫేడ్-టు-గ్రే కలర్ బార్ ప్యాటర్ ఉన్నాయి. ఇప్పుడు కెమెరా OV7670 ను పరీక్షించడం మరియు సీరియల్ పోర్ట్ రీడర్ ఉపయోగించి ఫ్రేమ్లను పట్టుకోవడం కోసం Arduino UNO ప్రోగ్రామింగ్ ప్రారంభిద్దాం.
సర్క్యూట్ రేఖాచిత్రం
ప్రోగ్రామింగ్ Arduino UNO
OV7670 కి అవసరమైన లైబ్రరీతో సహా ప్రోగ్రామింగ్ ప్రారంభమవుతుంది . OV7670 I2C ఇంటర్ఫేస్లో నడుస్తుంది కాబట్టి, ఇందులో ఇవి ఉన్నాయిదీని తరువాత, OV7670 కోసం రిజిస్టర్లను సవరించాలి. మంచి అవగాహన కోసం ప్రోగ్రామ్ చిన్న విధులుగా విభజించబడింది.
సెటప్ () చిత్రం బంధించడాన్ని అవసరం అన్ని ప్రాధమిక అమర్పులు వుంటారు. మొదటి ఫంక్షన్ arduinoUnoInut (), ఇది arduino uno ను ప్రారంభించడానికి ఉపయోగించబడుతుంది. ప్రారంభంలో ఇది అన్ని ప్రపంచ అంతరాయాలను నిలిపివేస్తుంది మరియు PWM గడియారం, అంతరాయ పిన్ల ఎంపిక, ప్రెస్క్లేర్ ఎంపిక, సమానత్వం మరియు స్టాప్ బిట్లను జోడించడం వంటి కమ్యూనికేషన్ ఇంటర్ఫేస్ కాన్ఫిగరేషన్లను సెట్ చేస్తుంది.
ArduinoUnoInut ();
Arduino ను కాన్ఫిగర్ చేసిన తరువాత, కెమెరాను కాన్ఫిగర్ చేయాలి. కెమెరాను ప్రారంభించడానికి, రిజిస్టర్ విలువలను మార్చడానికి మాకు ఎంపికలు మాత్రమే ఉన్నాయి. రిజిస్టర్ విలువలను డిఫాల్ట్ నుండి కస్టమ్కు మార్చాలి. మేము ఉపయోగిస్తున్న మైక్రోకంట్రోలర్ ఫ్రీక్వెన్సీని బట్టి అవసరమైన ఆలస్యాన్ని కూడా జోడించండి. నెమ్మదిగా మైక్రోకంట్రోలర్లకు తక్కువ ప్రాసెసింగ్ సమయం ఉంది, ఇది ఫ్రేమ్లను సంగ్రహించడం మధ్య ఎక్కువ ఆలస్యాన్ని జోడిస్తుంది.
void camInit (void) { writeReg (0x12, 0x80); _delay_ms (100); wrSensorRegs8_8 (ov7670_default_regs); writeReg (REG_COM10, 32); // PCLK HBLANK లో టోగుల్ చేయదు. }
కెమెరా QVGA ఇమేజ్ తీయడానికి సెట్ చేయబడింది కాబట్టి రిజల్యూషన్ ఎంచుకోవాలి. QVGA చిత్రాన్ని తీయడానికి ఫంక్షన్ రిజిస్టర్ను కాన్ఫిగర్ చేస్తుంది.
setResolution ();
ఈ ట్యుటోరియల్లో, చిత్రాలు మోనోక్రోమ్లో తీసుకోబడ్డాయి, కాబట్టి రిజిస్టర్ విలువ మోనోక్రోమ్ చిత్రాన్ని అవుట్పుట్ చేయడానికి సెట్ చేయబడింది. ఫంక్షన్ రిజిస్టర్ జాబితా నుండి రిజిస్టర్ విలువలను సెట్ చేస్తుంది, ఇది ప్రోగ్రామ్లో ముందే నిర్వచించబడింది.
setColor ();
కింది ఫంక్షన్ రిజిస్టర్ ఫంక్షన్ కోసం వ్రాయడం, ఇది నమోదు చేయడానికి హెక్స్ విలువను వ్రాస్తుంది. మీరు గిలకొట్టిన చిత్రాలను పొందినట్లయితే, రెండవ పదాన్ని అంటే 10 నుండి 9/11/12 గా మార్చడానికి ప్రయత్నించండి. కానీ చాలావరకు ఈ విలువ బాగా పనిచేస్తుంది కాబట్టి దాన్ని మార్చాల్సిన అవసరం లేదు.
writeReg (0x11, 10);
ఇమేజ్ రిజల్యూషన్ పరిమాణాన్ని పొందడానికి ఈ ఫంక్షన్ ఉపయోగించబడుతుంది. ఈ ప్రాజెక్ట్లో మేము 320 x 240 పిక్సెల్ల పరిమాణంలో చిత్రాలు తీస్తున్నాం.
క్యాప్చర్ఇమ్జి (320, 240);
ఇది కాకుండా, కోడ్ I2C కాన్ఫిగరేషన్లను కూడా అనేక భాగాలుగా విభజించింది. కెమెరా నుండి డేటాను పొందడానికి, I2C కాన్ఫిగరేషన్లలో ప్రారంభ, చదవడం, వ్రాయడం, చిరునామా సెట్ సెట్ ఉన్నాయి, ఇవి I2C ప్రోటోకాల్ను ఉపయోగిస్తున్నప్పుడు ముఖ్యమైనవి.
ఈ ట్యుటోరియల్ చివరిలో ప్రదర్శన వీడియోతో మీరు పూర్తి కోడ్ను కనుగొనవచ్చు. కోడ్ను అప్లోడ్ చేసి, సీరియల్ పోర్ట్ రీడర్ను తెరిచి, ఫ్రేమ్లను పట్టుకోండి.
చిత్రాలను చదవడానికి సీరియల్ పోర్ట్ రీడర్ను ఎలా ఉపయోగించాలి
సీరియల్ పోర్ట్ రీడర్ ఒక సాధారణ GUI, దీన్ని ఇక్కడ నుండి డౌన్లోడ్ చేసుకోండి. ఇది బేస్ 64 ఎన్కోడ్ను సంగ్రహిస్తుంది మరియు దానిని ఇమేజ్గా రూపొందించడానికి డీకోడ్ చేస్తుంది. సీరియల్ పోర్ట్ రీడర్ను ఉపయోగించడానికి ఈ సాధారణ దశలను అనుసరించండిదశ 1: మీ PC లోని ఏదైనా USB పోర్ట్కు మీ Arduino ని కనెక్ట్ చేయండి
దశ 2: మీ Arduino COM పోర్ట్ను కనుగొనడానికి “చెక్” పై క్లిక్ చేయండి
దశ 3: చివరగా “స్టార్ట్” బటన్ పై క్లిక్ చేసి సీరియల్ చదవడం ప్రారంభించండి.
దశ 4: “చిత్రాన్ని సేవ్ చేయి” పై క్లిక్ చేయడం ద్వారా ఈ చిత్రాలను కూడా సేవ్ చేయవచ్చు.
OV7670 నుండి తీసిన నమూనా చిత్రాలు క్రింద ఉన్నాయి
OV7670 ఉపయోగిస్తున్నప్పుడు జాగ్రత్తలు
- వైర్లు లేదా జంపర్లను వీలైనంత తక్కువగా ఉపయోగించడానికి ప్రయత్నించండి
- Arduino లేదా OV7670 లోని ఏదైనా పిన్లతో వదులుగా ఉండే పరిచయాన్ని నివారించండి
- పెద్ద సంఖ్యలో వైరింగ్ షార్ట్ సర్క్యూట్కు దారితీస్తుంది కాబట్టి కనెక్ట్ చేయడంలో జాగ్రత్తగా ఉండండి
- UNO GPIO కి 5V అవుట్పుట్ ఇస్తే, అప్పుడు లెవల్ షిఫ్టర్ ఉపయోగించండి.
- OV7670 కోసం 3.3V ఇన్పుట్ను వోల్టేజ్ కంటే ఎక్కువగా వాడండి, ఇది OV7670 మాడ్యూల్ను దెబ్బతీస్తుంది.
ఆర్డునోతో కెమెరా మాడ్యూల్ ఉపయోగించడం గురించి అవలోకనం ఇవ్వడానికి ఈ ప్రాజెక్ట్ సృష్టించబడింది. ఆర్డునోకు తక్కువ మెమరీ ఉన్నందున, ప్రాసెసింగ్.హించిన విధంగా ఉండకపోవచ్చు. ప్రాసెసింగ్ కోసం ఎక్కువ మెమరీ ఉన్న విభిన్న కంట్రోలర్లను మీరు ఉపయోగించవచ్చు.