Історія створення іншої роботи. Частина друга, "це живий!"

Продовжуємо серію публікацій про створення простих колісних робіт на мікроконтролері ATmega16A.
У другій частині моєї публікації я описую процес створення і складання мого робота. Почнемо з виготовлення друкованої плати та закінчуємо відео перших кроків (або ж, прокручування коліс) нашого пристрою. Я також зверне увагу на перший досвід програмування для ПК в Qt, а саме створення програми для управління та обміну даними з роботом над Bluetooth.
Якщо ви хочете, ви можете познайомитися з першим виданням і дізнатися, як це все почалося, добре, я попрослю всіх інших під kata.




Остання частина завершилась з тим, що у нас була вже готова плата, яка означає, що це час для створення та передачі нашої ідеї від електронної версії до реального відчутного світу, це не те, що бажання змащувати в голові кожного радіолюбителя, інженера, винахідника?! У мене було лише 1мм-фактура на руках, тому я почав процес перенесення візерунка треків на дошку з стандартом LUT.

Про нас


, Україна

Наступним кроком було отруєння! Я спробував новий метод офорту з перекисом водню і лимонною кислотою, метод, безумовно, безпечний і дуже дешевий, але я знайшов його занадто чутливим до пропорції компонентів. Після години магічної маніпуляції контейнера з розчином, процес пішов з гідною силою (не варто сказати, що ви можете змінити шаблон пластини, а потім все буде помітно швидше).



р.

80-90% доріжок на дошці добре виявилося, але так як доріжок були переважно 0,2 мм, з'явилися трави, які я ліквідував паяльником і тонкими провідниками, завдяки їм я зробив перехідні отвори. В цілому весь процес раціонації приймав 3 п.м.





Моторам довелося переїхати на нижню частину дошки, так як я зрозумів, що потрібно максимальний проміжок між дошкою і поверхнею, на якій потрібно їздити, але все ж робот вийшов з низькою посадкою.
І так як ми пам'ятали про мотори, то пам'ятаємо ідею енкодера, так як магніти я замовив буквально половину міліметра в діаметрі менше, ніж слоти в колеса, вони повинні бути зафіксовані якось, і як ми знаємо всі геній простий - я просто взяв і поїхав їх там, заливаючи їх з клейового пістолета, не дуже естетично, але швидко і практичне. Головне не вплутати поляризацію, або ще буде джемби з точністю, і вже маленькі - 12 магнітів на колесо, тобто 6 позитивів в свою чергу, і діаметром колеса 43 мм ми отримуємо близько 22 мм шляху, що траурується колесом в одній операції.

3610Р. 4200Р.

На дошці, в свою чергу, з невеликою різницею в висоту кладуть датчики Зал розуміти, в якому напрямку ми рухаємось.



Для застібки акумулятора, серва та ультразвукового далекоміра були надруковані на принтері 3D.

Тримач акумулятора.


Подавати тримач.


Тримач британського діапазону.


В кінці робота виявилася подібною.

р.

р.

І так, це просто намистина, намистина на товстому дроті, і це єдина нерозчинна задача дизайну. По суті, він не зобов'язаний вирішувати питання третього колеса, адже він запалився колесами, скручував серво і т.д.
У зв'язку з використанням 1 мм, робот здається плавним, але так як у нас невелика маса, це не впливає на його міцність і маневреність.
Ну, перше, що я хотів їздити по лінії, щоб говорити, перший досвід з автоматизованим управлінням.
Я не буду сказати, що я не програміст за фахом, і це, ймовірно, мій найсвіжіші точки в хобі, тому будь ласка, не критикуйте код занадто багато, в будь-якому випадку я впевнений, що я повинен переписати всю програму в майбутньому.

Програма тестування була написана, що реалізовано алгоритмом PD. Він складається з обробника ADC і самого основного циклу даних.

Консерватор Interrupt#define Головна_ADC_INPUT 2 #деффін ЛИСТ_ADC_INPUT English, Українська, Français...
Реалізація PIDif (adc_ready ==== 1) { adc_l = (real_adc [1]+real_adc2); adc_r = (real_adc128 +real_adc[4]); помилка = (adc_l-adc_r); delta_error = помилка - старий_error; //sum_error +=; PID = помилка = Kp *error + Kd *delta_error; старий_error = помилка; (PID > 0); delta_error = помилка; pror = pr/dr = 0;

Я захочився побачити роботу, не а також на крутих відео з абсолютно гладкими і швидкими льонами, але для мене навіть цей результат був досягненням.



Після цього я заспокоївся трохи з частиною програмування самого мікроконтролера і зрозумів, що в майбутньому мені потрібно буде реалізувати програму управління роботою з ПК і почати навчання Qt, і з останнього комп'ютерної програми я написав тільки в університеті (на псалі) і це була певна стандартна лабораторна комп'ютерна наука, мої знання перебували в безпосередній близькості від нуля.

Оуттоп, про мої грандіозні плани для управління роботом з смартфона і як я дав і дав на ідеюВ цілому я був спочатку збуджена, щоб написати програму для мобільного телефону на Android, але я не хочу дізнатися Java, а точніше я не хочу залишити C, і у мене є друг, який був чутий в Qt і він може запитати багато. Спочатку я спробував зрозуміти, що Zen працює з QBluetooth і намагався зробити стик з HC-05 з китайським Jiayu g3, але кожен раз я прийшов через проблему, яка не дозволяла HC-05 і Jiayu бути друзями. Спочатку він гріхився на QBluetooth і той факт, що він не сприймає HC-05, але знайшов інформацію в Інтернеті, що люди курсують обмін даними через лінію модулів bluetooth HC з використанням QBluetooth або писати їх бібліотеки, після скарги на одне одного про їх тверде життя, написав програму в один день і все ще вдалося обмін даними з роботом, але, на жаль, через планшет. В кінці причина, що мій китайський не підтримує рфком, я дав і вирішив писати все для ПК.


Програма мала переключати режими роботи (повільнення лінії, контроль від клавіатури, автономного режиму) та надати (комплект) дані з усіх датчиків інтересу (серверів, датчиків лінії, ультразвукового діапазону, моторів, перетворювачів).
Після того, як пара тижнів була написана перша версія програми управління роботою. Я дуже люблю роботу з GUI в Qt - це зручно.



Я не вставляю код, тому я не можу заборонити для булінгу Xi. У лавці програма просто бере дані в QSerialPort і розподіляє їх на етикетки і віджети, у відповідь на таймер, при необхідності надсилає дані налаштування, такі як позиція серви і швидкість двигунів. зелене поле в програмі знаходиться в снях - майбутній карті розташування перед роботою.

Програма приймає всі доступні дані та тимчасово діє як дебугер. Поки я не впровадив управління з клавіатури, а автономний режим дуже сирий і робот, як тільки бачить перешкоду, обертається на заданому куті і намагається залишити в новому напрямку. В цілому, як я сказав, що проект в цілому є вологою в рамках програми.

У майбутньому ви хочете реалізувати грандіозні плани, які трохи затоплені розумінням, що потрібно переробити обидві програми на MK і PC повністю, тому що я зробив велику помилку і почав писати обидві програми як збитий шар пиріг, де один тестовий модуль приєднується до іншої, і не як строга система структурованої. Але головне, щоб не дати і продовжувати створювати до тих пір, поки що ви задумаєте у вашій голові.

P.S. У майбутньому я спробую писати іншу частину видання, щоб говорити, як я прогрес у програмній частині.

Джерело: habrahabr.ru/post/256209/