اطلاعیه

Collapse
No announcement yet.

ربات انسان‌نمای هوشمند تیم دونفره Saman110 و Alex_One

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

    #61
    وقتی فایل‌های داخل پوشه lib پسوند .a دارند، یعنی OpenCV برای کامپایلرهای مبتنی بر GCC مثل MinGW کامپایل شده، نه برای ویژوال استودیو. این دقیقاً همونه که Code::Blocks معمولاً باهاش کار می‌کنه، چون Code::Blocks با MinGW ارائه می‌شه.
    ✅ پسوند .a یعنی چه؟
    • فایل‌های .a همون کتابخانه‌های استاتیک (static libraries) هستن برای کامپایلر GCC.
    • برخلاف .lib که مخصوص Visual Studio هستن.

    دیدگاه


      #62
      دوستان اگر مرحله آخر یا install را انجام دادید بروید پوشه install را باز کنید. داخل همون پوشه هدف که به برنامه make دادید.
      تموم خرت و پرت لازم برای کدبلوک همون جاست.
      جدیدترین ویرایش توسط Saman110; ۰۲:۱۳ ۱۴۰۴/۰۳/۱۶.

      دیدگاه


        #63
        تنظیم OpenCV در Code::Blocks با کتابخانه‌های .a

        1. مسیر فایل‌های هدر (include)
        برو به:
        Project → Build options → Search directories → Compiler
        و اضافه کن:

        C:\opencv\include
        C:\opencv\include\opencv2

        2. مسیر کتابخانه‌ها
        برو به:
        Project → Build options → Search directories → Linker
        و اضافه کن:

        C:\opencv\lib

        3. لینک کردن فایل‌های .a
        برو به:
        Project → Build options → Linker settings → Link libraries
        و فایل‌های .a مربوط رو اضافه کن. مثلاً:

        libopencv_core.a
        libopencv_highgui.a
        libopencv_imgcodecs.a
        libopencv_imgproc.a​

        دیدگاه


          #64
          اسم پوشه هدف من op بود و در درایو سی بود.
          البته فکر می کنم می توانید این پوشه ها را جای دیگر منتقل کنید.
          مهم اینه این فایلها را به کدبلوک برسونید حالا هر جایی بود.

          دیدگاه


            #65
            تنظیم lib را در عکس می بینید. اگر عکس نبود با توضیحات چند پست قبل خودتان قادر به انجام کار هستید.

            دیدگاه


              #66
              لینکر ستینگ

              دیدگاه


                #67
                #include <iostream>
                [HASHTAG="t15999"]include[/HASHTAG] <opencv2/opencv.hpp>

                using namespace std;

                int main()
                {
                cout << "Hello world!" << endl;

                cv::Mat img = cv::imread("your_image.jpg");
                if (img.empty()) {
                std::cout << "خطا در باز کردن عکس" << std::endl;
                return -1;
                }
                cv::imshow("Test Image", img);
                cv::waitKey(0);

                return 0;
                }


                کد را مثل کد بالا کنید.
                از منوی بیلد همون اولی یعنی بیلد را بزنید. به من گفت خطا نداری.

                اگر بیلد بشه یعنی فایل اگزه ساخته شده . بروید جایی که پروژه را ذخیره کردید. فایل اگزه را کلیک کنید تا اجرا بشه. چهار تا dll را خواست که گذاشتم کنارش. و اجرا شد. میشه مسیر dll را تنظیم کرد که دیگه اینها را نخواد.
                ولی اگر بخواهید به مشتری بدهید فکر کنم باید dll های لازم را کنار فایل قرار دهید و با هم بهش بدهید.
                جدیدترین ویرایش توسط Saman110; ۰۱:۱۷ ۱۴۰۴/۰۳/۱۶.

                دیدگاه


                  #68
                  برنامه اول را زیاد توضیح دادم و تنظیمات فایلهای لازم را با عکس گفتم تا اذیت نشوید. برنامه های دیگر شبیه همین است و خودتان انجام دهید.

                  عکسی با نام your_image.jpg هم کنار فایل اگزه خود بزارید تا برنامه بازش کنه. برای من به شکل زیر شد:
                  یا مسیر کامل عکس را در کد به صورت دقیق بده.
                  مثلاً به جای "your_image.jpg" بنویس:
                  C:\\Users\\YourName\\Pictures\\myphoto.jpg​
                  جدیدترین ویرایش توسط Saman110; ۰۱:۲۹ ۱۴۰۴/۰۳/۱۶.

                  دیدگاه


                    #69
                    Cv::
                    اون علامت دو تا نقطه کنار هم در C++ به معنی Namespace resolution operator است.

                    توضیح کامل:

                    cv namespace مربوط به کتابخانه OpenCV است.

                    وقتی می‌نویسی cv::imread یعنی تابع imread از فضای نام (namespace) cv صدا زده می‌شود.

                    چرا namespace؟

                    در زبان C++ برای جلوگیری از تداخل نام‌ها (مثلاً اگر دو کتابخانه یا بخش‌های مختلف برنامه دو تابع یا کلاس با یک اسم داشته باشند) از namespace استفاده می‌شود تا هر کدام در یک فضای جدا تعریف شوند.
                    پس cv:: مشخص می‌کند که این تابع یا کلاس متعلق به OpenCV هست.

                    مثال:

                    include <opencv2/opencv.hpp>

                    int main() {
                    cv::Mat image = cv::imread("photo.jpg");
                    cv::imshow("Image", image);
                    cv::waitKey(0);
                    return 0;
                    }

                    اینجا همه توابع و کلاس‌ها با cv:: استفاده می‌شوند تا مشخص شود از OpenCV هستن.

                    دیدگاه


                      #70
                      ربات‌های هوشمند در زندگی روزمره تو چه کارهایی می‌تونن بکنن؟

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

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

                      ۴. کمک در آشپزخانه
                      ربات‌های ساده برای هم زدن، مخلوط کردن یا انجام کارهای پایه آشپزی
                      یادآوری مواد غذایی در یخچال یا سفارش دادن اتوماتیک مواد غذایی

                      ۵. همراه و سرگرمی
                      ربات‌های همراه که با تو حرف می‌زنند، بازی می‌کنند، یا حتی داستان تعریف می‌کنند
                      یادگیری زبان یا مهارت‌های جدید با ربات‌های آموزشی

                      ۶. کمک به سالمندان و افراد ناتوان
                      یادآوری دارو و وقت‌های مهم
                      کمک در بلند شدن یا حرکت در خانه
                      تماس سریع با اورژانس در شرایط اضطراری

                      ۷. کمک در مدیریت کارها
                      برنامه‌ریزی و مدیریت قرارها و کارها در موبایل یا سیستم خانه
                      یادآوری خرید یا کارهای منزل

                      خلاصه:

                      یک ربات هوشمند تو زندگی تو می‌تونه به عنوان یک دستیار هوشمند، نظافتچی، نگهبان، همراه و کمک‌کننده عمل کنه که زندگی رو راحت‌تر، امن‌تر و لذت‌بخش‌تر می‌کنه.

                      دیدگاه


                        #71
                        گوش ربات:
                        برای اینکه رباتت "گوش داشته باشه"، یعنی بتونه صداها رو بشنوه و بفهمه، باید از چند بخش استفاده کنی که با هم کار کنن:

                        مراحل و اجزای لازم برای «شنوایی ربات»:

                        1. میکروفون (Microphone)
                        همون «گوش» فیزیکی رباته.
                        می‌تونه میکروفون نخودی باشه
                        سیگنال صدا (آنالوگ) رو می‌گیره و به برق ضعیف تبدیل می‌کنه.

                        2. تقویت‌کننده صوت (Audio Amplifier)
                        چون سیگنال میکروفون خیلی ضعیفه، باید تقویت بشه.
                        از ترانزیستورهایی مثل 2SA1015، C945 یا LM386 می‌شه استفاده کرد.
                        کاری می‌کنه که میکروکنترلر بتونه سیگنال رو "بشنوه".

                        3. مبدل آنالوگ به دیجیتال (ADC)
                        اگر میکروکنترلر مثل Arduino یا ATmega داشته باشی، پورت‌های ADC دارن.
                        سیگنال صدای تقویت‌شده رو به عدد تبدیل می‌کنن.
                        مثلاً وقتی صدا زیاد میشه، عددی که ADC می‌ده هم زیاد میشه.

                        4. پردازش سیگنال
                        حالا که عدد دیجیتال داری، می‌تونی با برنامه‌نویسی:
                        تشخیص بدی صدا وجود داره یا نه (مثلاً دست زدن، حرف زدن)
                        تشخیص بدی که چه الگویی از صدا اومده (دستور خاص)

                        5. (اختیاری) هوش مصنوعی یا تشخیص گفتار
                        اگر بخوای رباتت بفهمه چی گفتی (مثلاً وقتی می‌گی: «برو جلو»)، باید:
                        صدا رو ضبط کنه
                        بفرسته برای پردازش با ESP32 یا کامپیوتر
                        از کتابخونه‌هایی مثل Vosk یا Whisper استفاده کنی

                        نتیجه:
                        با این ترکیب: میکروفون + تقویت‌کننده + ADC + برنامه‌ریزی = یک ربات که گوش داره!

                        دیدگاه


                          #72
                          با پردازش تصویر ربات چه کارهایی را می تواند انجام بدهد؟
                          تشخیص و دنبال کردن اشیاء و افراد: ربات می‌تونه چهره‌ها رو شناسایی کنه یا یک توپ، شخص یا وسیله خاص رو دنبال کنه.

                          تشخیص حرکت و موقعیت: بفهمه کی کجاست، یا وقتی چیزی حرکت می‌کنه واکنش نشون بده.

                          خواندن نوشته‌ها و اعداد: مثل پلاک خودرو، کد QR، یا حتی متن روی تابلوها.

                          تشخیص حالت‌های احساسی: با تحلیل چهره، تشخیص بده طرف خوشحاله، ناراحته یا گیج.

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

                          ناوبری خودکار: مثلا تو ربات‌های جاروبرقی یا خودروهای خودران، که بتونند محیط رو ببینند و مسیر خودشون رو پیدا کنند.

                          تشخیص اشیاء و طبقه‌بندی: بفهمه چه چیزهایی در محیط هست، مثل مبل، میز، دیوار، یا حیوانات.

                          تعامل بهتر با انسان: مثلاً با شناسایی ژست‌ها و حرکات دست، بدون نیاز به کنترلر، فرمان بگیره.


                          در واقع، پردازش تصویر به ربات قدرت “دیدن” و فهمیدن دنیای اطرافش رو می‌ده و این باعث می‌شه خیلی باهوش‌تر و کاربردی‌تر باشه.



                          دیدگاه


                            #73
                            حالا که محیط کار یعنی کدبلوک را یاد گرفتید و سورس opencv را هم برای کدبلوک کامپایل کردید، ویک برنامه opencv هم با هم کار کردیم. می توانید آموزشهای موجود در سایتهای فارسی را بخوانید. مثل سایت زیر:
                            آموزش OpenCV کتابخانه کامپیوتر ویژن یکی از معروف‌ترین کتابخانه‌های بینایی کامپیوتر


                            یعنی زیاد لازم نیست فقط از این تاپیک opencv یاد بگیرید. سایتهای خارجی شاید بهتر هم باشه.

                            و ما شاید بخواهیم گریز بزنیم به موضوعات دیگر مثل اتصال به ربات از کامپیوتر و یا بحث های دیگر.

                            دیدگاه


                              #74
                              بنام خدا. سلام به همه خوانندگان.
                              امروز ۱۷ خرداد ۱۴۰۴ است.
                              برای مدتی کوتاه یا طولانی یا خیلی طولانی در این تاپیک کار نخواهم کرد چون درگیر کارهای دیگر هستم.
                              جمع بندی تاپیک:
                              در گوشی ترموکس را نصب کردیم و بعد piilow را نصب کردیم که کارهای سبک روی عکس انجام می داد.
                              در کامپیوتر سورس opencv را کامپایل کردیم تافایلهای لازم برای کدبلوک(یا dev c ) فراهم شود.
                              در کدبلوک به شکل مصور طرز معرفی فایلهای تولید شده در کامپایل به کدبلوک را گفتیم. اولین برنامه opebcv در کدبلوک را نوشتیم و اجرا کردیم.

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

                              اگر از کدبلوک خوشتان نمی اید با vc code می توانید کار کنیم یا با نرم افزارهای پایتونی.
                              جدیدترین ویرایش توسط Saman110; ۲۰:۱۱ ۱۴۰۴/۰۳/۱۷.

                              دیدگاه


                                #75
                                مدتی وقفه ایجاد شد.یک ماه وقفه ایجاد شد. امروز ۶ تیر است.۱۴۰۴

                                یکی دو پست می زنم فعلا تا کار برود جلو.

                                من قصد دارم از esp32 cam استفاده کنم بخاطر دوربینش و داشتن wi fi ، در فروشگاهها شکل و قیمتش را ببینید ، الا حدود ۶۰۰ هزار تومن است. بلوتوث هم دارد. میشه تصویرش را در کامپیوتر دید. از طریق مودم adslخانه ارتباط برقرار می شود.
                                جدیدترین ویرایش توسط Saman110; ۱۶:۵۸ ۱۴۰۴/۰۴/۰۶.

                                دیدگاه

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