ዝርዝር ሁኔታ:

ብጁ አርዱinoኖ የ CAN መሪ ጎማ አዝራሮችን በአዲስ የመኪና ስቴሪዮ ለማቆየት - 9 ደረጃዎች (ከስዕሎች ጋር)
ብጁ አርዱinoኖ የ CAN መሪ ጎማ አዝራሮችን በአዲስ የመኪና ስቴሪዮ ለማቆየት - 9 ደረጃዎች (ከስዕሎች ጋር)

ቪዲዮ: ብጁ አርዱinoኖ የ CAN መሪ ጎማ አዝራሮችን በአዲስ የመኪና ስቴሪዮ ለማቆየት - 9 ደረጃዎች (ከስዕሎች ጋር)

ቪዲዮ: ብጁ አርዱinoኖ የ CAN መሪ ጎማ አዝራሮችን በአዲስ የመኪና ስቴሪዮ ለማቆየት - 9 ደረጃዎች (ከስዕሎች ጋር)
ቪዲዮ: እንዴት በቀላሉ ባለ 2 ዲጂት ቁጥሮችን ያለ ካልኩሌር ማባዛት እንደምንችል /How to easily multiply 2 digit numbers 2024, ሀምሌ
Anonim
ብጁ አርዱinoኖ የ CAN መሪ ጎማ አዝራሮችን በአዲስ የመኪና ስቴሪዮ ለማቆየት
ብጁ አርዱinoኖ የ CAN መሪ ጎማ አዝራሮችን በአዲስ የመኪና ስቴሪዮ ለማቆየት
ብጁ አርዱinoኖ የ CAN መሪ ጎማ አዝራሮችን በአዲስ የመኪና ስቴሪዮ ለማቆየት
ብጁ አርዱinoኖ የ CAN መሪ ጎማ አዝራሮችን በአዲስ የመኪና ስቴሪዮ ለማቆየት
ብጁ አርዱinoኖ የ CAN መሪ ጎማ አዝራሮችን በአዲስ የመኪና ስቴሪዮ ለማቆየት
ብጁ አርዱinoኖ የ CAN መሪ ጎማ አዝራሮችን በአዲስ የመኪና ስቴሪዮ ለማቆየት

በ mp3 ቮልቮ ቪ 70 -02 ውስጥ የመጀመሪያውን የመኪና ስቴሪዮ በአዲስ ስቴሪዮ ለመተካት ወሰንኩ ፣ ስለዚህ እንደ mp3 ፣ ብሉቱዝ እና የእጅ አምሳያ ያሉ ነገሮችን ለመደሰት እችላለሁ።

መኪናዬ አሁንም ለመጠቀም መቻል የምፈልገው ለስቴሪዮ አንዳንድ የማሽከርከሪያ መቆጣጠሪያዎች አሉት። እኔ ከመኪናዬ ጋር ተኳሃኝ የሚባሉ በርካታ አስማሚዎች በገበያ ላይ ስላሉ ያ ችግር ይሆናል ብዬ አልጠበቅሁም። ሆኖም ብዙም ሳይቆይ እነሱ እንዳልሆኑ ተረዳሁ! (ትንሽ ለየት ባለ የ CAN ፕሮቶኮል ምክንያት የ V70 አስማሚዎች ከ -02 መኪናዎች ጋር ችግር ሊኖራቸው ይችላል።)

ስለዚህ ምን ማድረግ አለበት? የድሮውን ስቴሪዮ ያስቀምጡ? በማይሰሩ አዝራሮች ሕይወት ይኑሩ? በጭራሽ! በገበያው ላይ የሚሰራ አስማሚ ከሌለ አንድ መገንባት አለብን!

ይህ አስተማሪ (በአንዳንድ ማመቻቸቶች) የመንኮራኩር ቁልፎች በ CAN አውቶቡስ ላይ በሚገናኙባቸው መኪኖች ላይ ሊተገበር ይችላል።

ደረጃ 1 ትዕዛዞችን ወደ ስቴሪዮ እንዴት እንደሚላኩ ይወቁ

ትዕዛዞችን ወደ ስቴሪዮ እንዴት እንደሚላኩ ይወቁ
ትዕዛዞችን ወደ ስቴሪዮ እንዴት እንደሚላኩ ይወቁ
ትዕዛዞችን ወደ ስቴሪዮ እንዴት እንደሚልኩ ይወቁ
ትዕዛዞችን ወደ ስቴሪዮ እንዴት እንደሚልኩ ይወቁ

እርስዎ ማድረግ ያለብዎት የመጀመሪያው ነገር ስቴሪዮ የሚጠብቀውን የርቀት ግብዓት ዓይነት ማወቅ ነው። በተለምዶ አምራቾቹ ያንን አይነግሩዎትም እና ምናልባትም ለተገላቢጦሽ ምህንድስና የሚሰሩ የርቀት መቆጣጠሪያዎችን መዳረሻ ላይኖራቸው ይችላል።

የእኔ አዲሱ ስቴሪዮ (ኬንዉድ) ውስጥ ያለው የርቀት መቆጣጠሪያ አንድ ነጠላ ሽቦን ያካተተ ሲሆን እንዴት እንደሚሰራ ምንም መረጃ ማግኘት አልቻልኩም። ሆኖም ለርቀት ግብዓትም 3.5 ሚሜ መሰኪያ አለው። እኔም ስለዚያ ምንም ማወቅ አልቻልኩም። ነገር ግን ስለ ጫን እና እጅጌ (እና እንደ ቀለበት እና እጅጌ መካከል) አንድ የተወሰነ ተቃውሞ በመተግበር የተለያዩ ትዕዛዞች ተለይተው እንደሚጠቆሙ የሚጠቁሙ ስለ ሌሎች ብራንዶች ስለ 3.5 ሚሜ መሰኪያ አንዳንድ መረጃዎች አሉ። ለምሳሌ https://forum.arduino.cc/index.php?topic=230068.0. ስለዚህ ያንን ለመሞከር ወሰንኩ ፣ የዳቦ ሰሌዳ ፣ ብዙ የተቃዋሚዎች ስብስብ እና የ 3.5 ሚሜ ተሰኪ በስቴሪዮ ውስጥ ተገናኝቶ ከዳቦ ሰሌዳው ጋር ተገናኝቷል። በመጀመሪያ ምንም ነገር አልታወቀም ፣ ግን ስቴሪዮው “የመማሪያ ሁኔታ” ምናሌ አለው እና የተለያዩ ተቃውሞዎችን በሚተገበሩበት ጊዜ ትዕዛዞቹ በተሳካ ሁኔታ ሊዋቀሩ ይችላሉ። ስኬት!

ሆኖም እኔ እዚህ ስህተት እንደሠራሁ ተረዳሁ -ስቴሪዮ የተማረ የሚመስላቸው ሁሉም ትዕዛዞች በትክክል አይሰሩም። ለምሳሌ 30 kOhm በትምህርት ሁኔታ ውስጥ ተገኝቷል ነገር ግን በኋላ ላይ አልሰራም እና ለአንዳንድ ትዕዛዞች የመቋቋም ልዩነቱን ያዋቀርኩት በጣም ትንሽ በመሆኑ በኋላ የተሳሳተ ትእዛዝ ተቀሰቀሰ።

ስለዚህ እርስዎ ሊይ wantቸው ለሚፈልጓቸው የርቀት ትዕዛዞች ሁሉ በእውነቱ ሁሉም እንደሚሠሩ ለመፈተሽ የዳቦ ሰሌዳውን ከተቃዋሚዎች ጋር እና የመቀየሪያ ቁልፎችን እንዲጠቀሙ እመክራለሁ።

የመኪናዎ ስቴሪዮ በተመሳሳይ መንገድ ግብዓት መቀበል የማይችል ከሆነ ታዲያ ይህንን መፍትሄ ማላመድ እንዲችሉ እንዴት እንደሚሰራ ማወቅ አለብዎት። በጭራሽ ማወቅ ካልቻሉ ችግር አለብዎት።

ደረጃ 2 ከ CAN አውቶቡስ ጋር የት እንደሚገናኙ ይወቁ

ከ CAN አውቶቡስ ጋር የት እንደሚገናኙ ይወቁ
ከ CAN አውቶቡስ ጋር የት እንደሚገናኙ ይወቁ

ከ CAN አውቶቡስ ጋር ለመገናኘት ጥሩ ቦታ ማግኘት አለብዎት። በ CAN ላይ የሚነጋገረውን አሮጌ ስቴሪዮ ስለሚተካ ፣ ከስቴሪዮ በስተጀርባ ያንን ማግኘት መቻል አለብዎት። የ CAN አውቶቡስ ጥንድ ጠማማ ሽቦዎችን (CAN-L እና CAN_H) ያካትታል። እርግጠኛ ለመሆን ለመኪናዎ የሽቦ ዲያግራም ያማክሩ።

ደረጃ 3 - የ CAN መልእክቶች የተገላቢጦሽ ምህንድስና

የ CAN መልእክቶች የተገላቢጦሽ ምህንድስና
የ CAN መልእክቶች የተገላቢጦሽ ምህንድስና

ጉግል ምን የ CAN መልዕክቶችን ማዳመጥ እንዳለብዎ ካልነገረዎት ከዚያ ከ CAN አውቶቡስ ጋር መገናኘት እና አንዳንድ የተገላቢጦሽ ምህንድስና ማድረግ ያስፈልግዎታል። እኔ አርዱዲኖ ኡኖን እና የ CAN ጋሻን እጠቀም ነበር። (በኋላ ላይ እንደሚመለከቱት በምትኩ በዳቦ ሰሌዳ ላይ አንዳንድ ርካሽ ክፍሎችን መጠቀም ይችላሉ ፣ በእርግጥ የ CAN ጋሻ አያስፈልግዎትም።)

ከመኪናዎ ጋር ሲገናኙ ምን ያህል የባውድ መጠን መጠቀም እንዳለብዎ ለማወቅ Google ን ያማክሩ። (በተለምዶ ከፍተኛ ፍጥነት እና ዝቅተኛ ፍጥነት ያለው የ CAN መረብ እንዳለ ያገኛሉ። ከዝቅተኛ ፍጥነት መረብ ጋር እየተገናኙ ነው።)

በኮምፒተርዎ ላይ ባለው የምዝግብ ማስታወሻ ፋይል ውስጥ ማስቀመጥ እንዲችሉ ሁሉንም የ CAN መልዕክቶችን በተከታታይ በይነገጽ ላይ ለማስገባት አርዱዲኖን ፕሮግራም ማድረግ ያስፈልግዎታል። መደበኛው አርዱዲኖ አይዲኢ መረጃን ወደ ምዝግብ ማስታወሻ ፋይል አያስቀምጥም ፣ ግን ለምሳሌ መጠቀም ይችላሉ። በምትኩ tyቲ።

ፕሮግራምዎን መጻፍ ከመጀመርዎ በፊት የ CAN_BUS_Shield ቤተመፃሕፍት መጫን ያስፈልግዎታል።

በፕሮግራምዎ ለመጀመር እርስዎን ለማገዝ አንዳንድ የውሸት ኮድ እዚህ አሉ

አዘገጃጀት()

{init serial connection init CAN ቤተ -መጽሐፍት} loop () {የ CAN መልእክት ከተቀበለ {የ CAN መልእክት ቅርጸት ምዝግብ ማስታወሻ ግባን ወደ ተከታታይ ተከታታይ ይፃፉ}}

ፍንጮች ፦

የ CAN ቤተመጽሐፍት ተግባርን ለመድረስ የክፍል MCP_CAN ምሳሌን ይጠቀማሉ።

MCP_CAN m_can;

Init CAN:

ሳለ (m_can.begin ()! = CAN_OK)

{መዘግየት (1000); }

የ CAN መልዕክቶችን ይመልከቱ እና ያንብቡ -

(m_can.checkReceive () == CAN_MSGAVAIL)

{// የ CAN መታወቂያ ፣ የመልዕክት ርዝመት እና የመልእክት ውሂብ m_can.readMsgBufID (& m_canId ፣ & m_msgLen ፣ m_msgBuf) ያግኙ ፤ // እዚህ ከመልዕክት ውሂብ ጋር የሆነ ነገር ያድርጉ}

ተጨማሪ እገዛ ከፈለጉ ወደ ፕሮግራሜ በኋላ የሚወስደውን አገናኝ ማግኘት ይችላሉ። የ CAN ጋሻ ቤተ -መጽሐፍት እንዲሁ ምሳሌን ያካትታል። ወይም ተመሳሳይ እርምጃን የሚያካትት mviljoen2 ን መመሪያ ይመልከቱ።

ውሂብን ለማጣራት በመጀመሪያ ለማመሳከሪያ ፋይል ያስፈልግዎታል። ማብሪያ / ማጥፊያውን ወደ ሬዲዮ ሞድ ይለውጡ እና ማንኛውንም አዝራሮች ሳይነኩ ሁሉንም ነገር ለሁለት ደቂቃዎች ይግቡ።

ከዚያ ለእያንዳንዱ አዝራሮች ፣ መግባት ይጀምሩ ፣ ቁልፉን ይግፉት እና መግባትዎን ያቁሙ።

ሲጨርሱ እጩዎችዎን ለማግኘት በአዝራር ምዝግብ ማስታወሻዎ ውስጥ በማጣቀሻ ምዝግብ ማስታወሻዎ ውስጥ ያለውን ሁሉ ማጣራት ያስፈልግዎታል። ብዙ መልእክቶች አሁንም እንደቀሩ ተገነዘብኩ ስለዚህ ብዙ ምዝግብ ማስታወሻዎችን ሠራሁ እና ከዚያ “የትእዛዝ ሀ እጩዎች በሁሉም ቁልፍ-ኤ-ፋይሎች ውስጥ እና በማናቸውም የማጣቀሻ ፋይሎች ውስጥ መሆን አለባቸው” የሚል ጥያቄ አነሳሁ። ያ ለመሞከር ጥቂት እድሎችን ብቻ አስቀርቶልኛል።

የምዝግብ ማስታወሻዎች ብዙ መልዕክቶችን ይይዛሉ ስለዚህ ለዚህ የተወሰነ ፕሮግራም መጻፍ ወይም ምናልባት ኤክሴልን መጠቀም ያስፈልግዎታል። (ለፍላጎቴ በጣም ከባድ ኮድ የተደረገባቸውን ሁኔታዎች ተጠቅሜ አንድ ፕሮግራም ተጠቅሜአለሁ ስለዚህ እርስዎ ሊጠቀሙበት የሚችለውን ፕሮግራም ማቅረብ አልችልም ብዬ እፈራለሁ።)

የማስጠንቀቂያ ቃል -አንድ አዝራር ሁል ጊዜ ተመሳሳይ መልእክት እንደሚያመጣ እርግጠኛ መሆን አይችሉም። አንዳንድ ቢት የሚጨምሩ መቁጠሪያዎችን ወዘተ ሊይዙ ይችላሉ (ከመልዕክቱ መታወቂያ በስተቀር ግን ተመሳሳይ መሆን ይችላሉ።)

እርስዎ Volvo V70 -02 ካለዎት ይህ እርስዎ የሚከተሉት ነው-

  • የመልዕክት መታወቂያ ፦ 0x0400066Byte0: 0x00 ፣ 0x40 ፣ 0x80 ወይም 0xc0 (ግድ የለኝም)
  • ባይት 1: 0x00 (ግድ የለኝም)
  • ባይት 2: 0x00 (ግድ የለኝም)
  • ባይት 3: 0x00-0x07 (ግድ የለኝም)
  • ባይት 4: 0x1f (ግድ የለኝም)
  • ባይት 5: 0x40 (ግድ የለኝም)
  • ባይት 6: 0x40 (ግድ የለኝም)
  • ባይት 7 ፦ የአዝራር መለያ - 0x77 = ድምጽ ጨምሯል ፣ 0x7b = ድምጽ ወደ ታች ፣ 0x7d = ቀጣዩ ትራክ ፣ 0x7e = ቀዳሚ ትራክ።

ትዕዛዞቹን እንዳገኙ በሚያምኑበት ጊዜ አስደሳች መልእክቶችን ብቻ እንዲያስገባ ፕሮግራሙን ማሻሻል ጥሩ ሀሳብ ሊሆን ይችላል። ትክክለኛዎቹን መልእክቶች መለየትዎን ለማረጋገጥ ቁልፎቹን ሲጫኑ ተከታታይ የምዝግብ ማስታወሻ መስኮቱን ይመልከቱ።

ደረጃ 4 የሃርድዌር ፕሮቶታይፕ

የሃርድዌር ፕሮቶታይፕ
የሃርድዌር ፕሮቶታይፕ

የእርስዎ ሃርድዌር የሚከተሉትን ማድረግ መቻል አለበት ፦

  1. በ CAN አውቶቡስ ላይ የተቀበሉትን ትዕዛዞች ይለዩ
  2. ትዕዛዞችን በሌላ ቅርጸት ወደ ስቴሪዮ ይላኩ

በቂ ቦታ ካለዎት ለመጀመሪያው ክፍል አርዱዲኖ እና የ CAN ጋሻ መጠቀም እና ለሁለተኛው አንዳንድ ተጨማሪ ሃርድዌር ማያያዝ ይችላሉ። ሆኖም አንዳንድ ድክመቶች አሉ-

  • የ CAN ጋሻ ዋጋ
  • መጠን
  • የአርዱዲኖ የኃይል አቅርቦት በቀጥታ ከመኪናዎችዎ 12 ቪ ጋር ከተገናኘ ደስተኛ አይሆንም (ምናልባት ይሠራል ግን ሕይወቱ ያጠረ ይሆናል)።

ስለዚህ በምትኩ የሚከተሉትን እጠቀማለሁ

  • አትሜጋ 328 ፣ “አርዱinoኖ አንጎል”። (አንዳንድ ተለዋዋጮች አሉ ፣ በአርዱዲኖ ኡኖ ላይ ካለው ጋር እኩል የሆነውን ያግኙ። በአርዱዲኖ ቡት ጫer ወይም ያለሱ መግዛት ይችላሉ።)
  • ለሰዓት ምልክት 16 ሜኸ ክሪስታል + መያዣዎች።
  • MCP2551 CAN አስተላላፊ።
  • MCP2515 CAN መቆጣጠሪያ።
  • TSR1-2450 ፣ 6.5-36V ወደ 5V ይለውጣል። (በሶፍትዌሩ ውስጥ ጥቅም ላይ አልዋለም ምክንያቱም ሶፍትዌሩ ለኃይል አቅርቦቱ ግድ የለውም።)
  • ትዕዛዞችን ወደ ስቴሪዮ በሚልክበት ጊዜ ጥቅም ላይ የሚውለው CD4066B ማብሪያ / ማጥፊያ።
  • ሁለት ተቃዋሚዎች። (እሴቶቹ በኋላ ደረጃ ላይ በንስር መርሃግብሮች ውስጥ ሊገኙ ይችላሉ።)

ከዚህ ውቅረት ጋር ጥሩ ነገር ከአርዲኖ እና ከ CAN ጋሻ ቤተ -መጽሐፍት ጋር ሙሉ በሙሉ ተኳሃኝ መሆኑ ነው።

ከአራት በላይ አዝራሮችን ለማስተናገድ ከፈለጉ ከሲዲ 4066B ሌላ ነገር ለመጠቀም ያስቡ ይሆናል። ሲዲ4066 ቢ በአንድ ውስጥ አራት መቀያየሪያዎች ተብሎ ሊገለፅ ይችላል ፣ እያንዳንዳቸው በአንደኛው Atmegas GPIO ፒን ይቆጣጠራሉ። ለእያንዳንዱ መቀየሪያ እንደ ስቴሪዮ ግብዓት ጥቅም ላይ የዋለውን ተቃውሞ ለመቆጣጠር የሚያገለግል የተገናኘ (resistor) አለ። ስለዚህ ይህ አራት የተለያዩ ትዕዛዞችን ለመላክ በቀላሉ ሊያገለግል ይችላል። እነሱ ከተጣመሩ ከዚያ ተጨማሪ የመቋቋም እሴቶችን ማግኘት ይቻላል። ከዚህ ቀደም የጠቀስኩት ስህተት የሚመጣው እዚህ ነው። እኔ አራት አዝራሮች አሉኝ ፣ ግን እኔ ስድስት የተለያዩ ትዕዛዞችን ለመስጠት ረጅምና አጭር ፕሬስ ሁለቱን ለመተግበር አቅጄ ነበር። ግን በመጨረሻ እኔ ስድስት የሥራ ጥምሮችን የሚሰጠኝ የተቃዋሚዎችን ጥምረት ማግኘት እንደማልችል ተረዳሁ። በምትኩ የአናሎግ መውጫ ምልክትን ወደ ስቴሪዮ (3.5 ሚሜ ጫፍ) ማገናኘት ይቻል ይሆናል። (ልብ ይበሉ Atmega እውነተኛ የአናሎግ መውጫ ካስማዎች የሉትም ስለዚህ አንዳንድ ተጨማሪ ሃርድዌር ያስፈልጋል።)

ለሙከራ ዓላማዎች እኔ ደግሞ ከእኔ ፕሮቶታይፕ ጋር ለመገናኘት ቀለል ያለ “መኪና እና ስቴሪዮ” አስመሳይ ሠራሁ። ማረም ቀላል ያደርገዋል እና በመኪናዎ ውስጥ መቀመጥ እና ፕሮግራም እስካልደሰቱ ድረስ ያንን እመክራለሁ።

ምሳሌው በምስሉ ላይ ባለው የታችኛው የዳቦ ሰሌዳ ተገል illustል። ለኃይል አቅርቦት ፣ ለፕሮግራም እና ለተከታታይ ምዝግብ ማስታወሻ የአትሜጋ ቺፕ ከተወገደበት ከአርዱዲኖ ኡኖ ጋር ተያይ isል።

የላይኛው የዳቦ ሰሌዳ ለሙከራው የመጀመሪያ ሙከራ የሚያገለግል የመኪና + ስቴሪዮ አስመሳይ ነው።

ፕሮቶታይፕ + አስመሳይው እንደዚህ እንዲሠራ የታሰበ ነው-

  • በማስመሰያ ሰሌዳው ላይ ካለው የመቀየሪያ ቁልፎች አንዱን ይጫኑ። (እነዚያ የእርስዎ መሪ መሪ አዝራሮች ናቸው።)
  • አስመሳይ ፕሮግራሙ አንድ ቁልፍን ሲፈልግ አዝራሩ እስከተገፋ ድረስ ተጓዳኝ የ CAN መልዕክቱን እያንዳንዱን 70 ሚሴ ይልካል። (ምክንያቱም ቀደም ብዬ የወሰድኳቸው ምዝግቦች በመኪናዬ ውስጥ እንዴት እንደሚሠራ አመልክተዋል።) በአውቶቡሱ ላይ ሌላ ትራፊክን ለማስመሰል ብዙ “ቆሻሻ” የ CAN መልዕክቶችን ይልካል።
  • የ CAN መልእክቶች በ CAN አውቶቡስ ላይ ይላካሉ።
  • የ CAN መልእክቶች በፕሮቶታይፕው ይቀበላሉ።
  • MCP2515 በመልዕክቱ መታወቂያ ላይ በመመርኮዝ ሁሉንም የማይዛመዱ መልዕክቶችን ይጥላል።
  • MCP2515 ማስተናገድ ያለበት መልእክት ሲደርሰው መልእክት የያዘ መሆኑን ያመለክታል።
  • አትሜጋ መልዕክቱን ያነብባል እና የትኛው ንቁ እንደሆነ ሊታሰብበት የሚገባውን ቁልፍ ይወስናል።
  • Atmega የመጨረሻው መልእክት ሲደርሰው ይከታተላል ፣ ከተወሰነ ጊዜ በኋላ አዝራሩ እንደ ተለቀቀ ይቆጠራል። (የ CAN መልእክቶች የሚያመለክቱት አንድ አዝራር መውደቁን ብቻ ነው ፣ የተገፋ ወይም የተለቀቀ አይደለም።)
  • አንድ አዝራር እንደ ገባሪ ሆኖ የሚቆጠር ከሆነ በሲዲ 4066B ውስጥ አንድ ወይም ከዚያ በላይ መቀያየሪያዎች ገቢር ይሆናሉ።
  • አስመሳዩ (አሁን እንደ ስቲሪዮዎ ሆኖ የሚሰራ) በጫፍ እና እጅጌ መካከል ተቃውሞ እንደተተገበረ ይገነዘባል። (ጫፉ ከ 3.3 ቪ እና ከተቃዋሚው ጋር ከአናሎግ ግብዓት ፒን ጋር ተገናኝቷል። ምንም ትእዛዝ በማይሠራበት ጊዜ ይህ ፒን 3.3 ቪን ያነባል ፣ አንድ ትዕዛዝ ሲሠራ እሴቱ ዝቅ ይላል እና ትዕዛዙን ይለያል።
  • አንድ ትዕዛዝ ገባሪ በሚሆንበት ጊዜ ተጓዳኙ መሪ እንዲሁ ይሠራል። (ለሁለት የእኔ አዝራሮች የተለየ ረጅም / አጭር ፕሬስ ለመጠቀም ስላሰብኩ ስድስት ሊዶች አሉ።)

ስለ ፕሮቶታይፕ ሃርድዌር ተጨማሪ ዝርዝሮች ፣ በኋላ ደረጃ ላይ የንስር ዘዴዎችን ይመልከቱ።

ስለ አስመሳይ ቦርድ ሃርድዌር ተጨማሪ ዝርዝሮች

  • 16 ሜኸ ክሪስታል
  • 22 ፒኤፍ capacitors
  • በ LED ባህሪዎች ላይ በመመርኮዝ የ LED ተከላካዮች መመረጥ አለባቸው
  • ከ A7 እና 3.3V ጋር የተገናኘ ተከላካይ ፣ ለምሳሌ ይምረጡ። 2kOhm (ወሳኝ አይደለም)።
  • ከ MCP2551 እና MCP2515 ጋር የተገናኙ ተከላካዮች መጎተት / መጎተት / መውረድ ናቸው። ለምሳሌ ይምረጡ 10 ኪ.

(ወይም ከፈለጉ የ “CAN CAN” ን አስመሳዩን ለ “CAN ክፍል” መጠቀም ይችላሉ።)

ሃርዴዌሩን ሲይዙ የአትሜጋ ፒኖች ወደ አርዱዲኖ ፒኖች እንዴት እንደተቀረጹ ማወቅዎ አስፈላጊ ነው።

(ማንኛውንም ሲዲዎች በቀጥታ ከሲዲ 4066 ቢ ጋር አያገናኙ ፣ እሱ ዝቅተኛ የአሁኑን ብቻ ማስተናገድ ይችላል። መጀመሪያ ውጤቱን ስሞክር እና ቺፕ ምንም ፋይዳ እንደሌለው ሞክሬያለሁ። ጥሩው ነገር ጥንድ ገዝቼ ስለነበር ብቻ ነው። በጣም ርካሽ ናቸው።)

ደረጃ 5 - ፊውዝ ፕሮግራሚንግ

ምናልባት ወደ MCP2515 የሰዓት ምልክትን ለማመንጨት ፕሮቶኮሉ የተለየ ክፍሎች እንደሌሉት ምናልባት በቀድሞው ደረጃ አስተውለው ይሆናል። እኛ ልንጠቀምበት የምንችለው የአትሜጋ ሰዓት ምልክት ሆኖ ጥቅም ላይ የዋለ 16 ሜኸ ሜዝ ክሪስታል ስለነበረ ነው። ግን እኛ በቀጥታ ከ MCP2515 ጋር ማገናኘት አንችልም እና በነባሪነት በአትሜጋ ላይ የሰዓት መውጫ ምልክት የለም።

(ከፈለጉ ይህንን ደረጃ መዝለል እና በምትኩ ተጨማሪውን የሰዓት ሃርድዌር ማከል ይችላሉ።)

ሆኖም በጂፒዮ ፒኖች በአንዱ ላይ የሰዓት መውጫ ምልክትን ለማንቃት “የፊውዝ ፕሮግራም” የሚባል ነገር መጠቀም እንችላለን።

በመጀመሪያ በእርስዎ Arduino IDE ጥቅም ላይ የዋለ "ቦርዶች.txt" የተባለ ፋይል ማግኘት ያስፈልግዎታል። ለ Arduino Uno ግቤቱን መገልበጥ ፣ አዲስ ስም መስጠት እና ለዝቅተኛ_ፋዮች ዋጋውን መለወጥ ያስፈልግዎታል።

አዲሱ ቦርድዬ ይህን ይመስላል -

##################################################### ##############በአርዱዲኖ ኡኖ ላይ#ለውጦች ፦#low_fuses በአሜጋ ፒቢ0/ፒን 14 = አርዱዲኖ D8 ላይ 16 ሜኸ ሰዓት#ለማንቃት ከ 0xff ወደ 0xbf ተቀይሯል።

clkuno.name = ሰዓት ቆዩ (አርዱinoኖ ኡኖ)

clkuno.upload.protocol = arduino clkuno.upload.maximum_size = 32256 clkuno.upload.speed = 115200 clkuno.bootloader.low_fuses = 0xbf clkuno.bootloader.high_fuses = 0xde clkuno.bootloader.extended_fuses = 0xfti clkuno.bootloader.file = optiboot_atmega328.hex clkuno.bootloader.unlock_bits = 0xff clkuno.bootloader.lock_bits = 0xcf clkuno.build.mcu = atmega328p clkuno.build.f_cpu = 16000000L clkuno.build.core = ardu

##############################################################

የመቆጣጠሪያ ቢቱን ወደ 0 በማቀናበር ሰዓቱ እንደነቃ ልብ ይበሉ።

በቦርዶች ውቅር ፋይል ውስጥ አዲሱን ሰሌዳ ሲፈጥሩ አዲስ የማስነሻ ጫerን ወደ Atmega ማቃጠል ይኖርብዎታል። ይህንን ለማድረግ የተለያዩ መንገዶች አሉ ፣ በ https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard ውስጥ የተገለጸውን ዘዴ ተጠቅሜበታለሁ።

ይህንን ካደረጉ በኋላ አንድ ፕሮግራም ወደ Atmega ሲሰቅሉ አዲሱን የቦርድ ዓይነትዎን መምረጥ እና አርዱዲኖ ኡኖ አለመሆኑን ያስታውሱ።

ደረጃ 6 - ሶፍትዌሩ

ሶፍትዌሩ
ሶፍትዌሩ

አንዳንድ ሶፍትዌሮችን በማከል ዲዳውን ሃርድዌር ብልጥ ለማድረግ ጊዜው አሁን ነው።

ለሙከራው አንዳንድ የውሸት ኮድ እነሆ-

lastReceivedTime = 0

lastReceivedCmd = none cmdTimeout = 100 ማዋቀሪያ () {የውጤት ፒኖች ኢቲ ማዋቀር CAN ማጣሪያ ማጣሪያ ሊለው ይችላል} loop () {watchdog ን ዳግም ያስጀምሩ (የ CAN መልእክት ከተቀበለ) {ለእያንዳንዱ አዝራር ትዕዛዝ {የ CAN መልእክት ከሆነ { የአዝራር ትዕዛዙ {lastReceivedTime = now lastReceivedCmd = cmd}}} አሁን ከሆነ> lastReceivedTime + cmdTimeout {lastReceivedCmd = none} ለእያንዳንዱ አዝራር ትዕዛዝ {lastReceivedCmd አዝራር ትዕዛዝ ከሆነ {set command pin output = on} ሌላ {set command pin output = off }}}

cmdTimeout የወጣውን የመጨረሻውን ንቁ አዝራር ከማገናዘባችን በፊት ምን ያህል ጊዜ መጠበቅ እንዳለብን ይወስናል። የአዝራር CAN መልእክት ትዕዛዞች በግምት በየ 70 ሚሴ ስለሚላኩ ከአንዳንድ ህዳግ ጋር ከዚያ የበለጠ መሆን አለበት። ግን ትልቅ ከሆነ የዘገየ ተሞክሮ ይኖራል። ስለዚህ 100 ሚሴ ጥሩ እጩ ይመስላል።

ግን ጠባቂ ምንድን ነው? በአደጋ ጊዜ እኛን ሊያድን የሚችል ጠቃሚ ትንሽ የሃርድዌር ባህሪ ነው። የድምጽ መጨመሪያ ትዕዛዙ በሚሠራበት ጊዜ ፕሮግራሙ እንዲበላሽ የሚያደርግ ሳንካ አለን እንበል። ከዚያ እኛ በከፍተኛ ድምጽ ላይ ስቴሪዮ እንጨርሳለን! ግን ጠባቂው ለተወሰነ ጊዜ ካልተስተካከለ ያልተጠበቀ ነገር እንደተከሰተ ይወስናል እና በቀላሉ ዳግም ማስጀመር ያወጣል።

ባዶነት ማዋቀር ()

{// ለ loop wdt_enable (WDTO_250MS) ከፍተኛውን 250 ሚሴ ይፍቀዱ ፤ // ሌላ init stuff} ባዶነት loop () {wdt_reset (); // ነገሮችን ያድርጉ}

ማጣራት ይችላል? ደህና ፣ እኛ እኛ ግድ በማይሰጡን መልዕክቶች ላይ ጊዜ እንዳያባክን ከማጣሪያው ጋር የማይዛመዱ ሁሉንም መልእክቶች እንዲጥሉ የ CAN መቆጣጠሪያውን ማዋቀር ይችላሉ።

ያልተፈረመ ረጅም ጭንብል = 0x1fffffff; // ጭምብል ውስጥ ሁሉንም 29 የራስጌ ቁርጥራጮች ያካትቱ

ያልተፈረመ ረጅም filterId = 0x0400066; // እኛ የምንጨነቀው ለዚህ የ CAN መልእክት መታወቂያ m_can.init_Mask (0 ፣ CAN_EXTID ፣ ጭንብል) ብቻ ነው። // ጭንብል 0 ለማጣራት 0-1 m_can.init_Mask (1 ፣ CAN_EXTID ፣ ጭንብል) ይተገበራል ፤ // ጭምብል 1 ለማጣራት 2-5 m_can.init_Filt (0 ፣ CAN_EXTID ፣ filterId); m_can.init_Filt (1 ፣ CAN_EXTID ፣ filterId); m_can.init_Filt (2 ፣ CAN_EXTID ፣ filterId); m_can.init_Filt (3 ፣ CAN_EXTID ፣ filterId); m_can.init_Filt (4 ፣ CAN_EXTID ፣ filterId); m_can.init_Filt (5 ፣ CAN_EXTID ፣ filterId);

ማጣሪያ + ጭምብልን እንዴት ማቀናበር እንደሚቻል ተጨማሪ ዝርዝሮችን ለማግኘት የ CAN ቤተ -መጽሐፍትን ኮድ እና የ CAN ተቆጣጣሪ ሰነዶችን ይመልከቱ።

አንድ መልእክት (ያልተጣራ) ሲደርሰው መቋረጥን ለማሳደግ የ CAN መቆጣጠሪያውን ማቀናበር ይችላሉ። (ከላይ ባለው ምሳሌ ውስጥ አልተካተተም ነገር ግን በፕሮግራሜ ውስጥ ለእሱ የተወሰነ ኮድ አለ።) በዚህ ሁኔታ በእውነቱ ምንም ዋጋ አይጨምርም እና ለፕሮግራም ካልተጠቀሙ ግራ ሊጋባ ይችላል።

ስለዚህ በማጠቃለያው የፕሮቶታይፕ ሶፍትዌር ነበር። ግን ለአስመስሎ ቦርድ እንዲሁ አንዳንድ ኮድ እንፈልጋለን-

lastSentTime = 0

minDelayTime = 70 ማዋቀር () {የውጤት ካስማዎች ፒን A0-A5 ን ያዋቅሩ ፒን D4-D7 ን እንደ የውስጠ-pullup ግብዓት ካስማዎች ያዋቅሩ። init CAN} loop () {"ቆሻሻ" መላክ ይችላል setButton = ለእያንዳንዱ አዝራር የለም {አዝራር ከተገፋ {set activeButton = button}} activeButton ከሆነ! = ምንም የለም <አሁን> lastSentTime + minDelayTime {የመላክ አዝራር ትዕዛዝ መልዕክት ሊልክ ይችላል } lastSentTime = now} inval = ን አንብብ A7 foreach (cmd) {{(ደቂቃ <inval <max) {በሌላ ላይ ቢመራ {ጠፍቷል}} 1 ሚሲ ይጠብቁ}

ይህ በግምት እያንዳንዱ ኤምኤም በግምት እያንዳንዱን ሚሴ እና አንድ አዝራር ተጓዳኝ ትዕዛዙን እያንዳንዱን 70 ሚሴ በሚገፋበት ጊዜ ያለማቋረጥ “ቆሻሻ” የ CAN መልዕክቶችን ይልካል።

የእያንዳንዱ አዝራር ባለቤት ለሆኑት ጥቃቅን እና ከፍተኛ ተለዋዋጮች ተስማሚ እሴቶችን ለማወቅ የተለያዩ ቁልፎችን በመጫን ግቡን በፒን A7 ላይ ማስገባት ሊያስፈልግዎት ይችላል። (ወይም ማስላት ይችላሉ ፣ ግን ግቤቱን በትክክል ማንበብ የበለጠ ትክክለኛ እሴቶችን ይሰጥዎታል።)

የፒን ሁነቶችን ሲያዘጋጁ ትንሽ ጥንቃቄ ማድረግ አለብዎት። በምትኩ የውስጥ pullup ን እንደ የውጤት ፒኖች ለመጠቀም የታቀዱትን ካስማዎች በድንገት ካስቀመጡ ከዚያ ውጤቱን ከፍ ሲያደርጉ አርዱዲኖዎን የሚጎዳ አቋራጭ መንገድ ይፈጥራሉ።

ፕሮግራሞቼን ለመፈተሽ ከፈለጉ እዚህ ሊወርዱ ይችላሉ-

  • የ CAN መልእክቶች የምዝግብ ማስታወሻ ፕሮግራም
  • ወደ አስመሳዩ ቦርድ ፕሮግራም
  • ለሙከራ / የመጨረሻ ቦርድ ፕሮግራም

እነዚያ ፕሮግራሞች እዚህ ከሐሰተኛ ኮድ ጋር እንደማይመሳሰሉ ማወቅ አለብዎት ፣ እነሱ በእውነቱ የማይፈለጉ ብዙ “ተጨማሪ” ነገሮችን ይይዛሉ እና የነገር ተኮር ፕሮግራምን የማያውቁ ከሆነ ምናልባት ለማንበብ ትንሽ ከባድ ሊሆን ይችላል።.

ደረጃ 7: የመጨረሻው ሃርድዌር

የመጨረሻው ሃርድዌር
የመጨረሻው ሃርድዌር
የመጨረሻው ሃርድዌር
የመጨረሻው ሃርድዌር
የመጨረሻው ሃርድዌር
የመጨረሻው ሃርድዌር

በፕሮግራምዎ ሲደሰቱ (ከአስመሳዩ ቦርድ ጋር የመጨረሻ ሙከራ ከተደረገ በኋላ በመኪናው ውስጥ ያለውን ምሳሌ ለመሞከር ያስታውሱ) እውነተኛውን ሃርድዌር ለመገንባት ጊዜው አሁን ነው።

እዚህ ሶስት አማራጮች አሉዎት

  • ፈጣን እና ቆሻሻ - እቃውን በፒሲቢ የፕሮቶታይፕ ቦርድ ላይ አንድ ላይ ያጣምሩ።
  • ሃርድኮር DIY - የራስዎን ፒሲቢ ይቅዱ።
  • ሰነፉ መንገድ - ክፍሎቹን ለመሸጥ የባለሙያ ፒሲቢን ያዝዙ።

የማይቸኩሉ ከሆነ የመጨረሻውን አማራጭ እመክራለሁ። እንደዚህ ያለ ትንሽ ፒሲቢ ብቻ ከፈለጉ ከቻይና ለማዘዝ በጣም ርካሽ ነው። (እና ከዚያ ምናልባት አንዳንድ የሽያጭ ስህተቶችን መግዛት ይችሉ ይሆናል።)

ፒሲቢዎችን ለማዘዝ ንድፍዎን በገርበር ቅርጸት መላክ ያስፈልግዎታል። ለዚህ የተለያዩ ሶፍትዌሮች አሉ። እኔ ልመክረው የምችለውን ንስርን ተጠቀምኩ። እሱን ለመማር ጥቂት ሰዓታት ሊጠብቁ ይችላሉ ፣ ግን ከዚያ በጥሩ ሁኔታ ይሠራል። እንደዚህ ላሉት ትናንሽ ሰሌዳዎች በነፃ ሊጠቀሙበት ይችላሉ።

ንድፉን ሲሰሩ ይጠንቀቁ። የሆነ ስህተት እንደሠራዎት ለማወቅ ለመውለድ ለአራት ሳምንታት መጠበቅ አይፈልጉም።

(ጥሩ የሽያጭ ክህሎቶች ካሉዎት በላዩ ላይ ለተገጠሙ አካላት ዲዛይን ማድረግ እና በእውነቱ ትንሽ አስማሚ ማግኘት ይችላሉ። አላደረግኩም።)

ከዚያ ለምሳሌ በ ላይ ያዝዙ https://www.seeedstudio.com/fusion_pcb.html። የጀርበር ፋይሎችን ከዲዛይንዎ እንዴት እንደሚያመነጩ መመሪያዎቹን ይከተሉ። ጥሩ መሆኑን ለማረጋገጥ የውጤቱን ቅድመ -እይታ ማግኘትም ይችላሉ።

(በመጨረሻ በስዕላዊ ሥዕሉ ውስጥ ከተዘረዘሩት በላይ ለ R4-R7 ሌሎች ተከላካዮችን መምረጥ ነበረብኝ። በምትኩ 2 ኪ ፣ 4.7 ኪ ፣ 6.8 ኪ እና 14.7 ኪ.

እና ያስታውሱ - የአትሜጋ ፒን ቁጥሩን ከአርዱዲኖ ፒን ቁጥር ጋር አያምታቱ!

የአትሜጋ ቺፕን በቀጥታ እንዳይሸጡ ግን ሶኬት እንዲጠቀሙ እመክራለሁ። ከዚያ እንደገና ማረም ካስፈለገዎት በቀላሉ ሊያስወግዱት ይችላሉ።

ደረጃ 8 - የመኪና መጫኛ

የመኪና መጫኛ
የመኪና መጫኛ
የመኪና መጫኛ
የመኪና መጫኛ

አሁን ወደ በጣም አስደሳችው ክፍል - በመኪናዎ ውስጥ ይጫኑት እና እሱን መጠቀም ይጀምሩ! (ለእሱ ጉዳይ ከሠሩ / ከገዙ በኋላ)።

አስቀድመው በመኪናዎ ውስጥ ያለውን አምሳያ ሙሉ በሙሉ ከሞከሩ ሁሉም ነገር በትክክል መስራት አለበት።

(ቀደም ሲል እንደጠቀስኩት አንዳንድ ተቃዋሚዎችን መተካት እና በፕሮግራሜ ውስጥ አንዳንድ ለውጦችን ማድረግ ነበረብኝ።)

እንዲሁም ከስቴሪዮው በስተጀርባ ወይም በሌላ ቦታ ላይ እሱን መጫን ካለብዎት ያስቡበት። ምንም ነገር ሳንወስድ ከጓንት ሳጥኑ ውስጥ የምደርስበት ጥሩ ቦታ ከጓንት ሳጥኔ በላይ አገኘሁ። በኋላ ለማሻሻል ከወሰንኩ ያ ጠቃሚ ሊሆን ይችላል።

በመጨረሻ የእኔ አዝራሮች እንደገና እየሠሩ ናቸው! ያለ እነሱ ለሁለት ወራት እንዴት እኖራለሁ?

ደረጃ 9 የወደፊት ማሻሻያዎች

እንደተጠቀሰው ፣ የዚህን ስሪት 2.0 ካደረግሁ ለበለጠ ተጣጣፊነት 4066B ን በሌላ ነገር (ምናልባትም ዲጂታል ፖታቲሞሜትር) እተካለሁ።

እርስዎ ማድረግ የሚችሏቸው ሌሎች ብዙ ነገሮችም አሉ። ለምሳሌ የብሉቱዝ ሞዱል ያክሉ እና ለስልክዎ የርቀት መቆጣጠሪያ መተግበሪያ ያድርጉ። ወይም የጂፒኤስ ሞዱል ፣ ከዚያ ወደ ቤት በሚጠጉበት ጊዜ ጎረቤቶችዎ ሁሉ በሚያስደንቅ ሙዚቃዎ እንዲደሰቱ በራስ -ሰር የድምፅ መጠን ከፍ ማድረግ እና “መስኮቶችን ወደታች” የ CAN መልእክት መላክ ይችላሉ።

የሚመከር: