اطلاعیه

Collapse
No announcement yet.

راهنمایی برای پروژه ساعت آنالوگ ( لطفن بخونین)

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

    راهنمایی برای پروژه ساعت آنالوگ ( لطفن بخونین)

    با سلام خدمت دوستان عزیز


    من میخوام یه پروژه ای با عنوان ساعت آنالوگ بر روی lcd گرافیکی توسط avr و تراشه RTC انجام بدم.

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

    این جابجایی فک میکنم باید براساس زاویه صورت بگیره.از اونجایی که کل دایره 360 درجه س و باید به 60 قسمت تقسیم بشه پس برای عقربه ثانیه هر 6 درجه باید این جابجایی شکل بگیره.

    اگه میشه راهنماییم کنین.

    ممنونم

    #2
    پاسخ : راهنمایی برای پروژه ساعت آنالوگ ( لطفن بخونین)

    خودت که همه چیو گفتی.همین روشی که گفتی درسته

    دیدگاه


      #3
      پاسخ : راهنمایی برای پروژه ساعت آنالوگ ( لطفن بخونین)

      خب دوست من
      منم میخوام بدونم چطوری این 6 درجه بیاد تو برنامه؟؟؟ کجای برنامه باید قرار بگیره؟؟؟ چه رابطه ای لازمه؟؟؟

      دیدگاه


        #4
        پاسخ : راهنمایی برای پروژه ساعت آنالوگ ( لطفن بخونین)

        آقایون مهندس کمک کنین.....

        دیدگاه


          #5
          پاسخ : راهنمایی برای پروژه ساعت آنالوگ ( لطفن بخونین)

          من به نتیجه نرسیدم......

          دیدگاه


            #6
            پاسخ : راهنمایی برای پروژه ساعت آنالوگ ( لطفن بخونین)

            با سلام،

            شما سوالت دقیقا چیه؟
            اگر مشکل فقط رسم خط و نحوه محاسبه X و Y از مرکز ساعت برای رسم عقربه هاست، باید از سینوس و کسینوس استفاده کنی :

            X = R * Sin(th)
            Y = R * Cos(th)

            Line(X0, Y0, X0+X, Y0-Y, color)

            با چه میکرویی، چه زبانی و چه نمایشگری برنامه مینویسی؟
            ( میتونم با سی و میکروی مگا 16 و نمایشگر KS0108 یا N1100 یه نمونه برنامه برات بنویسم و پروتئوس که تست کنی و متوجه ماجرا بشی ... )
            مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

            Sh_Nourbakhsh@Yahoo.com

            http://s2.picofile.com/file/7170362468/_Wall_e_.jp

            دیدگاه


              #7
              پاسخ : راهنمایی برای پروژه ساعت آنالوگ ( لطفن بخونین)

              با سلام،

              اگر هنوز به نتیجه نرسیدی، این نمونه که توی کدویژن نوشتم رو یه نگاهی بنداز، فایل پروتئوسش هم موجوده! :mrgreen:

              http://s1.picofile.com/file/7520808816/Clock_test.rar.html


              مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

              Sh_Nourbakhsh@Yahoo.com

              http://s2.picofile.com/file/7170362468/_Wall_e_.jp

              دیدگاه


                #8
                پاسخ : راهنمایی برای پروژه ساعت آنالوگ ( لطفن بخونین)

                ممنونم که جواب دادی

                من با بسکام مینویسم برا مگا 32.

                ببین مثلن الان برای شروع , عقربه رو 12س که یه مختصاتش که تو مرکز دایره س همیشه ثابته.
                میمونه X و Y انتهای عقربه که باید هر 6 درجه مختصاتش تغییر کنه؟؟؟؟؟؟؟؟ این واسم سواله که چطور محاسبه میشه.

                دیدگاه


                  #9
                  پاسخ : راهنمایی برای پروژه ساعت آنالوگ ( لطفن بخونین)

                  با سلام،

                  توی فایل main توضیحات لازم رو نوشتم، برنامه بیشتر محاسباتی هستش که توی بسکام هم دقیقا میشه پیاده سازیش کرد.
                  یه روتین به اسم DrawAClock هست که اصل ماجراست و یه سری تعاریف اولیه هم در ابتدای فایل به شرح زیر داره :
                  کد:
                  #define Deg(n) 											(2 *PI *n /360)
                  
                  //myClock face and hands definitions
                  #define RFACE												(unsigned int)(30)
                  #define RSEC 												(unsigned int)(26)
                  #define RMIN 												(unsigned int)(22)
                  #define RHOUR 											(unsigned int)(18)
                  
                  #define X0									 			 	(unsigned int)(90)
                  #define Y0 			 										(unsigned int)(32)

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

                  X و Y مرکز که ثابته، مختصات X و Y هر زاویه هم از شعاع ضرب در سینوس و کسینوس همون زاویه بدست میاد.
                  تنها نکته برای ساعت آنالوگ اینه که عقربه های ثانیه و دقیقه یک مرتبه 6 درجه جابجا میشن، ولی حرکت عقربه ساعت، با حرکت عقربه دقیقه و مقدار ساعت فعلی همزمانه و یک دفعه 30 درجه جابجا نمیشه! به عبارت ساده، زاویه حرکت عقربه ساعت در هر لحظه اینطور محاسبه میشه که ساعت فعلی ضربدر 30 درجه به اضافه دقیقه فعلی تقسیم بر دو ....

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

                  Sh_Nourbakhsh@Yahoo.com

                  http://s2.picofile.com/file/7170362468/_Wall_e_.jp

                  دیدگاه


                    #10
                    پاسخ : راهنمایی برای پروژه ساعت آنالوگ ( لطفن بخونین)

                    پروتئوسی که دانلود کردم مشکل داشت. تا بازش میکردم بعد 1 ثانیه بسته میشد.

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

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

                    دیدگاه


                      #11
                      پاسخ : راهنمایی برای پروژه ساعت آنالوگ ( لطفن بخونین)

                      نوشته اصلی توسط mfn59
                      پروتئوسی که دانلود کردم مشکل داشت. تا بازش میکردم بعد 1 ثانیه بسته میشد.

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

                      اگه مشکلی بود دوباره مزاحمتون میشم.
                      خواهش میکنم، موردی باشه، در خدمتم....
                      در ضمن، فایل Clock.PWI رو پاکش کن ( Del ) مشکل پروتئوسش حل میشه، این باگ پروتئوسه!
                      مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

                      Sh_Nourbakhsh@Yahoo.com

                      http://s2.picofile.com/file/7170362468/_Wall_e_.jp

                      دیدگاه


                        #12
                        پاسخ : راهنمایی برای پروژه ساعت آنالوگ ( لطفن بخونین)

                        سلام

                        ببخشید یه مشکلی برام پیش اومده

                        زمانی که ثانیه حرکت میکنه و یه ثانیه به جلو میره خط ثانیه قبلی رو lcd باقی میمونه. من چطور اون خط رو پاک کنم؟؟؟

                        دیدگاه


                          #13
                          پاسخ : راهنمایی برای پروژه ساعت آنالوگ ( لطفن بخونین)

                          نوشته اصلی توسط mfn59
                          سلام

                          ببخشید یه مشکلی برام پیش اومده

                          زمانی که ثانیه حرکت میکنه و یه ثانیه به جلو میره خط ثانیه قبلی رو lcd باقی میمونه. من چطور اون خط رو پاک کنم؟؟؟
                          با سلام،

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

                          Sh_Nourbakhsh@Yahoo.com

                          http://s2.picofile.com/file/7170362468/_Wall_e_.jp

                          دیدگاه


                            #14
                            پاسخ : راهنمایی برای پروژه ساعت آنالوگ ( لطفن بخونین)

                            W = Seconderadius * Cosangle
                            Xseconde = Centrex + W
                            W = Seconderadius * Sinangle
                            Yseconde = Centrey - W
                            Xseconde = Round(xseconde) : Yseconde = Round(yseconde)
                            X = Int(xseconde) : Y = Int(yseconde)
                            Line(x0 , y0) -(x , Y) , 255

                            به غیر از این یه سوال دیگه در مورد lcd گرافیکی داشتم:
                            چرا زمانی که یه دایره تو ال سی دی میکشم عدد پیکسلایی که مینویسم با عدد پیکسلهای یک چیزی که میخوام به نمایش دربیاد فرق میکنه؟
                            مثلن:

                            Circle(120 , 64) , 61 , 255
                            عددهای 120 و 64

                            و

                            Locate 2 , 15
                            "Lcd "12

                            عددهای 2 و 15

                            دیدگاه


                              #15
                              پاسخ : راهنمایی برای پروژه ساعت آنالوگ ( لطفن بخونین)

                              نوشته اصلی توسط mfn59
                              W = Seconderadius * Cosangle
                              Xseconde = Centrex + W
                              W = Seconderadius * Sinangle
                              Yseconde = Centrey - W
                              Xseconde = Round(xseconde) : Yseconde = Round(yseconde)
                              X = Int(xseconde) : Y = Int(yseconde)
                              Line(x0 , y0) -(x , Y) , 255

                              به غیر از این یه سوال دیگه در مورد lcd گرافیکی داشتم:
                              چرا زمانی که یه دایره تو ال سی دی میکشم عدد پیکسلایی که مینویسم با عدد پیکسلهای یک چیزی که میخوام به نمایش دربیاد فرق میکنه؟
                              مثلن:

                              Circle(120 , 64) , 61 , 255
                              عددهای 120 و 64

                              و

                              Locate 2 , 15
                              "Lcd "12

                              عددهای 2 و 15
                              دقیقا قسمتی از کد رو ندادی که لازم بوده!!!

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

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

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

                              Sh_Nourbakhsh@Yahoo.com

                              http://s2.picofile.com/file/7170362468/_Wall_e_.jp

                              دیدگاه

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