ዝርዝር ሁኔታ:

የሚሽከረከር ስልክ ተራራ: 7 ደረጃዎች
የሚሽከረከር ስልክ ተራራ: 7 ደረጃዎች

ቪዲዮ: የሚሽከረከር ስልክ ተራራ: 7 ደረጃዎች

ቪዲዮ: የሚሽከረከር ስልክ ተራራ: 7 ደረጃዎች
ቪዲዮ: በአንድ ደቂቃ ውስጥ የእናንተን ትክክለኛ ስም እገምታለሁ||I will guess your name in one minute||Kalianah||Ethiopia 2024, ሀምሌ
Anonim
የሚሽከረከር ስልክ ተራራ
የሚሽከረከር ስልክ ተራራ

ይህ አስተማሪ የተፈጠረው በደቡብ ፍሎሪዳ ዩኒቨርሲቲ የሜካኮርስ የፕሮጀክት መስፈርት (www.makecourse.com) ላይ ነው።

መያዝ ሳያስፈልግዎት የስልክዎን ይዘቶች በቁመት ወይም በወርድ አቀማመጥ ላይ ለማየት እንዲችሉ የሚሽከረከር ስልክ ተራራ መስራት ይፈልጋሉ? ከዚያ ፣ ከዚህ በኋላ አይመልከቱ።

ይህንን ፕሮጀክት ለመፍጠር የሚከተሉትን ያስፈልግዎታል

- አርዱዲኖ ማይክሮ መቆጣጠሪያ እና አይዲኢ

- የዩኤስቢ ገመድ ኮድ ለመስቀል

- የዳቦ ሰሌዳ

- ዝላይ ሽቦዎች

- ኤልሲዲ ማሳያ

- ሰርቮ

- ከ servo ጋር ማያያዝ የሚችል አምድ

- IR የርቀት መቆጣጠሪያ

- IR ተቀባይ

- 10k ohm resistor

- ኬኑ ኤርፍራሜም+ የስልክ ቅንጥብ (ወይም ስልኩን በቦታው የሚይዝ ነገር)

- 9 ቮ ባትሪ ለተንቀሳቃሽ ኃይል ወይም በዩኤስቢ በተጎላበተው አርዱinoኖ

ደረጃ 1 - የ IR መቀበያ ወረዳውን ይገንቡ

የ IR መቀበያ ወረዳውን ይገንቡ
የ IR መቀበያ ወረዳውን ይገንቡ
የ IR መቀበያ ወረዳውን ይገንቡ
የ IR መቀበያ ወረዳውን ይገንቡ

በመጀመሪያ ፣ GND ን እና +5V ን ከ Arduino ወደ የዳቦ ሰሌዳዎ ላይ ወደሚገኙት የኃይል ሀዲዶች ይዝለሉ። ከዚያ የ 10k ohm resistorዎን ከ +5V የኃይል ባቡር ወደ የእርስዎ IR መቀበያ ፎቶቶራንስስተር ውፅዓት ፒን ይዝለሉ። በመቀጠልም በአርዱዲኖ ላይ ካለው ፒን 11 ጋር ለመገናኘት የዝላይ ሽቦ ይጠቀሙ። ከዚያ መሬትን ለመላክ እና +5V በ IR ተቀባዩ ላይ ለሚገኙት ፒኖች ለመላክ ሁለት የጅብል ሽቦዎችን ይጠቀሙ። ከላይ በስዕላዊ መግለጫው ውስጥ የተመለከተው የ RC ማጣሪያ አስፈላጊ አይደለም። በመጨረሻ ፣ በዚህ ደረጃ ላይ የሚታየውን ንድፍ አላደረግኩም ፣ እና የእሱ ምንጭ በሥዕሉ ላይ ይገኛል።

ደረጃ 2 Servo ፣ አምድ እና የስልክ መያዣን ያገናኙ

ሰርቪውን ፣ አምዱን እና የስልክ መያዣውን ያገናኙ
ሰርቪውን ፣ አምዱን እና የስልክ መያዣውን ያገናኙ
ሰርቪውን ፣ አምዱን እና የስልክ መያዣውን ያገናኙ
ሰርቪውን ፣ አምዱን እና የስልክ መያዣውን ያገናኙ
ሰርቪውን ፣ አምዱን እና የስልክ መያዣውን ያገናኙ
ሰርቪውን ፣ አምዱን እና የስልክ መያዣውን ያገናኙ

አሁን ፣ ከመሬት ለመዝለል እና በቅደም ተከተል ወደ ቡናማ እና ቀይ ሽቦዎች የዳቦቦርዱ የኃይል መስመሮችን +5V ለመዝለል ሁለት የመዝለያ ሽቦዎችን ይጠቀሙ። ከዚያ በአርዱኖኖ ላይ ፒን 9 ን ከሴርቮኑ ብርቱካናማ ሽቦ ጋር ለማያያዝ አንድ የዝላይ ሽቦ ይጠቀሙ።

ከዚያ ፣ በሁለተኛው ሥዕል ላይ እንደሚታየው ከ servo ራስ ላይ አንድ አምድ ያያይዙ።

በመጨረሻ ፣ በሦስተኛው ሥዕል ላይ እንደሚታየው እንደ ኬኑ ኤርፍራሜም+ስልኩን በአምዱ ላይ ለመያዝ አንድ ነገር ያያይዙ።

ደረጃ 3: ለ Servo Readout የ LCD ማሳያውን ያገናኙ

ለ Servo Readout የ LCD ማሳያውን ያገናኙ
ለ Servo Readout የ LCD ማሳያውን ያገናኙ

መሬት ላይ ይዝለሉ እና +5V ከእርስዎ የዳቦ ሰሌዳ ኃይል ሀዲዶች ወደ ኤልሲዲ ማሳያ ላይ ወደሚመለከታቸው ፒኖች። እንዲሁም ኤስዲኤ እና ኤስ.ሲ.ኤል ፒኖችን ከኤልሲዲው ወደ አርዲዩኖ ይዝለሉ። የአርዱዲኖ ኤስዲኤ እና ኤስ.ሲ.ኤል ፒኖች ከአርዱዲኖ ቦርድ ጀርባ ተለይተው ሊታወቁ የሚችሉ ሲሆን ከ AREF እና Ground በላይ ከፒን 13 በላይ ያሉት ሁለት ፒኖች ናቸው። SCL ፒን ከፍተኛው ነው። ይህ የ LCD ማሳያ የአሁኑን የ servo አቀማመጥ እንዲያነብ ያስችለዋል።

ደረጃ 4: አርዱinoኖን ከፕሮግራሙ ጋር ያያይዙትን ኮድ እና ቤተመፃሕፍት ይጠቀሙ

አርዱinoኖን ከፕሮግራሙ ጋር ያያይዙትን ኮድ እና ቤተ -ፍርግሞችን ይጠቀሙ
አርዱinoኖን ከፕሮግራሙ ጋር ያያይዙትን ኮድ እና ቤተ -ፍርግሞችን ይጠቀሙ

የ RotatingMountCode.zip ፋይልን ያውርዱ። የ Arduino IDE ን ይጫኑ እና የወረደውን ፋይል ወደ ሰነዶች / Arduino ይንቀሉት። የእኔ ንድፎች እና የቤተመፃህፍት አቃፊ ይዘቶች ወደ ረቂቆችዎ እና ቤተመፃህፍት አቃፊዎ መገልበጣቸውን ያረጋግጡ። የ ServoIRandLCD ንድፉን ይክፈቱ እና ወደ አርዱinoኖ ይስቀሉት።

ለኮድ ማብራሪያ በኋላ ደረጃዎችን ይመልከቱ።

ደረጃ 5 - ተፈላጊውን የኃይል ምንጭ ከአርዱዲኖ ጋር ያገናኙ እና ተራራውን ለማሽከርከር የርቀት መቆጣጠሪያውን ይጠቀሙ

ተፈላጊውን የኃይል ምንጭ ከአርዱዲኖ ጋር ያገናኙ እና ተራራውን ለማሽከርከር የርቀት መቆጣጠሪያውን ይጠቀሙ!
ተፈላጊውን የኃይል ምንጭ ከአርዱዲኖ ጋር ያገናኙ እና ተራራውን ለማሽከርከር የርቀት መቆጣጠሪያውን ይጠቀሙ!
ተፈላጊውን የኃይል ምንጭ ከአርዱዲኖ ጋር ያገናኙ እና ተራራውን ለማሽከርከር የርቀት መቆጣጠሪያውን ይጠቀሙ!
ተፈላጊውን የኃይል ምንጭ ከአርዱዲኖ ጋር ያገናኙ እና ተራራውን ለማሽከርከር የርቀት መቆጣጠሪያውን ይጠቀሙ!

ወይ አርዱinoኖ ተሰክቶ በኮምፒተርዎ ላይ ተዉት ወይም ከኮምፒዩተርዎ ይንቀሉት እና የዲዲ ኃይልን ለአርዱዲኖ ለመስጠት የ 9 ቮ ባትሪ ይጠቀሙ። በመጨረሻም አገልጋዩን ለመቆጣጠር እና ስለዚህ የስልኩን መጫኛ አቀማመጥ ለመቆጣጠር ርካሽ የርቀት መቆጣጠሪያ ይጠቀሙ!

በርቀት መቆጣጠሪያው ላይ ያለው ቁጥር 1 የ servo ቦታን ወደ 0 ዲግሪዎች ፣ ከ 2 እስከ 90 ዲግሪዎች እና ከ 3 እስከ 180 ዲግሪዎች ቁጥርን ማዘጋጀት አለበት። ይህ በእንዲህ እንዳለ በርቀት መቆጣጠሪያው ላይ ያሉት + እና - አዝራሮች በቅደም ተከተል የ servo ን አንግል በ 1 ዲግሪ ማሳደግ ወይም መቀነስ አለባቸው።

ማሳሰቢያ: እዚህ ከሚታየው የተለየ IR የርቀት መቆጣጠሪያ የሚጠቀሙ ከሆነ ከተለያዩ አዝራሮች ጋር የሚዛመዱ የ IR ኮዶች ተለውጠዋል። እንደዚያ ከሆነ ፣ በምትኩ እነዚያን የ IR ኮዶችን ለመጠቀም የ ServoIRandLCD ንድፉን ይለውጡ።

ደረጃ 6 ለምንጭ ኮድ ማብራሪያ ይህንን ያንብቡ

ይህንን ለምንጭ ኮድ ማብራሪያ ያንብቡ
ይህንን ለምንጭ ኮድ ማብራሪያ ያንብቡ
ይህንን ለምንጭ ኮድ ማብራሪያ ያንብቡ
ይህንን ለምንጭ ኮድ ማብራሪያ ያንብቡ

የአርዱዲኖ ንድፍ ምንጭ ኮድ ከዚህ በታች ወይም ቀደም ሲል በተያያዘው.zip ፋይል ውስጥ ይገኛል። የሚያስፈልጉት ቤተ -መጻህፍት ከዚህ ቀደም በተያያዘው.zip ፋይል ውስጥ በደረጃ 4 ውስጥ ብቻ ሊገኙ ይችላሉ።

ኮዱ የሚያደርገው የመጀመሪያው ነገር በስዕሉ ውስጥ ያሉትን ሁሉንም ተግባራት ለማስኬድ የሚያስፈልጉትን አስፈላጊ ቤተ -ፍርግሞችን ያካትታል። በመቀጠልም ፣ በአርዱኖኖ ላይ ፒን 9 ለ servo በ PWM የነቃ የምልክት ፒን መሆኑን ያስታውቃል። እንዲሁም በአርዱዲኖ ላይ ለ IR ተቀባዩ የሚያገለግል ፒን 11 ያደርገዋል። በመቀጠልም ፣ የ servo ን አቀማመጥ በዲግሪዎች ውስጥ ለመከታተል የሚያገለግል ኢንቲጀር ተለዋዋጭ ያውጃል እና መጀመሪያ ላይ ወደ 0 ዲግሪዎች ያስቀምጠዋል። ከዚያ ፣ አስፈላጊዎቹን ነገሮች ለ IRrecv ነገር ፣ ለ servo ነገር እና ለ MyDisplay LCD ነገር በቅጽበት ያነቃቃል (ይህ በተመሳሳይ መስመር የተዋቀረ ነው) ስለዚህ እነዚህ ነገሮች በኋላ ላይ ጥቅም ላይ ሊውሉ ይችላሉ።

በመቀጠል ፣ በማዋቀሩ ተግባር ውስጥ ፣ ተከታታይ ወደቡ በ 9600 ቢት/ሰከንድ ተጀምሯል ፣ ስለዚህ ተከታታይ ሞኒተሩ ከተፈለገ የ servo ን አቀማመጥ ለመከታተል ሊያገለግል ይችላል። እንዲሁም 9 ን ለመሰካት የ myservo ን ነገር ያያይዛል ፣ የ IR ተቀባዩን ይጀምራል ፣ እና የ LCD ማሳያውን ያስጀምራል።

በዋናው የሉፕ ተግባር ውስጥ ፣ የ IR ማስተላለፊያው ከ IR ተቀባዩ ከተቀበለ ብቻ የተገደለው አካል ፣ የ IR ተቀባዩ ዲኮድ (እና ውጤቶችን) ተግባርን በመጠቀም ከኤር ርቀት ላይ የተላከውን ምልክት ያወግዛል እና ከዚያ መግለጫዎች ምን እንደሚወስኑ በተቀበለው የ IR እሴት ላይ በመመርኮዝ አገልጋዩን ለማቀናበር። የመፃፍ ተግባሩ አገልጋዩን ወደ ተገቢው ዲግሪዎች ለማቀናበር ያገለግላል ፣ እና የንባብ ተግባሩ የአሁኑን የ servo አንግል ለማግኘት እና እንደ አስፈላጊነቱ ለማሳደግ ወይም ለመቀነስ ያገለግላል።

በመጨረሻም ፣ የ servo የአሁኑ አንግል የ myservo.read () ተግባርን በመጠቀም ለሁለቱም ተከታታይ ማሳያ እና ለኤልሲዲ ማሳያ ይላካል ፣ እና ዋናዎቹ loops ላልተወሰነ ጊዜ ይደግማል።

ምንጭ ኮድ:

#ያካትቱ // የአርዱዲኖ መደበኛ ቤተ -መጽሐፍት #ያካትታል /የ IR ቤተ -መጽሐፍት #ለ ‹ኤል.ሲ.ዲ.› ‹Web.h› /WW..

#define servopin 9 // ይህ ፒን 9 ን ለ servo መቆጣጠሪያ መሪ (ብርቱካናማ) የሚያገለግል ፒን ነው

int RECV_PIN = 11; // IR ፎቶ-ትራንዚስተር ውፅዓት ወደ ፒን 11 ይልካል

int currentAngle = 0; // የአሁኑን ኢንቲጀር ተለዋዋጭ ያውጁ እና ወደ 0 ተቀናብረዋል

IRrecv irrecv (RECV_PIN); // የ IR ተቀባዩን ነገር ዲኮዴክ -ውጤት ውጤቶችን ወዲያውኑ ማነቃቃት ፤ // ዲኮድ -ውጤት ነገሮችን ወዲያውኑ ያስጀምሩ። ይህ ነገር ከ IR ተቀባዩ የተለየ ነው።

Servo myservo; // ‹myservo› የተባለውን የ Servo ን ነገር በቅጽበት ያስታጥቁ//ቢበዛ ስምንት የ servo ነገሮችን መፍጠር ይቻላል

LiquidCrystal_I2C myDisplay (0x27, 16, 2); // ኤልሲዲ ነገርን ያፋጥኑ እና ውቅረት ያዋቅሩ

ባዶነት ማዋቀር () {

Serial.begin (9600); // ተከታታይ ወደብ ይጀምሩ

myservo.attach (servopin); // አገልጋዩን በፒን 9 ላይ ወደ servo ነገር ያያይዘዋል

irrecv.enableIRIn (); // ተቀባዩን ያስጀምሩ

myDisplay.init (); // LCD ን ያስጀምሩ

myDisplay.backlight (); // ኤልሲዲ የጀርባ ብርሃንን ያብሩ

}

ባዶነት loop () {

ከሆነ (irrecv.decode (& ውጤቶች)) // ስርጭቱ ከተቀበለ…

{Serial.print («IR ዋጋ ደርሷል»);

Serial.println (results.value); // የማሳያ ዋጋ ደርሷል

// የተቀበሉትን ትዕዛዛት መተርጎም… ከሆነ (results.value == 16724175) // 1 {// left myservo.write (0); }

ከሆነ (results.value == 16718055) // 2 {// middle myservo.write (90); }

ከሆነ (results.value == 16743045) // 3 {// right myservo.write (180); }

ከሆነ (results.value == 16754775) //+ {// increment currentAngle = myservo.read (); myservo.write (currentAngle + 1); } ከሆነ (results.value == 16769055) //- {// decrement currentAngle = myservo.read (); myservo.write (currentAngle - 1); }}

irrecv.resume (); // የሚቀጥለውን እሴት ይቀበሉ

// ተከታታይ ሞኒተር ህትመት Serial.print ("የአሁኑ servo አቀማመጥ:");

Serial.println (myservo.read ()); // ይህ የ servo ቦታን ሰርስሮ ወደ ተከታታይ ማሳያ ይልካል

// LCD ህትመት myDisplay.clear ();

myDisplay.print ("Servo deg.:");

myDisplay.print (myservo.read ());

መዘግየት (200); // የ servo actuation የተረጋጋ ለማድረግ/መዘግየት

}

ደረጃ 7: ለእርዳታ የእኔን የ Youtube ቪዲዮ ይመልከቱ

ማንኛውም ጥያቄ ካለዎት ፕሮጀክቱን ሙሉ በሙሉ የሚወያይና የሚያሳየውን የእኔን ያልተዘረዘረ የ YouTube ቪዲዮ ይመልከቱ!

የሚመከር: