Четверг, 24 Март 2016 13:00

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

На эту плату я установил уже не Arduino Duemillanove, как раньше, а Pro Mini. Он стоит в три раза дешевле, и его можно припаять и оставить на плате без сожаления.

 

Вторник, 15 Март 2016 20:53

Пришла пора научить моего машиноподобного робота объезжать препятствия. Для этого я пошел по простейшему пути – использовал ультразвуковой датчик расстояния HC-SR04.Угол распространения ультразвукового пучка у этого датчика довольно узкий (по моим оценкам, около 20о), а препятствия нужно обнаруживать со всех сторон от робота. Поэтому датчик был закреплен на маленьком сервомоторе 9g servo.

Воскресенье, 13 Март 2016 10:42

Следующий этап, который я решил предпринять на пути повышения «интеллекта» робота на Arduino – это научить его  ориентироваться в системе координат, и перемещаться в заданную двумя координатами точку.

Эта кажущаяся несложной задача заняла прилично времени и заставила перетряхнуть школьные знания по геометрии. Кто не говорил в школе фразу: «Да на кой черт мне все эти синусы – косинусы в жизни пригодятся?!» Ну, если кто с детства спал и видел себя инженером – то, может, и не говорил. Но я ж не инженер…

Итак, условия задачи. Робот едет вперед, его колеса вращаются с разной скоростью из-за разной мощности двигателей . Скорость эта ещё и не постоянная – я ведь все же пытаюсь её более-менее уравнять с помощью ШИМ.  В итоге едет он по неправильной кривой. Как точно рассчитать его положение  и текущее направление?

Четверг, 03 Март 2016 00:31

Начинаю программировать робота - машинку на Arduino. Первая задача - реализовать обратную связь между энкодерами колес и двигателями. Для чего это нужно?


Если стоит задача заставить машинку ехать прямо вперед, и при этом просто подать ток на двигатели - то из-за разной мощности двигателей (или разной силы трения колес) колеса робота будут вращаться с разной скоростью. Как следствие, робот будет ехать по кривой.

Выход только один: через небольшие промежутки времени проверять скорость вращения колес и корректировать её, подавая на двигатели большую или меньшую силу тока. 

Раз уж доступны данные с энкодеров - то почему не перевести их заодно в длину пути, пройденного каждым из колес? А тогда уже можно реализовать и прердвижение робота на вполне определенное расстояние, и его поворот на вполне конкретный угол.

Все это я сделал, программу можно скачать отсюда, файл с именем "LazyCarBot_04"

Объяснять её письменно мне лень, поэтому я сделал это на видео:

Там же можно увидеть, как мой молодой, но уже очень самонадеянный робот с Ардуино на борту передвигается под управлением этой программы.

Воскресенье, 21 Февраль 2016 15:06

Печатную плату для машинки – робота я сделал пока в предварительном варианте.  По большому счёту, можно пока обойтись и без неё, соединив всё на макетной плате.  Но на нормальной плате всё-таки удобней, так что вот она: