فهرست مطالب:
- مرحله 1: آنچه شما نیاز دارید…
- مرحله 2: لحیم کاری هیئت مدیره
- مرحله 3: راه اندازی آردوینو
- مرحله 4: راه اندازی پایتون
- مرحله 5: جایی که جادو اتفاق می افتد
تصویری: Servodriver-Board With Python-GUI and Arduino: 5 Step
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:56
هنگام انجام نمونه سازی یا ساخت هواپیماهای نمونه ، اغلب با این مشکل روبرو می شوید که باید سفرهای سروو را بررسی کنید یا سروها را در موقعیت وسط قرار دهید.
اگر نمی خواهید کل سیستم RC یا آزمایش خود را بسازید ، تا چه اندازه می توانید سروو را فشار دهید یا موقعیت وسط کجاست ، این صفحه برای شما مناسب است! این به شما امکان می دهد سروو را به موقعیت های مشخص منتقل کنید یا اجازه دهید به عقب و این طرف سفر کنیم.
عملکرد فوق العاده ای دارد ، حتی با 6 سرو که از یک موقعیت به موقعیت دیگر در حلقه مسابقه می دهند.
همچنین ، این یک پروژه خوب برای یادگیری ارتباط بین Python-GUI و Arduino با استفاده از Serial است.
مرحله 1: آنچه شما نیاز دارید…
برای این پروژه به موارد زیر نیاز دارید:
سخت افزار
- آردوینو نانو با کابل. من از یک کلون استفاده کردم ، و کد پایتون در واقع یک تراشه CH340 از یک کلون را انتظار دارد
- یک تخته نمونه سازی 7x5cm کافی است
- تعدادی هدر و پین 2 ، 54 میلی متری
- 1-6 سرو
- منبع تغذیه سرو (من از بسته با 4 باتری استفاده کردم)
نرم افزار
- پایتون 3:
- USB-Driver برای تراشه های CH340: فقط درایورهای درایورهای CH340 را در Google جستجو کنید
- Arduino IDE:
مرحله 2: لحیم کاری هیئت مدیره
مطابق Fritzing روی تصویر لحیم کاری در واقع مستقیم است. فقط مطمئن شوید که می توانید سروها را به راحتی به ردیف های 3 پین متصل کنید.
- ردیف های 3 پین به پین دیجیتال 3 ، 5 ، 6 ، 9 ، 10 و 11 نانو آردوینو متصل شده اند.
- سیم قرمز به پین 5 ولت آردوینو متصل شده است
- سیم سیاه به پین GND آردوینو متصل است
- این جفت پین در زیر ردیف های 3 پین برای اتصال منبع تغذیه معمولی گیرنده RC طراحی شده است ، می توانید اتصال دهنده ها را به دلخواه اضافه کنید ، مانند پیچ های پایینی ، اتصالات XT ، JST یا … یا…
شخصاً ، من ردیف سرصفحه های زنانه را برای قرار دادن آردوینو دوست دارم ، اما این به شما بستگی دارد.
لطفاً توجه داشته باشید که هدرهای کوتاه زنانه یک جهنده هستند که به شما امکان می دهد سروو را با استفاده از منبع 5 ولت آردوینو برای آزمایش آزمایش کنید. اگر بیش از حد به آن فشار بیاورید ، آردوینو تنظیم مجدد شده و سرعت مناسب را از دست می دهد. آنها باید قبل از اتصال منبع تغذیه دیگر برداشته شوند.
مرحله 3: راه اندازی آردوینو
Arduino IDE را نصب کرده و Arduino nano را با طرح ضمیمه شده فلش کنید.
مرحله 4: راه اندازی پایتون
پس از بارگیری Python 3 را نصب کنید. مطمئن شوید گزینه ایجاد متغیر "PATH" را بررسی کنید.
شما باید دو بسته دیگر با استفاده از pip نصب کنید. برای این کار ، کلید "Windows" را فشار دهید ، "cmd" را تایپ کرده و "enter" را فشار دهید. در خط فرمان دستورات زیر را تایپ کنید:
- سریال نصب پیپ
- piip install pyserial
- پیک نصب tkinter
همانطور که می بینید ، من نیاز به سریال ماژول ها و همچنین pyserial دارم ، که به احتمال زیاد کارآمدترین نیست ، زیرا pyserial باید جایگزین سریال شود. با این وجود کار می کند و من تازه شروع به یادگیری کردم؛).
Python-Script را در IDE باز کرده و اجرا کنید یا مستقیماً از ترمینال اجرا کنید.
در منوی کشویی ، می توانید بین دو حالت "Go Straight" و "Ping Pong" یکی را انتخاب کنید:
- برو مستقیم: Servo-Position را در میکرو ثانیه در ستون اول وارد کرده و "شروع" را فشار دهید تا سروو به موقعیت مشخص شده حرکت کند.
- پینگ پنگ: در ستون دوم و سوم یک مرز پایینی و یک قسمت بالایی وارد کنید. اینها موقعیت پایین و بالا هستند که بین آنها سروو به عقب و عقب بر می گردد. در ستون "زمان پینگ پنگ" می توانید زمانی را در میلی ثانیه مشخص کنید که سروو وقتی به موقعیت بالا یا پایین برسد منتظر می ماند. "شروع" را فشار دهید و سروو به عقب و جلو شروع به حرکت می کند ، "توقف" را فشار دهید و سرو متوقف می شود.
مرحله 5: جایی که جادو اتفاق می افتد
آخرین و مهمترین نکته این است که من می خواهم به برخی از جزئیات مربوط به کد برای کسانی که مایل به برقراری ارتباط سریعی بین پایتون و آردوینو هستند اشاره کنم.
حال ، در برنامه پایتون چه اتفاقی می افتد؟
اول از همه ، برنامه آنچه را که در این خط به پورت های COM متصل شده است بررسی می کند و در یک لیست ذخیره می کند:
self. COMPortsList = لیست (serial.tools.list_ports.comports ())
سپس از طریق لیست حلقه می شود تا یک تراشه CH340 بدنام پیدا کند ، آن را ذخیره کرده و پس از حلقه for یک اتصال سریال برقرار کند. توجه داشته باشید که حلقه for به محض یافتن اولین CH340 می شکند.
برای p در self. COMPortsList: اگر "CH340" در p [1]: # به دنبال خود Aroneino Clone باشید. COMPort = p [0] break else: pass self. Ser = serial. Serial (self. COMPort، 57600)
اتصال سریال با پورت COM با سرعت 57600 برقرار می شود.
و کد آردوینو چه کار می کند؟ خوب ، از آنجا که آردوینو فقط یک پورت COM دارد ، اتصال سریال فقط یک خط است:
Serial.begin (57600) ؛
در حال حاضر ، ما می توانیم از هر دو پورت برای برقراری ارتباط استفاده کنیم. در این مورد ، فقط پیام های پایتون به آردوینو ارسال می شود. پیامها از پایتون به اینجا ارسال می شوند. اتصال سریال بایت ها را به صورت پیش فرض منتقل می کند. این همچنین سریعترین راه برای ارسال اطلاعات است و تا آنجا که من می دانم هنوز هم بسیار گسترده است. بنابراین ints تعداد سروو (بنابراین آردوینو می داند کدام سروو را حرکت دهد) و موقعیت در میکرو ثانیه به یک بایت تبدیل می شود.
Command = struct.pack ('> B'، self. Place) # متغیر int "self. Place" به یک بایت تبدیل می شود
self. Ser. > B '، Command) # تبدیل int در یک بایت خود. Ser.write (Command) # نوشتن بایت در سریال-پورت
همچنین ، تجزیه و تحلیل داده ها زمان می برد (برای مثال تفسیر چهار بایت "1" ، "2" ، "3" و "0" به عنوان int 1230 ، نه به عنوان چهار کاراکتر مختلف) و بهتر است این کار را در آردوینو انجام ندهید.
در سمت آردوینو ، اطلاعات ارسال شده به شرح زیر است:
اگر (Serial.available ()> 1) {// اگر داده های سریال موجود است ، حلقه c = Serial.read () وارد می شود ؛ // اولین بایت (تعداد سروو) در متغیر Micros = Serial.read () ذخیره می شود. // موقعیت سروو در اینجا ذخیره می شود Micros = Micros * 10؛ }
توصیه شده:
DIY Smart Doorbell: Code، Setup and HA Integration: 7 Step (with Pictures)
DIY Smart Doorbell: Code، Setup and HA Integration: در این پروژه ، به شما نشان خواهم داد که چگونه می توانید بدون تغییر هیچ یک از عملکردهای فعلی یا قطع سیم ، زنگ خانه عادی خود را به یک زنگ هوشمند تبدیل کنید. من از یک تخته ESP8266 به نام Wemos D1 mini استفاده خواهم کرد. در ESP8266 جدید هستید؟ به معرفی من توجه کنید
Beats by Davinci: Kirtlynn M. and Hannah S .: 8 Step
Beats by Davinci: Kirtlynn M. and Hannah S .: نحوه ساخت هدفون توسط Hannah و Kirtlynn
TCA9548A I2C Multiplexer Module - With Arduino and NodeMCU: 11 Step
ماژول چند منظوره TCA9548A I2C - با Arduino و NodeMCU: آیا تا به حال در موقعیتی قرار گرفته اید که مجبور شوید دو ، سه یا چند سنسور I2C را به آردوینو خود وصل کنید فقط برای اینکه متوجه شوید سنسورها دارای آدرس I2C ثابت یا یکسان هستند. علاوه بر این ، نمی توانید دو دستگاه با آدرس یکسان در SDA یکسان داشته باشید
Realtime MPU-6050/A0 Logging Data with Arduino and Android: 7 Step (with Pictures)
Realtime MPU-6050/A0 ثبت اطلاعات با Arduino و Android: من علاقه مند به استفاده از Arduino برای یادگیری ماشین هستم. به عنوان اولین قدم ، من می خواهم یک نمایش داده و ثبت اطلاعات در زمان واقعی (یا تقریباً نزدیک به آن) با یک دستگاه Android ایجاد کنم. من می خواهم اطلاعات شتاب سنج را از MPU-6050 بگیرم ، بنابراین طراحی می کنم
Arduino MusicStump: Light، Captive Touch and a Buzzer: 3 Step
Arduino MusicStump: Light، Captive Touch and a Buzzer: یک درخت تعاملی با یک حلقه LED در بالا ، یک زنگ صدا برای ایجاد صدا و یک حسگر لمسی در داخل که با لمس آن رنگ را تغییر می دهد. برای ایجاد این چیز کوچک سرگرم کننده به موارد زیر نیاز دارید: لوازم الکترونیکی:- 1 برابر Arduino Uno- 15 برابر کابل- 1 برابر تا