આ ટ્યુટોરિયલમાં, આપણે ESP32 મોડ્યુલ અને લાઇન ટ્રેકિંગ મોડ્યુલનો ઉપયોગ કરીને સફેદ સપાટી પર કાળી રેખાઓ કેવી રીતે શોધવી તે શીખીશું. આ ક્ષમતા રોબોટિક કાર જેવી એપ્લિકેશનો માટે આવશ્યક છે જેને નિયુક્ત પાથને અનુસરવાની જરૂર છે. વધુમાં, આપણે એક બઝરને એકીકૃત કરીશું જે જ્યારે લાઇન ટ્રેકિંગ મોડ્યુલ કાળી રેખા શોધે છે ત્યારે સક્રિય થાય છે, જે આપણા પ્રોજેક્ટની પ્રતિસાદ પદ્ધતિને વધારે છે. વધુ સ્પષ્ટતા માટે, કૃપા કરીને વિડિઓનો સંદર્ભ લો (વિડિઓમાં 0:00 પર).
લાઇન_ટ્રેક
હાર્ડવેર સમજાવ્યું
આ પ્રોજેક્ટના મુખ્ય ઘટકોમાં ESP32 મોડ્યુલ, લાઇન ટ્રેકિંગ મોડ્યુલ અને બઝરનો સમાવેશ થાય છે. ESP32 મોડ્યુલ એક શક્તિશાળી માઇક્રોકંટ્રોલર છે જેમાં બિલ્ટ-ઇન Wi-Fi અને બ્લૂટૂથ ક્ષમતાઓ છે, જે IoT એપ્લિકેશનોની વિશાળ શ્રેણીને મંજૂરી આપે છે. લાઇન ટ્રેકિંગ મોડ્યુલ પ્રતિબિંબિત ઇન્ફ્રારેડ પ્રકાશની તીવ્રતાના આધારે સપાટીના રંગમાં તફાવત શોધવા માટે ઇન્ફ્રારેડ ઉત્સર્જક અને ફોટોરેઝિસ્ટરનો ઉપયોગ કરે છે.
લાઇન ટ્રેકિંગ મોડ્યુલ ઇન્ફ્રારેડ પ્રકાશ ઉત્સર્જિત કરીને કાર્ય કરે છે જે તેની નીચેની સપાટી પરથી પ્રતિબિંબિત થાય છે. કાળી જેવી ઘાટી સપાટી વધુ પ્રકાશ શોષી લે છે, પરિણામે પ્રતિબિંબિત તીવ્રતા ઓછી થાય છે, જ્યારે સફેદ જેવી હળવી સપાટી વધુ પ્રકાશ પ્રતિબિંબિત કરે છે, જે વધુ તીવ્રતા ઉત્પન્ન કરે છે. આ તફાવત સપાટીની સ્થિતિ (કાળી અથવા સફેદ) નક્કી કરવા અને અનુરૂપ સિગ્નલ આઉટપુટ કરવા માટે ઓપરેશનલ એમ્પ્લીફાયર દ્વારા પ્રક્રિયા કરવામાં આવે છે.
ડેટાશીટ વિગતો
ઉત્પાદક
સનફાઉન્ડર
ભાગ નંબર
TCRT5000
લોજિક/IO વોલ્ટેજ
3.3 V થી 5 V
આઉટપુટ કરંટ (પ્રતિ ચેનલ)
20 mA
પીક કરંટ (પ્રતિ ચેનલ)
50 mA
પ્રતિભાવ સમય
< 10 ms
શોધ શ્રેણી
1 cm થી 5 cm
પેકેજ
હેડર પિન સાથેનું મોડ્યુલ
નોંધો / વેરિઅન્ટ્સ
સામાન્ય રીતે લાઇન ફોલોઇંગ રોબોટ્સમાં ઉપયોગમાં લેવાય છે
યોગ્ય પાવર સપ્લાય (3.3 V અથવા 5 V) સુનિશ્ચિત કરો.
ચોક્કસ રીડિંગ્સ માટે સેન્સરને સ્વચ્છ રાખો.
ઓનબોર્ડ પોટેન્શિયોમીટરનો ઉપયોગ કરીને સંવેદનશીલતા સમાયોજિત કરો.
ફ્લોટિંગ ઇનપુટ્સ ટાળવા માટે કનેક્શન તપાસો.
સ્થિર રીડિંગ્સ માટે જરૂર પડે તો પુલ-અપ રેઝિસ્ટરનો ઉપયોગ કરો.
એમ્બિયન્ટ ઇન્ફ્રારેડ સ્ત્રોતોમાંથી દખલ ઓછી કરો.
વાયરિંગ સૂચનાઓ
ESP32-20_line-tracking-wiring
લાઇન ટ્રેકિંગ મોડ્યુલને ESP32 સાથે વાયર કરવા માટે, મોડ્યુલના ગ્રાઉન્ડ પિનને ESP32 પરના ગ્રાઉન્ડ પિન સાથે જોડીને શરૂ કરો. પછી, લાઇન ટ્રેકિંગ મોડ્યુલના V+ પિનને ESP32 પર 3.3 V અથવા 5 V જેવા યોગ્ય પાવર સ્ત્રોત સાથે જોડો. સિગ્નલ પિન (S તરીકે લેબલ થયેલ) ESP32 પર GPIO 14 સાથે જોડાયેલ હોવી જોઈએ. આગળ વધતા પહેલા ખાતરી કરો કે આ કનેક્શન સુરક્ષિત છે.
જો તમે બઝરનો ઉપયોગ કરી રહ્યા છો, તો તેના નકારાત્મક ટર્મિનલને ગ્રાઉન્ડ સાથે અને હકારાત્મક ટર્મિનલને ESP32 પર GPIO 27 સાથે જોડો. આ સેટઅપ બઝરને સક્રિય થવા દે છે જ્યારે લાઇન ટ્રેકિંગ મોડ્યુલ કાળી રેખા શોધે છે. બધા કનેક્શન કોડમાં ઉલ્લેખિત પિન સાથે મેળ ખાય છે તેની ખાતરી કરવા માટે બે વાર તપાસો.
ESP32-20_લાઇન-ટ્રેકિંગ-સ્કીમેટિક
કોડ ઉદાહરણો અને વોકથ્રુ
નીચે કોડમાંથી એક મુખ્ય અંશ છે જે લાઇન ટ્રેકિંગ મોડ્યુલ સેટ કરે છે. ચલ linePin લાઇન ટ્રેકિંગ મોડ્યુલ સાથે જોડાયેલ પિન દર્શાવવા માટે વ્યાખ્યાયિત કરવામાં આવ્યું છે.
આ સુનિશ્ચિત કરે છે કે ESP32 લાઇન ટ્રેકિંગ મોડ્યુલની સ્થિતિ વાંચી શકે છે. મોનિટરિંગ આઉટપુટ માટે સીરિયલ કમ્યુનિકેશન 115200 ની બૉડ રેટ પર શરૂ કરવામાં આવે છે.
આ લૂપ તપાસે છે કે lineState HIGH (કાળો દર્શાવે છે) કે LOW (સફેદ દર્શાવે છે) છે અને પરિણામ સીરિયલ મોનિટર પર છાપે છે. સંપૂર્ણ કોડ તમારા સંદર્ભ માટે લેખની નીચે લોડ થાય છે.
પ્રદર્શન / શું અપેક્ષા રાખવી
એકવાર વાયરિંગ પૂર્ણ થઈ જાય અને કોડ અપલોડ થઈ જાય, તમારે ESP32 ને "કાળો" છાપતું જોવું જોઈએ જ્યારે લાઇન ટ્રેકિંગ મોડ્યુલ કાળી સપાટી પર હોય, અને "સફેદ" જ્યારે તે સફેદ સપાટી પર હોય. વધુમાં, જ્યારે મોડ્યુલ કાળી રેખા શોધે છે ત્યારે બઝર વાગશે, જે શ્રાવ્ય ચેતવણી પ્રદાન કરશે. પોટેન્શિયોમીટર સેટિંગ્સથી સાવચેત રહો, કારણ કે અતિશય સંવેદનશીલ સેટિંગ્સ અસ્થિર વર્તન તરફ દોરી શકે છે (વિડિઓમાં 10:00 પર).
વિડિઓ ટાઇમસ્ટેમ્પ્સ
00:00 શરૂઆત
2:22 લાઇન ટ્રેકિંગ મોડ્યુલનો પરિચય
5:10 દસ્તાવેજીકરણ પૃષ્ઠ
9:20 વાયરિંગ સમજાવ્યું
10:49 આર્ડુઇનો કોડ સમજાવ્યો
13:36 આર્ડુઇનો IDE માં ESP32 બોર્ડ અને COM પોર્ટ પસંદ કરવું
819-ESP32 Tutorial 20/55- Arduino code line tracking
Language: C++
// Set pin number
const int linePin = 14; // The number of the line track module pin
// Variable for storing the line status
int lineState = 0;
void setup() {
Serial.begin(115200);
// Initialize the line track module pin as an input
pinMode(linePin, INPUT);
}
void loop() {
// Read the state of the line track module
lineState = digitalRead(linePin);
if (lineState == HIGH) {
Serial.println("Black");
delay(100);
}
else {
Serial.println("White");
delay(100);
}
}