فهرست مطالب:

Servodriver-Board With Python-GUI and Arduino: 5 Step
Servodriver-Board With Python-GUI and Arduino: 5 Step

تصویری: Servodriver-Board With Python-GUI and Arduino: 5 Step

تصویری: Servodriver-Board With Python-GUI and Arduino: 5 Step
تصویری: Gesture-Controlled Servo with Python and Arduino #electronics #arduinotraining 2024, جولای
Anonim
Servodriver-Board با Python-GUI و Arduino
Servodriver-Board با Python-GUI و Arduino

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

اگر نمی خواهید کل سیستم 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؛ }

توصیه شده: