اطلاعیه

Collapse
No announcement yet.

اوسیلوسکوپ با رزبری‌پای پیکو

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

    اوسیلوسکوپ با رزبری‌پای پیکو

    سلام دوستان.
    من با استفاده از یک کتابخانه بنام rp2daq در گیت‌هاب و با کمک رزبری پای پیکو، یک اوسیلوسکوپ با سرعت شونصد تراهرتز، ببخشید 500k sample/second ولی خیلی ارزان درست کردم که بد کار نمیکنه. تنها قطعه‌ی activeش همون رزبری پای پیکو هست! مالتیپلکس و این سیستما رو هم نداره چون من بیشتر توی فاز برنامه‌نویسی هستم تا الکترونیک
    میتونید از اینجا ببینید:

    خوشحال میشم نظراتتون رو در مورد این پروژه بفرماایین... اگر پیشنهادی دارید بگید سعی میکنم روش اعمال کنم...
    جدیدترین ویرایش توسط epsi1on; ۱۴:۴۲ ۱۴۰۳/۰۷/۰۸.

    #2
    بله خوبه ولی حداکثر فرکانس کاری حدود 60 کیلوهرتز میباشد که برای بسیاری از کارها مناسب است
    البته با توجه به محدودیت ولتاژ رزبری ، مستلزم استفاده از مدارات آنالوگ و .... جهت کار با استاندارد های ولتاژی دیگر هستید

    دیدگاه


      #3
      نوشته اصلی توسط axiom2600 نمایش پست ها
      البته با توجه به محدودیت ولتاژ رزبری ، مستلزم استفاده از مدارات آنالوگ و .... جهت کار با استاندارد های ولتاژی دیگر هستید
      دقیقا درست میگید.
      ADCی رزبری حداکثر حدود 3.3ولت هست. برای ولتاژهای بالاتر نیاز به تقسیم کننده مقاومتی ولتاژ هست که چون سه تا جای پراب داره و روی هر پراب یک کلید دوپل هست، شش تا ولتاژ divider رو جواب میده. ولی بخاطر عدم استفاده از مالتیپلکسر و مدار انالوگ قوی‌تر برای هر محدوده ولتاژ باید دستی جای پراب عوض بشه.
      خودم خیلی ازش استفاده میکنم، چون نمونه‌گیریش بصورت مداوم هست با نرخ ۵۰۰هزار نمونه بر ثانیه، نسبتا جواب میده تا همون حدودای ۶۰ کیلوهرتز و کمی بالاتر. چون خودم برنامه نویس سی شارپ هستم سوادشو نداشتم بیشتر روی مدار انالوگش کار کنم. ولی در حد اوسیلوسکوپ ۲۰۰ تومنی خیلی خوب کار میکنه.
      قیمتش میشه یدونه رزبری پیکو (۲۰۰ت) بعلاوه برد (۱۵۰ ت از فدک) و قطعات حدود ۱۵۰ ت. کیس هم که فعلا نداره .
      جدیدترین ویرایش توسط epsi1on; ۱۴:۴۴ ۱۴۰۳/۰۷/۰۸.

      دیدگاه


        #4
        بسیار عالی
        یه پیشنهاد دارم اگر بتونید از کتابخانه FFT استفاده کنید برای پردازش سیگنال کاربرد بیشتری دارد
        بعنوان مثال ساخت یه مودم ساده که با هندشیک یه ارتباط پایدار رو روی یک زوج سیم منتقل کنه
        یا داخل همین فروم تعداد زیادی از کاربران درخواست مدارات اکولایزر و تفکیک فرکانسی دارند
        در کل ساخت اسکپ ایده خوبیه ولی تنها نمایش شکل موج کم لطفی به استعداد شماست - حداقل اسپکتروم آنالایزر هم کنارش در نظربگیرید یا جمع کننده دو کانال یا ...

        دیدگاه


          #5
          نوشته اصلی توسط axiom2600 نمایش پست ها
          یه پیشنهاد دارم اگر بتونید از کتابخانه FFT استفاده کنید برای پردازش سیگنال کاربرد بیشتری دارد
          ممنون بابت پیشنهاد. همین الان هم از کتابخانه fft استفاده میکنه، ولی خوب فقط برای پیدا کردن فرکانس سیگنال که بتونه نمایشش بده. نه برای نمایش طیف فرکانس و ...

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

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

          دیدگاه


            #6
            نوشته اصلی توسط epsi1on نمایش پست ها

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

            .
            ببخشید اینجاشو متوجه نشدم
            شما FFT میزنید و فرکانس رو پیدا میکنید؟
            این با تعریف اسیلوسکوپ متفاوته ها
            FFT یکی از قابلیتهای اسکپ ها هست اما دیجیتال اسیلوسکوپ و یا حتی دیجیتال استوریج اسیلوسکوپ ها برای نمایش شکل موج ورودی از این روش استفاده نمیکنند

            دیدگاه


              #7
              نوشته اصلی توسط epsi1on نمایش پست ها
              سلام دوستان.
              من با استفاده از یک کتابخانه بنام rp2daq در گیت‌هاب و با کمک رزبری پای پیکو، یک اوسیلوسکوپ با سرعت شونصد تراهرتز، ببخشید 500k sample/second ولی خیلی ارزان درست کردم که بد کار نمیکنه. تنها قطعه‌ی activeش همون رزبری پای پیکو هست! مالتیپلکس و این سیستما رو هم نداره چون من بیشتر توی فاز برنامه‌نویسی هستم تا الکترونیک
              میتونید از اینجا ببینید:

              خوشحال میشم نظراتتون رو در مورد این پروژه بفرماایین... اگر پیشنهادی دارید بگید سعی میکنم روش اعمال کنم...
              با سلام و درود،
              به نظرم کار ارزشمندی انجام دادید و واقعا ارزش توسعه دادن داره.
              و بسیار هم عالی که رایگان و متن باز منتشر کردید.
              همین ۶۰ کیلو هرتز هم برای بسیاری کار ها ( از جمله بررسی دیستوریشن و پاسخ فرکانسی آمپلی فایر ها ) به خوبی کار رو راه میندازه.
              احتمالا بخش تقویت و تضعیف آنالوگ رو خودم طراحی و منتشر کنم.
              چند تا پیشنهاد برای بهبود نتیجه کار دارم :
              ۱- چند کانال ADC رو موازی و استفاده کنید ، که باعث افزایش سرعت نمونه برداری و در نتیجه افزایش پهنای باند میشه.
              ۲- از DMA استفاده کنید ( البته شاید الان هم استفاده میکنید )
              ۳- چند پایه GPIO رزبری پای به عنوان خروجی تعریف بشه تا کنترل ضریب تقویت و تضعیف ( ولت دیویژن ) به شکل نرم افزاری انجام بشه و کلید های فیزیکی روی برد حذف بشن ، و بجاشون از آیسی های مالتی پلکسر استفاده بشه، البته میدونم شما برنامه نویس هستید و به همین خاطر مالتی پلکس و ... رو اگر فرصت بشه ، خودم انجام میدم.
              ۴- در تصویری که از PCB در‌ گیت هاب گذاشتید ، به نظر ۳ فیش BNC وجود داره ، که کاربردشون برام مشخص نیست.
              اگر خروجی سیگنال تست ۱ کیلوهرتز نداره ، بنظرم لازمه اضافه کنید.

              و یک سوال : PCB رو خودتون چاپ کردید یا دادید شرکت فدک که ۱۵۰ تومن در اومده یا صرفا طراحی کردید؟

              دیدگاه


                #8
                نوشته اصلی توسط axiom2600 نمایش پست ها

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

                دیدگاه


                  #9
                  نوشته اصلی توسط HS1386 نمایش پست ها

                  با سلام و درود،
                  به نظرم کار ارزشمندی انجام دادید و واقعا ارزش توسعه دادن داره.
                  و بسیار هم عالی که رایگان و متن باز منتشر کردید.
                  همین ۶۰ کیلو هرتز هم برای بسیاری کار ها ( از جمله بررسی دیستوریشن و پاسخ فرکانسی آمپلی فایر ها ) به خوبی کار رو راه میندازه.
                  احتمالا بخش تقویت و تضعیف آنالوگ رو خودم طراحی و منتشر کنم.
                  چند تا پیشنهاد برای بهبود نتیجه کار دارم :
                  ۱- چند کانال ADC رو موازی و استفاده کنید ، که باعث افزایش سرعت نمونه برداری و در نتیجه افزایش پهنای باند میشه.
                  ۲- از DMA استفاده کنید ( البته شاید الان هم استفاده میکنید )
                  ۳- چند پایه GPIO رزبری پای به عنوان خروجی تعریف بشه تا کنترل ضریب تقویت و تضعیف ( ولت دیویژن ) به شکل نرم افزاری انجام بشه و کلید های فیزیکی روی برد حذف بشن ، و بجاشون از آیسی های مالتی پلکسر استفاده بشه، البته میدونم شما برنامه نویس هستید و به همین خاطر مالتی پلکس و ... رو اگر فرصت بشه ، خودم انجام میدم.
                  ۴- در تصویری که از PCB در‌ گیت هاب گذاشتید ، به نظر ۳ فیش BNC وجود داره ، که کاربردشون برام مشخص نیست.
                  اگر خروجی سیگنال تست ۱ کیلوهرتز نداره ، بنظرم لازمه اضافه کنید.

                  و یک سوال : PCB رو خودتون چاپ کردید یا دادید شرکت فدک که ۱۵۰ تومن در اومده یا صرفا طراحی کردید؟
                  ممنون.
                  ۱- فکر میکنم rp2040 که پردازنده رزبری پیکو هست فقط یک adc با نرخ 500ksps داره. البته ۳ تا پین داره ولی نرخ اصلی بین این سه تا پین به اشتراک گذاشته میشه. یعنی اگر از دوتا پین استفاده بشه نرخ نصف میشه و ضاهرا با مالتی پلکسر داخلی این کار رو انجام میده.
                  ۲- حقیقتش از یک پروژه ی آماده بنام rp2daq بعنوان firmware استفاده کردم. اون از dma استفاده میکنه. غیر از این بود اصلا این ریت رو جواب نمیداد.
                  ۳- بله فکر خیلی خوبیه.
                  ۴- صرفا هر فیش به یک تقسیم کننده ولتاژ رفته و بعد به یکی از پین‌های adc وصل شده. این باعث میشه رنجهای مختلف ولتاژ رو بشه با فیش‌های ۱ تا ۳ اندازه گیری کرد. مثلا فیش شماره ۱ اگر کلیدش روشن باشه تقسیم‌کننده‌ی ولتاژ شماره ۱ وارد کار شده و بازه ی ۰-۳ ولت رو میشه اندازه گیری کرد. اگر کلیدش خاموش باشه تقسیم کننده ولتاژ شماره ۲ وارد عمل میشه که بازه اندازه گیری رو میکنه منفی۵ الی ۵ ولت. فیش دو هم همینطور با کلید روشن و خاموش دوتا ولتاژ دیوایدر مختلف داره که باعث میشه رنج‌های ۱۰ و ۲۰ و بیشتر و کمتر قابل اندازه گیری باشن.

                  PCB رو خودم در kicad کشیدم، دادم فدک چاپ کردن.
                  جدیدترین ویرایش توسط epsi1on; ۲۱:۲۲ ۱۴۰۳/۰۷/۰۹.

                  دیدگاه


                    #10

                    در نهایت به نظرم خیلی خوب میشد اگر این پروژه با میکرو کنترلری مثل سری stm32f4 پیاده میشد. چون بزرگترین مشکل رزبری پیکو اینه که ارتباطش usb نسخه‌ی 1.1 هست که باعث میشه با حداکثر سرعت حدود ۱۰ مگابیت‌بر‌ثانیه انتقال انجام بشه. هر سمپل ۱۲ بیت هست که در نهایت حداکثر همین 500ksps رو میشه داشت نه بیشتر. سرعت در اینجا یک جورایی گلوگاه هست. ولی بعضی میکرو‌های سری f4 دارای usb2 و ADCی با سمپل‌ریت 7msps هستن که خوب خیلی خیلی بهتر هستن. ارزش وقت گذاشتن رو بیشتر دارن.

                    در حقیقت این اوسیلوسکوپ سه تا بخش داره، firmware و طراحی انالوگ مدار و نرم‌افزار روی کامپیوتر.
                    قسمت سوم رو بنده انجام دادم، قسمت اول رو از گیت‌هاب برداشتم (یک پروژه بنام rp2daq) و همین شد که قسمت دوم توسعه پیدا نکرد. اگر کسی بخواد طراحی انالوگ رو توسعه بده و بصورت اوپن سورس باشه من حتما نرم افزار رو باهاش منطبق میکنم. برنامه نویسی سمت دسکتاپش تقریبا اصولی هست و فکر میکنم تا حتی سمپل ریت ۲۰ مگ هم جواب بده. البته تست نشده و مطمعن نیستم...​
                    جدیدترین ویرایش توسط epsi1on; ۲۱:۲۳ ۱۴۰۳/۰۷/۰۹.

                    دیدگاه


                      #11
                      من میگم استارتشو بزنید و از adc های گیگا سمپلی استفاده کنید
                      ایران هم گیر میاد

                      دیدگاه


                        #12
                        نوشته اصلی توسط axiom2600 نمایش پست ها
                        من میگم استارتشو بزنید و از adc های گیگا سمپلی استفاده کنید
                        ایران هم گیر میاد
                        اونا به نظرم مشکل اتصال دارن و کمی ارتباطشون با pc سخت باشه. مگر اینکه بصورت مداوم نمونه گیری نکنه.
                        چون usb2 که اخرش 480mbps هست و قابل دسترسی هست. usb3 که میره روی گیگابیت شاید در حد ۱۰۰مگاسمپل رو جواب بده. ولی تابحال امتحان نکردم آیا #C میتونه این نرخ رو پردازش کنه یا نه...
                        مثلا چه مدلهای گیگاسمپلی هست که توی ایران هم پیدا میشه؟ احتمالا قیمتهاشون هم اندازه یک اوسیلوسکوپ جدا باشه؟

                        دیدگاه


                          #13
                          به نظرم همین مدل پیکو با مالتی‌پلکسر هم خیلی جالب میشه و کاربردی. حتی میشه برنامه‌اش رو به اندروید هم پورت کرد (با native programming) تا سرعت بالایی داشته باشه. یعنی از سی شارپ به cpp پورت بشه. شاید همون سی شارپ هم روی موبایل جواب بده.
                          چیز واقعا کاربردی ای میشه. شما فرض کن هر گوشی ای میشه تبدیل بشه به یک اوسیلوسکوپ ۶۰ کیلوهرتز - 500ksps اونم با یک هزینه کم در حد چند صد هزار تومن.
                          ولی مدل ۱۰۰مگاسمپلش رو هم بدم نمیاد امتحان کنم.

                          دیدگاه


                            #14
                            وای خدا
                            یه نکته مهم
                            شما نباید دیتا خام روی باس usb بریزید
                            مطمنا حجم اطلاعات در پورت بسیار بالا میره
                            شما با adc مقادیر رو میخونید و به رم منتقل میکنید ، بعد از اون اطلاعات رو پردازش میکنید، فیلتر میکنید ، اطلاعات مازاد رو حذف میکنید ، در صورت لازم کدینگ میکنید و نتیجه رو جهت نمایش به usb یا هر مدیای دیگه ای منتقل میکنید
                            حالا در کنار این فرآیند ، با استفاده از تریگر و همچنین پریود نمونه گیری ، سرعت نمونه گیری رو مشخص میکنید
                            این مباحثی که گفتم خلاصه کتاب سیگنال اپنهایم بود
                            البته نمیخواهم سختش کنم موضوع رو
                            برای شروع شما اطلاعات رو مثلا در یک آرایه بریزید ، بعد از اون به اندازه کادر قابل نمایش ( پیکسل های در نظر گرفته شده) اونها رو کمپرس ( مثلا حذف آرایه های زوج ) و اسکیل بدید
                            بعد با نرخ 25 هرتز به کامپیوتر یا lcd یا هر دستگاه دیگه بفرستید

                            دیدگاه


                              #15
                              نوشته اصلی توسط axiom2600 نمایش پست ها
                              وای خدا
                              یه نکته مهم
                              شما نباید دیتا خام روی باس usb بریزید
                              مطمنا حجم اطلاعات در پورت بسیار بالا میره
                              شما با adc مقادیر رو میخونید و به رم منتقل میکنید ، بعد از اون اطلاعات رو پردازش میکنید، فیلتر میکنید ، اطلاعات مازاد رو حذف میکنید ، در صورت لازم کدینگ میکنید و نتیجه رو جهت نمایش به usb یا هر مدیای دیگه ای منتقل میکنید
                              حالا در کنار این فرآیند ، با استفاده از تریگر و همچنین پریود نمونه گیری ، سرعت نمونه گیری رو مشخص میکنید
                              این مباحثی که گفتم خلاصه کتاب سیگنال اپنهایم بود
                              البته نمیخواهم سختش کنم موضوع رو
                              برای شروع شما اطلاعات رو مثلا در یک آرایه بریزید ، بعد از اون به اندازه کادر قابل نمایش ( پیکسل های در نظر گرفته شده) اونها رو کمپرس ( مثلا حذف آرایه های زوج ) و اسکیل بدید
                              بعد با نرخ 25 هرتز به کامپیوتر یا lcd یا هر دستگاه دیگه بفرستید
                              بله، این که شما میگی اتفاقا برای اسکوپ خیلی مناسب‌تره و راه اصولی تریه.
                              کسی میدونه اوسیلوسکوپ هانتک 6022 (ارزونترین مدلش) چطوری نمونه برداری میکنه؟ فکر کنم اونم مداوم میگیره.
                              ولی خوب مدلهای قوی ترش احتمالا مقطعی نمونه برداری میکنن.

                              دیدگاه

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