اطلاعیه

Collapse
No announcement yet.

کمک در مورد سروو موتور

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

    پاسخ : کمک در مورد سروو موتور

    نوشته اصلی توسط eMicro
    سلام جناب pama
    برای چک کردن قطع شدن تغذیه میتونی از وقفه خارجی استفاده کنی حساس به لبه پایین رونده
    اگر هم که از وقفه استفاده نمیکنی با دستور IF میتونی این کار رو انجام بدی که در صورت درست بودن شرط اجرای برنامه به سابروتین مورد نظر پرش کنه

    بله درسته در آخر برنامه از زیربرنامه استفاده کنید
    بله جناب eMicro کاملا درست میفرمایند
    بهترین روش استفاده از وقفه هست
    ولی اگر دیدید امکانش نیست از If هم میتونید استفاده کنید
    در بسکام میشه
    IF pina.0=0 then gosub lable
    تو کامپایلر شما رو نمیدونم

    جناب eMicro لطفا تاپیک رو ترک نفرمایید و همچنان پاسخگوی جناب pama باشید تا انشاا... مشکلشون کاملا رفع بشه
    موفق باشید
    پروردگارا: به من زیستنی عطا کن که در لحظه مرگ بر بی ثمری لحظه ای که برای زیستن گذشته است حسرت نخورم، و مردنی عطا کن که بر بیهودگیش سوگوار نباشم. بگذار تا آن را خود انتخاب کنم، اما آنچنان که تو دوست میداری

    دیدگاه


      پاسخ : کمک در مورد سروو موتور


      نوشته اصلی توسط eMicro
      سلام جناب pama
      این داستان سروو همچنان ادامه داره.......................
      ببخشید که وسط بحث مهندسین پریدم
      سلام از بنده است جناب eMicro
      بله متاسفانه این ماجرا همچنان ادامه دارد.....
      اختیار دارید آقا، بنده بسیار بسیار خوشحالم که حضور شما رو هم در این بحث شاهد هستم.

      نوشته اصلی توسط eMicro
      برای چک کردن قطع شدن تغذیه میتونی از وقفه خارجی استفاده کنی حساس به لبه پایین رونده
      اگر هم که از وقفه استفاده نمیکنی با دستور IF میتونی این کار رو انجام بدی که در صورت درست بودن شرط اجرای برنامه به سابروتین مورد نظر پرش کنه
      بله درسته در آخر برنامه از زیربرنامه استفاده کنید
      نوشته اصلی توسط امیر حسنی کاخکی
      بله جناب eMicro کاملا درست میفرمایند
      بهترین روش استفاده از وقفه هست
      ولی اگر دیدید امکانش نیست از If هم میتونید استفاده کنید
      در بسکام میشه
      IF pina.0=0 then gosub lable
      تو کامپایلر شما رو نمیدونم
      متشکرم از راهنمائیهاتون آقایون ، قبلا یه کم با وقفه ی خارجی کار کردم، برای ساخت فرکانس متر.

      تمام سواد نم دارم رو به کار میبندم تا بتونم از وقفه خارجی استفاده کنم، اگه نشد هم به قول شما از همون if استفاده میکنم.

      نوشته اصلی توسط امیر حسنی کاخکی
      جناب eMicro لطفا تاپیک رو ترک نفرمایید و همچنان پاسخگوی جناب pama باشید تا انشاا... مشکلشون کاملا رفع بشه
      بسیار ممنونم جناب کاخکی، بله مهندس بنده هم ازتون خواهش میکنم اگر براتون امکان داره در تایپیک بمونید تا به لطف شما و جناب کاخکی و سایر دوستان این ماجرا به یه سرانجامی برسه.

      بابت این غیبتم هم عذر میخوام، متاسفانه مجددا اینترنت از دسترسم خارج شده بود. :redface:


      زندگی برگ بودن در مسیر باد نیست
      امتحان ریشه هاست
      ریشه هم هرگز اسیر باد نیست
      زندگی چون پیچک است
      انتهایش میرسد پیش خدا!

      دیدگاه


        پاسخ : کمک در مورد سروو موتور

        تا جایی که سوادم یاری کنه در خدمت دوستان هستم
        برای تشخیص قطع ولناژ بهترین کار استفاده از وقفه است ولی به دلیل اینکه تمام منابع وقفه در سری 16F از یک بخش مشترک استفاده می کنند یه کم کار سخت میشه
        مشکل وقفه ها در PIC در سری 18F برطرف شده پیشنهاد میکنم برای پروژه های بعدی از سری 18F یا میکروکنترلرهای قوی تر استفاده کتید
        با روش هایی میشه مشکل وقفه سری 16F رو برطرف کرد
        شما زندگی می کنید من بازی میکنم، زندگی شما را; زندگی بازی خدا و یک عروسکِ گِلی ست

        دیدگاه


          پاسخ : کمک در مورد سروو موتور

          نوشته اصلی توسط eMicro
          تا جایی که سوادم یاری کنه در خدمت دوستان هستم
          برای تشخیص قطع ولناژ بهترین کار استفاده از وقفه است ولی به دلیل اینکه تمام منابع وقفه در سری 16F از یک بخش مشترک استفاده می کنند یه کم کار سخت میشه
          مشکل وقفه ها در PIC در سری 18F برطرف شده پیشنهاد میکنم برای پروژه های بعدی از سری 18F یا میکروکنترلرهای قوی تر استفاده کتید
          با روش هایی میشه مشکل وقفه سری 16F رو برطرف کرد
          روزتون بخیر جناب eMicro
          بسیار متشکرم ازتون جناب مهندس.
          منظورتون این هست که استفاده از وقفه خارجی با وجود این میکرو میتونه برامون دردسر ساز باشه؟
          اشکالی پیش میاد که از همون if استفاده کنم؟
          یعنی خیلی غیر حرفه ای میشه؟

          راستی سروو رو هم یکیش رو باز کردم، به قول فرمایش شما جناب کاخکی توش یه دونه موتور داشت که فک میکنم موتور DC بود، و یه برد کوچیک 2 رو.
          که تقریبا از هیچیش سر در نیاوردم، گمونم باید برم یکی از این سایتهایی که فضای پلود سنتر در اختیار میذارند عضو بشم و عکس این مدار رو براتون بگذارم....
          ولی جزئیاتش رو براتون میگم، امیدوارم بهم نخندید.....
          یه سمتش یه سری خازن و یه کریستال و یه آیسی به اسم 7544_1 و چند تا چیز که نفهمیدم چی بود!!
          اون یکی سمتش یه آیسی 14 پایه بود که اصلا هیچی روش نوشته نشده بود و 2 تا آیسی 8 پایه هم به صورت متقارن بالاش قرار داشت که روش نوشته شده بود:
          ACAUAF به شماره ی 4536c ....

          حالا نمیدونم کدوماش مقایسه گر بود و کدوماش میکرو!!!
          ولی حتما سعی میکنم عکس مدارشو بذارم.

          برنامه رو هم دارم تلاش میکنم که با وقفه خارجی بنویسم....

          باز هم از لطف دوستان بزرگوار بسیار سپاسگذارم.





          زندگی برگ بودن در مسیر باد نیست
          امتحان ریشه هاست
          ریشه هم هرگز اسیر باد نیست
          زندگی چون پیچک است
          انتهایش میرسد پیش خدا!

          دیدگاه


            پاسخ : کمک در مورد سروو موتور

            سلام
            http://www.picofile.com
            از این سیت استفاده کنید نیاز به عضویت هم نداره
            پروردگارا: به من زیستنی عطا کن که در لحظه مرگ بر بی ثمری لحظه ای که برای زیستن گذشته است حسرت نخورم، و مردنی عطا کن که بر بیهودگیش سوگوار نباشم. بگذار تا آن را خود انتخاب کنم، اما آنچنان که تو دوست میداری

            دیدگاه


              پاسخ : کمک در مورد سروو موتور

              دردسرساز نه ولی یه کم پیچیده تر میشه
              تو AVR برای هر وقفه میشه یه ISR (زیربرنامه وقفه) تعریف کرد ولی با PIC یه ISR بیشتر نمیشه تعریف کرد و هر وقفه ای که رخ بده اجرای برنامه فقط به یک زیربرنامه وقفه منتقل خواهد شد و تو سابروتین وقفه باید چک کردن بیت های رجیستر PIR ببینیم کدوم وقفه رخ داده که این مشکل تو سری 18F حل شده
              با IF هم میشه این کار رو کرد ولی cpu باید دایم شرط رو چک کنه که سرعت اجرای برنامه رو کمتر میکنه

              شما زندگی می کنید من بازی میکنم، زندگی شما را; زندگی بازی خدا و یک عروسکِ گِلی ست

              دیدگاه


                پاسخ : کمک در مورد سروو موتور

                با سلام مجدد خدمت شما.
                قبل از هر چیز باید عرض کنم متاسفانه این پروژه نه تنها سر این سرووها بلکه میشه گفت تو اکثر مسائلش به مشکلاتی خورده که واقعا فکرش رو نمیکردیم، بدی ماجرا هم به این هست که بنده تنها عضو برقی گروه و متاسفانه از نوع کم سوادش ! هم هستم و دوستان مکانیکی تاب ریزه کاریهای الکترونیک رو ندارند، همین میشه که تا حدی بنده در گیر کار میشم که شرمنده ی پاسخ بزرگواران شده و با این همه تاخیر میام....
                واقعا معذرت میخوام.....

                نوشته اصلی توسط امیر حسنی کاخکی
                سلام
                http://www.picofile.com
                از این سیت استفاده کنید نیاز به عضویت هم نداره
                بسیار متشکرم ازتون جناب کاخکی بابت این سایت.
                پ کردم عکسها رو، منتها خیلی بزرگ بود، اجازه بدید ادیت کنم تو پست بعدی میذارم.

                نوشته اصلی توسط eMicro
                دردسرساز نه ولی یه کم پیچیده تر میشه
                تو AVR برای هر وقفه میشه یه ISR (زیربرنامه وقفه) تعریف کرد ولی با PIC یه ISR بیشتر نمیشه تعریف کرد و هر وقفه ای که رخ بده اجرای برنامه فقط به یک زیربرنامه وقفه منتقل خواهد شد و تو سابروتین وقفه باید چک کردن بیت های رجیستر PIR ببینیم کدوم وقفه رخ داده که این مشکل تو سری 18F حل شده
                با IF هم میشه این کار رو کرد ولی cpu باید دایم شرط رو چک کنه که سرعت اجرای برنامه رو کمتر میکنه
                از شما هم یک دنیا ممنونم جناب eMicro
                با فرمایشات شما تا حدود خوبی آشنام، تلاش میکنم که با همون وقفه خارجی بنویسم.

                زود خبر میدم....

                باز هم از حضور دوستان نهایت تشکر رو دارم.

                اضافه شده در تاریخ :
                این عکس پشت و رو از مدار داخل سروو هست، کیفیت بد عکسا رو ببخشید.



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

                نوشته اصلی توسط pama
                یک نکته ای هم در اینجا وجود داره، اونم این هست که دستگاه ما قرار بر این هست که یک عملی که به صورت دستی صورت میپذیره رو به صورت اتومات انجام بده، منتها نه اتومات دائم، بلکه یک دکمه ی درایو یا راه انداز داشته باشه، که هر گاه ما این دکمه رو زدیم میکروی سیستم با خوندن شرطها و تشخیص شرطها و در نتیجه پرش به لوپهای مربوط به هر شرط ،سرووهای ما رو حرکت بده و در نهایت سیستم رو اتومات کنه، و هر گاه هم نخواستیم اون عمل اتومات باشه،( با وجود دستگاه)، و خواستیم دستی کار رو انجام بدیم، دستگاه رو روشن نکنیم و کارمون رو دستی انجام بدیم.

                حالا نکته ی داستان در این هست که فرض کنیم ما انجام اون عمل خاص رو اتومات و با دستگاه مزبور شروع کردیم و در حالت احقاق شرط سوم و به تبع اون پرش به lable سوم و در نیمه ی کار میخوایم از حالت اتومات ، کار رو خارج کرده و دستی به ادامه ی انجام کار بپردازیم،

                حالا در این شرایط وقتی دستگاه خاموش میشه، سرووهای اون در یک زاویه ای قرار میگیرند،که این زاویه ها مربوط به زوایای تعریف شده برای سروو در lable 3 هست...
                ما به حالت دستی میریم، وقتی در حالت دستی هستیم، سرووها مسلما زاویه هاشون تغییر نمیکنه، اما شرطهایی که داریم و با توجه به اون شرطها به lable های مختلف میرفتیم، این شرطها با انجام اون عمل به صورت دستی تغییر میکنه

                حالا فرض کنید باز میخوایم از حالت دستی به حالت اتومات بریم، دفعه ی قبل که دستگاه رو خاموش کرده بودیم، شرط ما در حالت شرط 3 بود و به تبع اون سرووها در حالت زوایای مربوط به سرووها در lable 3 بود،

                اما الان که دوباره دستگاه روشن شده، سرووها ثابت هستند، به عبارتی زوایای مربوط به lable3 رو دارند ، اما شرط ما تغییر کرده، فرضا الان در حالت شرط 6 قرار گرفتیم، پس طبیعتا با احقاق شرط 6 به lable 6 پرش میکنیم و سرووها میخوان در حالتهای تعریف شده در اون حالت قرار بگیرند، در صورتی که این سرووهای ما به محض دریافت تغذیه یک حرکتی رو میکنند و علاوه بر اون آخرین مقدار سرووها رو هم نمیتونیم به سرووها اعمال کنیم چون مربوط به حالت 3 هست و الان در حالت 6 قرار داریم.
                و ایده آل برای ما این هست که وقتی از حالت دستی به حالت اتومات اومدیم، میکروی ما تشخیص بده که کدوم یک از 15 شرط ما محقق شده و بعد از اون به هر کدوم از 15 تا lableهای مربوط به خودش پرش کنه و سرووها رو در زاویه ها قرار بده.
                یعنی با وجود این تفاسیر باز هم جای نگرانی برای حل این 2 مشکل وجود نداره؟

                بعد از اون آیا این نگرانی به وجود نمیاد که ممکنه بعدها و بعد از حل ماجرا عملکرد دستگاه به هم بریزه؟ و کاش سروو عوض میشد...؟
                (با وجود اینکه ممکنه در هر بار روشن کردنش، برای مدت بیشتر از 10 ساعت، مورد استفاده قرار بگیره)
                و یا اینکه نه، ما با خیال راحت میتونیم بریم همین سرووها رو به تعداد بخریم؟

                بارها خواستم این سوال رو که دوستان لطف کرده و قبل از این خیلی عالی پاسخ داده بودند ، دوباره بپرسم، اما.... :redface:
                دیگه نگرانی بیش از حد بهم اجازه نداد.
                واقعا معذرت میخوام، که دوباره دارم این سوالها رو تکرار میکنم.
                زندگی برگ بودن در مسیر باد نیست
                امتحان ریشه هاست
                ریشه هم هرگز اسیر باد نیست
                زندگی چون پیچک است
                انتهایش میرسد پیش خدا!

                دیدگاه


                  پاسخ : کمک در مورد سروو موتور

                  خوب همینکه داخل سروو کریستال داره مشخصه که اون ای سی مقایسه گر نیست.و احتمالا همون میکرو خدمونه!
                  نوشته اصلی توسط pama
                  دوستان گرامی هنوز این سوال مدام تو سرم میچرخه که اون 2 تا مشکلی که عرض کردم برا سرووها و به لطف و کمک شما در حال رفع اون هستیم، با اوصاف جدیدی که پیش اومده و عرض کردم خدمتتون، هم سازگار هست؟ یعنی با وجود این تفاسیر باز هم میشه راه حلی برای ماجرا پیدا کرد؟
                  کدوم اوصاف مگه چیزی تغییر کرده؟

                  نوشته اصلی توسط pama

                  بعد از اون آیا این نگرانی به وجود نمیاد که ممکنه بعدها و بعد از حل ماجرا عملکرد دستگاه به هم بریزه؟ و کاش سروو عوض میشد...؟
                  (با وجود اینکه ممکنه در هر بار روشن کردنش، برای مدت بیشتر از 10 ساعت، مورد استفاده قرار بگیره)
                  نمیتونم مطمعن بگم نه مشکلی پیش نمیاد .ولی احتمالش رو خیلی کم میدونم.
                  پروردگارا: به من زیستنی عطا کن که در لحظه مرگ بر بی ثمری لحظه ای که برای زیستن گذشته است حسرت نخورم، و مردنی عطا کن که بر بیهودگیش سوگوار نباشم. بگذار تا آن را خود انتخاب کنم، اما آنچنان که تو دوست میداری

                  دیدگاه


                    پاسخ : کمک در مورد سروو موتور

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

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

                    نوشته اصلی توسط امیر حسنی کاخکی
                    نمیتونم مطمعن بگم نه مشکلی پیش نمیاد .ولی احتمالش رو خیلی کم میدونم.
                    پس حتی یه کم هم که شده، ولی احتمالش وجود داره؟
                    به نظر شما چه کار کنم بهتره؟
                    زندگی برگ بودن در مسیر باد نیست
                    امتحان ریشه هاست
                    ریشه هم هرگز اسیر باد نیست
                    زندگی چون پیچک است
                    انتهایش میرسد پیش خدا!

                    دیدگاه


                      پاسخ : کمک در مورد سروو موتور

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

                      یعنی با وجود این تفاسیر باز هم جای نگرانی برای حل این 2 مشکل وجود نداره؟

                      نقل قول از: pama در فبریه 05, 2012, 1046 pm
                      یک نکته ای هم در اینجا وجود داره، اونم این هست که دستگاه ما قرار بر این هست که یک عملی که به صورت دستی صورت میپذیره رو به صورت اتومات انجام بده، منتها نه اتومات دائم، بلکه یک دکمه ی درایو یا راه انداز داشته باشه، که هر گاه ما این دکمه رو زدیم میکروی سیستم با خوندن شرطها و تشخیص شرطها و در نتیجه پرش به لوپهای مربوط به هر شرط ،سرووهای ما رو حرکت بده و در نهایت سیستم رو اتومات کنه، و هر گاه هم نخواستیم اون عمل اتومات باشه،( با وجود دستگاه)، و خواستیم دستی کار رو انجام بدیم، دستگاه رو روشن نکنیم و کارمون رو دستی انجام بدیم.

                      حالا نکته ی داستان در این هست که فرض کنیم ما انجام اون عمل خاص رو اتومات و با دستگاه مزبور شروع کردیم و در حالت احقاق شرط سوم و به تبع اون پرش به lable سوم و در نیمه ی کار میخوایم از حالت اتومات ، کار رو خارج کرده و دستی به ادامه ی انجام کار بپردازیم،

                      حالا در این شرایط وقتی دستگاه خاموش میشه، سرووهای اون در یک زاویه ای قرار میگیرند،که این زاویه ها مربوط به زوایای تعریف شده برای سروو در lable 3 هست...
                      ما به حالت دستی میریم، وقتی در حالت دستی هستیم، سرووها مسلما زاویه هاشون تغییر نمیکنه، اما شرطهایی که داریم و با توجه به اون شرطها به lable های مختلف میرفتیم، این شرطها با انجام اون عمل به صورت دستی تغییر میکنه

                      حالا فرض کنید باز میخوایم از حالت دستی به حالت اتومات بریم، دفعه ی قبل که دستگاه رو خاموش کرده بودیم، شرط ما در حالت شرط 3 بود و به تبع اون سرووها در حالت زوایای مربوط به سرووها در lable 3 بود،

                      اما الان که دوباره دستگاه روشن شده، سرووها ثابت هستند، به عبارتی زوایای مربوط به lable3 رو دارند ، اما شرط ما تغییر کرده، فرضا الان در حالت شرط 6 قرار گرفتیم، پس طبیعتا با احقاق شرط 6 به lable 6 پرش میکنیم و سرووها میخوان در حالتهای تعریف شده در اون حالت قرار بگیرند، در صورتی که این سرووهای ما به محض دریافت تغذیه یک حرکتی رو میکنند و علاوه بر اون آخرین مقدار سرووها رو هم نمیتونیم به سرووها اعمال کنیم چون مربوط به حالت 3 هست و الان در حالت 6 قرار داریم.
                      و ایده آل برای ما این هست که وقتی از حالت دستی به حالت اتومات اومدیم، میکروی ما تشخیص بده که کدوم یک از 15 شرط ما محقق شده و بعد از اون به هر کدوم از 15 تا lableهای مربوط به خودش پرش کنه و سرووها رو در زاویه ها قرار بده.

                      بعد از اون آیا این نگرانی به وجود نمیاد که ممکنه بعدها و بعد از حل ماجرا عملکرد دستگاه به هم بریزه؟ و کاش سروو عوض میشد...؟
                      (با وجود اینکه ممکنه در هر بار روشن کردنش، برای مدت بیشتر از 10 ساعت، مورد استفاده قرار بگیره)
                      و یا اینکه نه، ما با خیال راحت میتونیم بریم همین سرووها رو به تعداد بخریم؟

                      بارها خواستم این سوال رو که دوستان لطف کرده و قبل از این خیلی عالی پاسخ داده بودند ، دوباره بپرسم، اما.... :redface:
                      دیگه نگرانی بیش از حد بهم اجازه نداد.
                      واقعا معذرت میخوام، که دوباره دارم این سوالها رو تکرار میکنم.
                      با سلام

                      برای این حالت، ( دیگه داره وارد حیطه سیتمهای انعطاف پذیر و هوشمند میشه ! )

                      یک بررسی شرایط در ابتدای روشن شدن میکرو انجام می دهیم.
                      1- آخرین وضعیت ضبط شده در ایییپیرام را می خوانیم و مقایسه می کنیم با 15 حالت و لیبل و می فهمیم کدام بوده.
                      2- وضعیت ورودی های "منجر به انتخاب یک از 15 لیبل" را می خوانیم از پورتهای مربوطه.
                      3- اگر ردیف 1 و 2 ، به یک لیبل اشاره داشتند که فبها ، تنظیمات pwm را می فرستیم .
                      4- اگر وضعیت ورودیها به ما می گوید باید به لیبل دیگری پرش کنیم، ( غیر از تنظیمات موجود در حافظه ) خوب این اولویت دارد بر حافظه ، به همان لیبل جدید پرش می کنیم
                      5- اینکه این سرووها در طول زمان کارکرد خوبز داشته باشند یا نه ، در حین کار معلوم خواهد شد.

                      با سپاس

                      پ.ن:
                      دیتا شیت دقیقتری از چند نوع سروو را مطالعه فرمایید و ببینید زمان اینیتیال initial شدن و حداقل زمان خاموشی و فاصله زمانی قطع و وصل تغذیه آنها ، در چه محدوده ایست؟
                      گشتی در لاله زار
                      http://www.eca.ir/forum2/index.php?topic=76138.0

                      http://www.eca.ir/forum2/index.php?topic=76141

                      دیدگاه


                        پاسخ : کمک در مورد سروو موتور

                        نوشته اصلی توسط Solsal
                        با سلام
                        از بنده هم عرض سلام و ادب جناب مهندس.
                        بسیار لطف فرمودید که باز هم با اطلاعات ارزشمندتون حضور پیدا کردید.

                        نوشته اصلی توسط Solsal
                        برای این حالت، ( دیگه داره وارد حیطه سیتمهای انعطاف پذیر و هوشمند میشه ! )

                        یک بررسی شرایط در ابتدای روشن شدن میکرو انجام می دهیم.
                        1- آخرین وضعیت ضبط شده در ایییپیرام را می خوانیم و مقایسه می کنیم با 15 حالت و لیبل و می فهمیم کدام بوده.
                        2- وضعیت ورودی های "منجر به انتخاب یک از 15 لیبل" را می خوانیم از پورتهای مربوطه.
                        3- اگر ردیف 1 و 2 ، به یک لیبل اشاره داشتند که فبها ، تنظیمات pwm را می فرستیم .
                        4- اگر وضعیت ورودیها به ما می گوید باید به لیبل دیگری پرش کنیم، ( غیر از تنظیمات موجود در حافظه ) خوب این اولویت دارد بر حافظه ، به همان لیبل جدید پرش می کنیم
                        در نتیجه جناب solsal اگر بنده درست متوجه شده باشم، ابتدا باید آخرین وضعیت سرووها رو در ابتدای برنامه بخونیم و ببینیم به کدوم یک از حالات سرووهای ما که در 15 لیبل گنجونده شده، مربوط میشه
                        و بعد از اون طبق شماره ی 2 باید با توجه به ورودیهایی که به میکرو وصله و این ورودیها 15 شرط رو برامون میسازند، و به تبع اون با احقاق هر شرط به لیبل مربوط به خودش میریم، باید توجه کنیم که حالا که بعد از حالت دستی انجام شدن اون عمل خاصمون قرار هست دستگاه روشن بشه و با اون کار کنیم، در کدوم یک از 15 حالت شرط هستیم، درست هست عرض بنده؟
                        و اگر حالت ذخیره شده ی سرووها در eeprom یا همون لیبلی که در ابتدا تشخیص دادیم با شرطی که پس از روشن کردن دستگاه در اون قرار گرفتیم با هم مچ بودند، که به قول فرمایش شما، فبها، و همون مقداری که در حافظه قرار داره رو به سرووها اعمال میکنیم که در نتیجش سرووها هیچ حرکتی هم نمیکنندو با ادامه ی کار دستگاه و عوض شدن شرطها در لیبلهای مربوطه قرار میگیریم.

                        ولی اگر لیبل خونده شده در شرط فعلی صدق نمیکرد باید به لیبل جدید بریم.

                        اما اساتید گرامی مشکل همین جاست که به محض اینکه شرط جدید محقق شد ما باید در لیبل جدید یا زاویه های جدید قرار بگیریم، به عبارتی اگر تنها با محقق شدن شرط جدید بخوایم به لیبل جدید بریم، برای عملکرد دستگاه ما و حتی سلامت! محفظه ای که سرووها و چرخ دنده های متصل به اون، درش قرار دارند،اصلا مناسب نیست(البته در حالتی که از دستی به اتومات اومدیم، و دستگاه تازه روشن شده و موقعیت سرووها رو میدونه که با شرطی که در اون هست، با هم وفق ندارند، و نه در حالت صرفا اتومات، که با تغییر هر شرط، خیلی راحت میتونیم به لیبل مربوطه بریم)

                        برای همین بنده فکر میکنم بهتر هست به جای 15 تا، تعداد لیبلهای بیشتری تعریف کنیم،
                        که بتونه تشخیص بده، حالا که مثلا تازه دستگاه روشن شده و سرووها در حالت لیبل 3 هستند و شرط در حالت شرط 5، چجوری با لیبل جدیدی که تعریف میکنیم از لیبل 3 به لیبل 5 بریم، چون صرفا با احقاق شرط 5 اگر بخوایم به حالت 5 بریم، بدون در نظر گرفتن این که سرووها از کجا به 5 بیان، برای دستگاه مضر هست.
                        البته این پیشنهاد از سواد ناقص بنده ناشی میشه وبه کمک دوستان بزرگوار برای صحت یا ادیت اون احتیاج دارم،

                        نوشته اصلی توسط Solsal
                        5- اینکه این سرووها در طول زمان کارکرد خوبز داشته باشند یا نه ، در حین کار معلوم خواهد شد.

                        با سپاس

                        پ.ن:
                        دیتا شیت دقیقتری از چند نوع سروو را مطالعه فرمایید و ببینید زمان اینیتیال initial شدن و حداقل زمان خاموشی و فاصله زمانی قطع و وصل تغذیه آنها ، در چه محدوده ایست؟
                        بله، کاملا درست میفرمائید جناب مهندس، منتها بنده زمان بسیار محدودی دارم، برای همین از سروران بزرگوارم که در زمینه ی کار با سرووها تجربه دارند، خواستم تا بفرمایند که آیا با توجه به هزینه و زمان و انرژی ای که باید بابت تجربه کردن با این سرووها بپردازیم،(گذشته از اینکه تا به حال گذشته از انرژی و هزینه ی صرف شده، حدود 1 سال زمان صرف شد تا به اینجا برسیم) اما باز هم، آیا بهتر نیست از همین الان، با سرووهایی کار رو ادامه بدیم، که 2 تا مشکل عرض شده؛ (حرکت همزمام با تحقق یک شرط، و عدم حرکت در ابتدای برق دار شدن) رو نداشته باشند؟
                        در همین راستا دوستان سروووهای داینامیکسل رو پیشنهاد میدادند که در روباتهای انسان نما ازشون استفاده میشه، هر چند که میدونم، با این کار باز درد سرهای فراوانی در راه خواهد بود، تا تازه ما رو به این نقطه ای که الان هستیم برسونه!!

                        اما خوب پیشنهاد شما و بسیاری از دوستان هم بسیار به جا و قابل تامل هست، مبنی بر اینکه این نمونه ی اولیه با همین سرووها ساخته بشه، و یک مدت زمانی رو با همین سرووها دستگاه رو تست کنیم، اگر خدا خواست و نتیجه ی خوبی داد که هیچ، در غیر اینصورت با نوع دیگه کار کنیم...

                        واقعا نمیدونم باید چه کار کنم...........
                        کاش بنده ذره ای از سواد اساتید رو داشتم، تا در این حد مزاحمشون نشده و کارم رو راه بندازم.................
                        زندگی برگ بودن در مسیر باد نیست
                        امتحان ریشه هاست
                        ریشه هم هرگز اسیر باد نیست
                        زندگی چون پیچک است
                        انتهایش میرسد پیش خدا!

                        دیدگاه


                          پاسخ : کمک در مورد سروو موتور

                          به نظر من موضوع رو زیادی پیچیده گرفتید
                          بازم به نظر من برنامه شما از سه قسمت اصلی باید تشکیل بشه که همزمان و مستقل از یکدیگر کارکنند
                          1- کنترل حرکت سرووها که با کمک جناب پرفکت باموفقیت تمام شده و پروندش بسته شده
                          2- خواندن فرکانس و اخذ تصمیم پرش به لیبل که به نظر من این هم پروندش بسته شده ولی هنوز ممکنه به بازنگری هایی نیاز داشته باشه
                          3-کنترل چگونگی حرکت سروهها که هنوز شروع به کار نکرده
                          بقیه کارها مثل خوندن و نوشتن در eeprom و تشخیص قطع تغذیه هم هستند ولی جز اصلی و همزمان نیستند
                          پس همونطور که میبینید بیشتر کار انجام شده و فقط 1 قسمت کلی و چند جزء ساده مونده

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

                          دیدگاه


                            پاسخ : کمک در مورد سروو موتور

                            نوشته اصلی توسط امیر حسنی کاخکی
                            به نظر من موضوع رو زیادی پیچیده گرفتید
                            بازم به نظر من برنامه شما از سه قسمت اصلی باید تشکیل بشه که همزمان و مستقل از یکدیگر کارکنند
                            1- کنترل حرکت سرووها که با کمک جناب پرفکت باموفقیت تمام شده و پروندش بسته شده
                            2- خواندن فرکانس و اخذ تصمیم پرش به لیبل که به نظر من این هم پروندش بسته شده ولی هنوز ممکنه به بازنگری هایی نیاز داشته باشه
                            3-کنترل چگونگی حرکت سروهها که هنوز شروع به کار نکرده
                            بقیه کارها مثل خوندن و نوشتن در eeprom و تشخیص قطع تغذیه هم هستند ولی جز اصلی و همزمان نیستند
                            پس همونطور که میبینید بیشتر کار انجام شده و فقط 1 قسمت کلی و چند جزء ساده مونده
                            با سلام و عرض احترام خدمت شما جناب کاخکی.
                            نمیدونم آقا، شاید خودم زیادی ماجرا رو به خودم سخت گرفته باشم....

                            بله، اینکه میفرمائید این برنامه از 3 قسمت اساسی تشکیل شده، باهاتون موافقم، و باز هم از لطف جناب perfect بابت زحمات زیادشون متشکرم.

                            راجع به قسمت دوم باید عرض کنم که شرطهایی که بازای اون به لیبل خاصی پرش انجام میگیره، فقط خوندن فرکانس نیست، بلکه ما چند تایی هم مقاومت متغیر کشویی تو مدار داریم که تغییر موقعیت اونها و اینکه در هر لحظه ی خاص در کجا قرار دارند، هم جزو همون شرطهای ما محسوب میشه، منظور اینکه موقعیت این مقاومتها به همراه فرکانس خروجی سنسور، با هم جزو شرطهای ما محسوب میشن.
                            که البته به قول فرمایش شما جزو قسمتهای اصلی نمیتونه باشه و با A/D راحت میشه مقدارشو خوند و ازش فیدبک گرفت و به عنوان شرط استفاده کرد.

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

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

                            جناب کاخکی بنده در محضر شما هم شاگردی بیش نیستم و در حال درس پس دادنم، نه اینکه بخوام اظهار نظر کنم، فقط چون بیشتر در بطن کار هستم و در جریان ریزه کاریهاش، اینو عرض کردم.

                            از لطف همه ی شما بزرگواران از عمق وجودم سپاسگذارم.
                            زندگی برگ بودن در مسیر باد نیست
                            امتحان ریشه هاست
                            ریشه هم هرگز اسیر باد نیست
                            زندگی چون پیچک است
                            انتهایش میرسد پیش خدا!

                            دیدگاه


                              پاسخ : کمک در مورد سروو موتور

                              نوشته اصلی توسط pama

                              چون وقتی در شرط جدید هستیم باید به لیبل جدید بریم، منتها باید بدونیم سرووها رو از چه حالتی، یا از چه زاویه ای به حالت جدید، مرتبط با شرط منتقل کنیم، یا به عبارتی باید بدونیم سرووها از کدوم لیبل میخوان بیان به لیبل جدید، از کجا اومدنش برامون خیلی مهم هست، برای همین تنها جایی که میتونیم ازش اطلاعات بگیریم که آخرین وضعیت سرووها مربوط به چی میشه، همین eeprom هست.

                              اگر دونستن این موضوع برای شما مهمه بحثش فرق میکنه(من نمیدونم چرا میخواین این موضوع را بدونید چون برای کنترل سروها اهمیتی نداره )
                              شما میتونید یک متغیر تعریف کنید و بسته به اینکه درکدام لیبل هستید به آن مقدار متفاوتی بدهید و هنگام قطع تغذیه اون متغییر رو هم در eeprom ذخیره کنید
                              و پس از روشن شدن مجدد و خوندن اون متغییر متوجه بشید در کدام لیبل دستگاه خاموش شده.به همین راحتی.
                              پروردگارا: به من زیستنی عطا کن که در لحظه مرگ بر بی ثمری لحظه ای که برای زیستن گذشته است حسرت نخورم، و مردنی عطا کن که بر بیهودگیش سوگوار نباشم. بگذار تا آن را خود انتخاب کنم، اما آنچنان که تو دوست میداری

                              دیدگاه


                                پاسخ : کمک در مورد سروو موتور

                                نوشته اصلی توسط امیر حسنی کاخکی
                                اگر دونستن این موضوع برای شما مهمه بحثش فرق میکنه(من نمیدونم چرا میخواین این موضوع را بدونید چون برای کنترل سروها اهمیتی نداره )
                                سلام جناب کاخکی.
                                روزتون بخیر، باز هم سپاسگذارم از حضور و پاسختون.
                                بله، همونطور که میفرمائید مهم هست که بدونیم سرووها از کجا میخوان حرکت کنن، فرمایش شما کاملا صحیح هست که فرقی نمیکنه که پوزیشن قبلی سرووها چی باشه و هر مقدار جدیدی که براش تعریف کنیم در همون زاویه قرار میگیره، منتها مساله ای که وجود داره اینه که سرووهای ما در یک باکسی قرار دارند که در این باکس، قرار هست با حرکت پشت سر هم و به ترتیبشون با تحقق هر شرط ، منجر به این بشند که یک مسیری در این باکس طی بشه،
                                و کل این باکس از مسیرهای متعددی تشکیل شده که نحوه ی طی کردن هر مسیر به این بستگی داره که مبدا حرکت از کجا باشه، برای همین زمانی که دستگاه تازه روشن شده و در یک شرط جدید قرار داریم، چون باید حرکت در این مسیر ها به صورت اتومات انجام بشه، در نتیجه مقدار ذخیره شده در eeprom به ما کمک میکنه که بدونیم در این حرکت اتومات، مسیر حرکتمون کجاست و از چه مبدایی باید شروع بشه.

                                نوشته اصلی توسط امیر حسنی کاخکی
                                شما میتونید یک متغیر تعریف کنید و بسته به اینکه درکدام لیبل هستید به آن مقدار متفاوتی بدهید و هنگام قطع تغذیه اون متغییر رو هم در eeprom ذخیره کنید
                                و پس از روشن شدن مجدد و خوندن اون متغییر متوجه بشید در کدام لیبل دستگاه خاموش شده.به همین راحتی.
                                ok، بسیار ممنونم، پیشنهاد خیلی خوبی بود، در حال تکمیل کردن شرطها و برنامه هستم، حتما تا شب کاملش کرده و قرار میدم.
                                فقط در مورد محل قرار گرفتن دستورات مربوط به خواندن و نوشتن در eeprom و مقایسه کردن شرط با مقدار ذخیره شده، در برنامه، مقداری مشکل دارم که امیدوارم اونها هم برطرف بشه.

                                اضافه شده در تاریخ :
                                با سلام و عرض ادب خدمت دوستان.
                                متاسفانه جمع و جور کردن این کار برای خودش ماجرایی داره!
                                خیلی از قسمتهای عالم واقعیت و عمل این پروژه با برنامه نویسی اون با هم یا منافات دارند و یا اینکه اصلا شدنی نیست...
                                برای همین یه جاهائیش رو مجددا مزاحم دوستان شدم تا ببینم میتونم کاریش بکنم یا خیر!!
                                همچنان 2 مشکل قبلی به قوت خودش باقی هست، منتها بنده فکر کردم بهتر هست که در ابتدا کلیت برنامه ی اصلی گذاشته بشه تا بتونم با کمک دوستان حل 2 مشکل قبل رو در خلال همین برنامه بگنجونیم.

                                اول اینکه همونطور که قبلا خدمت سروران عرض کردم شرطهای موجود در برنامه یکیش فرکانس هست که با برنامه ی فرکانس متر و توسط تایمر1 و در روتین وقفه ها خونده میشه، و دیگری مقدار 3 عدد مقاومت متغیر هست که با 3 کانال A/D بنا هست خونده بشه، اما سوال بنده اینه که برنامه ی مربوط به خوندن توسطA/D رو هم باید در وقفه ی تایمرها و بعد از فرکانس متر بیارم و یا اصلا قبل از وقفه و یا قبل از main اصلی که شرطها رو در بر داره؟

                                دومی و مهمترین این که ما در برنامه در هر لحظه یا بهتر بگم هر شرط احتیاج داریم که بدونیم در اون شرط و دقیقا در همون لحظه مقدار یک خانه از حافظه ی eeprom چقدر هست، یعنی به عبارتی میخوایم به قول جناب کاخکی یه متغیری مثل p رو تعریف کنیم که در هر لیبل مقدار متفاوتی رو بهش بدیم، و این مقدار در انتهای هر لیبل مقدار این متغیر در eeprom ذخیره بشه، منتها به این ترتیب میخوایم باشه که این مقدار p در هر لیبل در یک خانه از حافظه ذخیره بشه، مثلا فقط در خانه ی شماره 2، یعنی مقدار p در هر لیبل روی مقدار قبلی ریخته بشه، و میخوایم وقتی که ما در برنامه در ابتدای شرطها مقدار eeprom رو میخونیم برای اینکه همونطور که جناب solsal فرمودند، مقدارش رو با وضعیت فعلی شرطها مقایسه کنیم، اون مقداری که خونده میشه، آخرین وضعیت ذخیره شده باشه...
                                حالا سوال این هست که آیا همچین چیزی ممکن هست یا خیر؟

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

                                اضافه شده در تاریخ :
                                سلام.
                                روز همگی بخیر.
                                راستی دوستان مدار سرووها رو با همون آخرین برنامه ای که سرووها عملکرد درست داشتند(همون مداری که با شرط فرکانس سرووها میرفتن تو زاویه هاشون) گذاشتم یه مدتی جایی که قرار هست بعدا دستگاه کار گذاشته بشه، چون در این شرایط مرتب تغذیه قطع و وصل میشه و میخوام ببینم با همین هم سرووها هنگ میکنن یا نه، الانم که روز سومش هست، خدا رو شکر هنوز مشکلی پیش نیومده...
                                البته میدونم روش خیلی خوب و استانداردی برای تست سرووها نیست، ولی فکر کنم از هیچی بهتر باشه!!

                                سروران بزرگوارم پیشنهاد دیگه ای ندارند؟

                                راستی همچنان با وجود مشکلاتی مه به قول جناب moein2 موی دماغ شدن و اصلا قابل پیش بینی نبودند، منتها در حال کار بر روی برنامش هم هستم، و امیدوارم در محضر اساتید شرمنده ی آموزه هاشون نشم و شاگرد بدی نباشم....
                                و باز هم یک سوال دیگه از خدمت اساتید دارم...
                                اون هم این هست که بنده میخوام خروجی سنسوری که از جنس فرکانس هست و یکی دیگه از شرطهای برنامه رو تامین میکنه، به همراه خروجی سنسور دوم که یک سنسور مقاومتی هست و با A/D خونده میشه رو، مرتبا در eeprom ذخیره کنم (البته کاملا سوای برنامه ی اصلیمون که شامل سرووهاست) به عبارتی در یک برنامه ی کاملا جدا گانه ی دیگه، خروجی این 2 سنسور رو که یکیش با فرکانس متر خونده میشه، و اون یکی با A/D ، در حافظه ذخیره بشه، و ما بتونیم روی یه lcd در هر مثلا 1 ثانیه که فرکانس تغییر میکنه، همزمان مقدار هر 2 سنسور رو ببینیم، البته حتما این مقدار در eeprom ذخیره بشه، طوری که بعدا بتونیم مقدار خروجی هر 2 سنسور رو به صورت ذخیره شده داشته باشیم و برامون قابل دسترس و مشاهده باشند...

                                نمیدونم خوب منظورم رو رسوندم یا نه؟!
                                در کل هدف این هست که چون خروجی این 2 سنسور که شرطهای برنامه ی سرووها رو تشکیل میدن، دائما در حال تغییر هست و ما از ابتدای تغییرات رو میخوایم بدونیم به چه صورت هست تا بتونیم راجع به تعیین شرطها بهتر تصمیم بگیریم، در نتیجه این تغییرات از ابتدا(برای هر 2 سروو) جایی ثبت بشه، تا بتونیم با نمایش همزمان هر 2(چون به هم مربوط هستند) بهتر نتیجه گیری کنیم.
                                حالا آیا اصلا همچین چیزی ممکن هست؟

                                باز هم از لطف همه ی دوستان سپاسگذارم.
                                زندگی برگ بودن در مسیر باد نیست
                                امتحان ریشه هاست
                                ریشه هم هرگز اسیر باد نیست
                                زندگی چون پیچک است
                                انتهایش میرسد پیش خدا!

                                دیدگاه

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