اطلاعیه

Collapse
No announcement yet.

بازوی رباتیک با استفاده از 4 سرو موتور

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    بازوی رباتیک با استفاده از 4 سرو موتور

    سلام

    من یک پروژه در حال ساخت دارم. این یک بازوی رباتیک است با 4 درجه آزادی. از AVR و کامپایلر بسکام استفاده نموده ام. 4 عدد هم سرو موتور هم برای چرخش دارم. دستگاه تکمیل شده اما خوب کار نمی کنه. با فشردن هر کلید چند موتور همزمان فعال میشه و بی نظم و دیوانه وار می چرخه. قبل از مونتاژ بر روی برد برد، یک موتور به خوبی و با زوایای دلخواهم به چرخش و حرکت در میومد اما حالا با 4 موتور نمی تونم اینکار رو انجام بدم. بیشتر وقت ها پس از فشردن چند کلید، دستگاه خوذ به خود خاموش میشه. منبع تغذیه ام، پاور کامپیوتر است. لطفاً کمک کنید و بفرمائید چه باید کنم. خوشبختانه استادم تا دوشنبه بهم فرصت داد تکمیلش کنم. با سپاس از توجهتون


    $regfile = "m32def.dat"
    $crystal = 8000000

    Config Portb = Output
    Config Portc = Input
    Config Porta = Input
    Config Timer0 = Timer , Prescale = 1024 '8000000/(1024*156)=50Hz
    Config Timer1 = Timer , Prescale = 8
    Config Debounce = 20

    Dim Motor_time1 As Word
    Dim Motor_time2 As Word
    Dim Motor_time3 As Word
    Dim Motor_time4 As Word

    Motor_time1 = 1500
    Motor_time2 = 1600
    Motor_time3 = 1700
    Motor_time4 = 1800

    Motor1 Alias Portb.2 : Motor2 Alias Portb.3 : Motor3 Alias Portb.4 : Motor4 Alias Portb.5
    Stop Timer1

    Enable Ovf0
    Enable Interrupts

    Enable Timer0
    On Ovf0 Make_pwm

    Timer0 = 178

    First:
    Do
    If Pinc.7 = 1 Then
    Set Portb.1
    Set Portb.7
    Else
    Reset Portb.7
    Reset Portb.1
    End If
    Debounce Pina.0 , 1 , Incc1
    Debounce Pina.1 , 1 , Decc1
    Debounce Pina.2 , 1 , Incc2
    Debounce Pina.3 , 1 , Decc2
    Debounce Pina.4 , 1 , Incc3
    Debounce Pina.5 , 1 , Decc3
    Debounce Pina.6 , 1 , Incc4
    Debounce Pina.7 , 1 , Decc4

    Loop



    Incc1:
    If Pinc.6 = 0 Then
    Set Portb.0
    Waitms 100
    If Motor_time1 < 6000 Then
    Motor_time1 = Motor_time1 + 20
    End If
    Reset Portb.0
    End If
    Goto First

    Decc1:
    If Pinc.5 = 0 Then
    Set Portb.0
    Waitms 100
    If Motor_time1 > 200 Then
    Motor_time1 = Motor_time1 - 20
    End If
    Reset Portb.0
    End If
    Goto First

    Incc2:
    Set Portb.0
    Waitms 100
    If Motor_time2 < 6000 Then
    Motor_time2 = Motor_time2 + 20
    End If
    Reset Portb.0
    Goto First

    Decc2:
    Set Portb.0
    Waitms 100
    If Motor_time2 > 200 Then
    Motor_time2 = Motor_time2 - 20
    End If
    Reset Portb.0
    Goto First

    Incc3:
    Set Portb.0
    Waitms 100
    If Motor_time3 < 6000 Then
    Motor_time3 = Motor_time3 + 20
    End If
    Reset Portb.0
    Goto First

    Decc3:
    Set Portb.0
    Waitms 100
    If Motor_time3 > 200 Then
    Motor_time3 = Motor_time3 - 20
    End If
    Reset Portb.0
    Goto First

    Incc4:
    Set Portb.0
    Waitms 100
    If Motor_time4 < 6000 Then
    Motor_time4 = Motor_time4 + 20
    End If
    Reset Portb.0
    Goto First

    Decc4:
    Set Portb.0
    Waitms 100
    If Motor_time4 > 200 Then
    Motor_time4 = Motor_time4 - 20
    End If
    Reset Portb.0
    Goto First

    End

    Make_pwm:

    Timer0 = 178
    Timer1 = 0
    Start Timer1

    Set Motor1
    Do
    Loop Until Timer1 >= Motor_time1
    Reset Motor1
    Timer1 = 0

    Set Motor2
    Do
    Loop Until Timer1 >= Motor_time2
    Reset Motor2
    Timer1 = 0

    Set Motor3
    Do
    Loop Until Timer1 >= Motor_time3
    Reset Motor3
    Timer1 = 0

    Set Motor4
    Do
    Loop Until Timer1 >= Motor_time4
    Reset Motor4

    Return
    تنها خود را باور داشته باش که تو مرکز محور تمام عالمی ...

    #2
    پاسخ : بازوی رباتیک با استفاده از 4 سرو موتور

    نقشه مدارتون را بزارید ، احتمالا نویز میگیره با این توضیحات که میگین بعضی وقتها که کلید ها را میزنید ( موتورها در این لحظه شروع به کار میکنن)
    یک خازن الکترولیتی حدودا 100میکروفاراد و یک خازن عدسی معمولی (104 ) در نزدیکترین مکان به پایه های تغذیه میکرو( 10 و 11 )به صورت موازی اضافه کنید یه تست بزنید ببینید مشکل حل میشه ؟
    آن دم که مرا مي زده بر خاک سپاريد زير کفنم خمره اي از باده گذاريد
    تا در سفر دوزخ از اين باده بنوشم
    آنلحظه که با دوزخيان کنم ملاقات يک خمره شراب ارغوان برم به سوغات
    هرقدر که در خاک ننوشيدم از اين باده صافي ، بنشينم و با دوزخيان کنم تلافي

    دیدگاه


      #3
      پاسخ : بازوی رباتیک با استفاده از 4 سرو موتور

      خازن ها در مدار موجودن و از قبل تعبیه شده اند. نقشه ی شماتیک رو طراحی نکردم. این نقشه ی PCB است

      تنها خود را باور داشته باش که تو مرکز محور تمام عالمی ...

      دیدگاه


        #4
        پاسخ : بازوی رباتیک با استفاده از 4 سرو موتور

        نقشه کو ؟
        درایو کردن موتورها مستقیم با ولتاژ خروجی میکرو هست یا از ترانزیستور یا بافر تو راه استفاده کردید ؟ ( اگه مستقیم از میکرو جریان بکشید باز هم اتفاق ریست شدن هست )
        دیود محافظ برای جلوگیری از برگشت جریان موتورها گذاشتین ؟
        واچ داگ میکرو فعال نباشه.
        آن دم که مرا مي زده بر خاک سپاريد زير کفنم خمره اي از باده گذاريد
        تا در سفر دوزخ از اين باده بنوشم
        آنلحظه که با دوزخيان کنم ملاقات يک خمره شراب ارغوان برم به سوغات
        هرقدر که در خاک ننوشيدم از اين باده صافي ، بنشينم و با دوزخيان کنم تلافي

        دیدگاه


          #5
          پاسخ : بازوی رباتیک با استفاده از 4 سرو موتور

          نقشه PCB رو در کامنت قبلی قرار دادم. مگه رویت نمیشه ؟ این لینکش :

          http://img2.pict.com/63/39/13/3947799/0/12.jpg

          درایو موتورها بصورت مستقیم است آخه از تایمرها برای تولید PWM استفاده کردم. اگه از ترانزیستور برای جریان دهی کافی مابین میکرو و مدار استفاده کنم، آیا موج PWM رو از بین نمی بره؟
          دیود برای سرو موتور ؟ نه نذاشتم آخه تو هیچ مداری این کار توصیه نشده. توصیه ی شما چیه ؟
          چجوری باید "واچ داگ" میکرو رو فعال یا غیر فعال کنم ؟ لطفاً راهنمایی کنید چون تجربه ی کافی در این زمینه ندارم
          تنها خود را باور داشته باش که تو مرکز محور تمام عالمی ...

          دیدگاه


            #6
            پاسخ : بازوی رباتیک با استفاده از 4 سرو موتور

            لینک فیلتره
            با فیلترشکن هم میگه :404 - Not Found

            چاره دیگه ای که نیست ،ترانزیستور بزارید ایشالا مشکلی نیست

            دیود را در خروجی پورت میکرو بزارید که مطمئن باشید از سمت موتور جریانی برگشت نکنه توی میکرو ( موتورهای الکتریکی کلا از این خواص زیاد دارند البته ممکه سرو موتور شما مشکلی نداشته باشه ، جهت اطمینان.
            از دیودهای شاتکی استفاده کنید ترجیحا
            مقالات و مطالب مربوط به درایور های استپ موتورها را بخونید توی اونها توضیحات بیشتری داده شده.
            آن دم که مرا مي زده بر خاک سپاريد زير کفنم خمره اي از باده گذاريد
            تا در سفر دوزخ از اين باده بنوشم
            آنلحظه که با دوزخيان کنم ملاقات يک خمره شراب ارغوان برم به سوغات
            هرقدر که در خاک ننوشيدم از اين باده صافي ، بنشينم و با دوزخيان کنم تلافي

            دیدگاه


              #7
              پاسخ : بازوی رباتیک با استفاده از 4 سرو موتور

              سپاسگزارم دوست من آیا با این عمل مشکلی که با فشردن هر کلید چند موتور همزمان و بصورت رندوم شروع به حرکت می کند نیز حل می شود ؟ یا اون قضیه ای جداگانه دارد ؟
              عکس رو در سایتی دیگر شِیر کردم و امیدوارم اینبار رویت بشه :




              تنها خود را باور داشته باش که تو مرکز محور تمام عالمی ...

              دیدگاه


                #8
                پاسخ : بازوی رباتیک با استفاده از 4 سرو موتور

                نوشته اصلی توسط ashenaiam
                سپاسگزارم دوست من آیا با این عمل مشکلی که با فشردن هر کلید چند موتور همزمان و بصورت رندوم شروع به حرکت می کند نیز حل می شود ؟ یا اون قضیه ای جداگانه دارد ؟
                عکس رو در سایتی دیگر شِیر کردم و امیدوارم اینبار رویت بشه :

                اینم فیلتره
                بابا خودت یکبار اون فیلترشکنت را دیزیبل کن بعد پلود کن ، خوب نیست اینقدر فیلتر بازی آ :mrgreen:
                از پلود سنتر خود سایت استفاده کنید : http://www.ecapic.ir
                من هنوز نقشه را ندیدم ، نظری ندارم ولی اگه مشکل جریان کشیدن باشه از میکرو با این روش حل میشه
                واچ داگ هم به صورت پیشفرض روی اتمگا32 غیرفعال هست که انگار شما هم کاریش نداشتین پس حذف میشه
                میمونه بحث نرم افزار نوشته شده
                این نرم افزار اینطور که من میبینم هیچ وقت 2تا کلید با هم نباید کار بده ، آخر هر روتین چک کردن کلید یک Goto گذاشتی به اول برنامه ، پس اگه 2تا کلید با هم فشار داده بشن فقط اولین کلیدی که توی سورس برنامه اسمش اومده اجرا میشه
                به جای goto از دستور return استفاده کنید که بعد از خاتمه برنامه برگرده به آخرین جائی که بوده و ادامه بتونه بده

                آن دم که مرا مي زده بر خاک سپاريد زير کفنم خمره اي از باده گذاريد
                تا در سفر دوزخ از اين باده بنوشم
                آنلحظه که با دوزخيان کنم ملاقات يک خمره شراب ارغوان برم به سوغات
                هرقدر که در خاک ننوشيدم از اين باده صافي ، بنشينم و با دوزخيان کنم تلافي

                دیدگاه


                  #9
                  پاسخ : بازوی رباتیک با استفاده از 4 سرو موتور

                  خیلی لطف کردی دوست عزیز؛ نقشه رو در آدرسی که فرمودید پلود کردم. طراحی خودمه و لطفاٌ ایراداتم رو بهم گوشزد کنید تا بهینه اش کنم. با سپاس فراوان



                  http://www.ecapic.ir/image2/ECA-101008131658.jpg
                  تنها خود را باور داشته باش که تو مرکز محور تمام عالمی ...

                  دیدگاه

                  لطفا صبر کنید...
                  X