Машинка Arduino - как собрать и программа
HTML-код
- Опубликовано: 2 окт 2024
- Я уже давно увлекаюсь Arduino и понемногу делаю небольшие проекты. В прошлом году я начал собирать свою машинку, у которой в качестве мозга выступала бы плата Arduino. Для этого я купил пластмассовую платформу, на которую можно крепить все остальные детали, четыре двигателя и четыре колеса.
Плата Arduino у меня уже была. Но когда я начала изучать, как заставить колеса крутиться, то выяснилось, что нужна еще одна плата, которая и будет управлять двигателем. Пришлось заказывать ее.
- для управления двигателями я использовал плату L298N
- какой-то безымянный IR Receiver, у которого нет на плате никакого номера. Я вообще не знаю, там ставят какие-то номера или нет.
Текстовая версия этого видео и исходники можно скачать здесь:
www.flenov.inf...
Мой ИТ блог www.flenov.ru и www.flenov.info
Мой просто блог blo.moe
Facebook: / mikhailflenov
Tweeter: / flenov
Инстаграмм: / mflenov
Телеграмм: mflenov
Обо мне - Михаил Фленов - блогер, программист, бывший автор журнала Хакер (рубрики Кодинг и FAQ) и автор нескольких книг по программированию и безопасности. Хакером не являюсь, но безопасностью интересуюсь, в основном в области Web. Живу и работаю в Канаде с 2009-го года, в течении 9 лет работал на Sony и отвечал за их крупнейший e-commerce веб сайт
С меня лайк. Я вот тоже попробовал закинуть видосик по программированию микроконтроллеров. Типа на пробу, как зайдет, насколько интересно зрителям. Только я про ассемблерное программирование. Писал конечно и на сишке и даже паскаль есть под микроконтроллеры (на нем много писал). Но видео не зашло от слова совсем. Хотел отснять видосик по лазерному ЧПУ граверу на ардуинке (собрал даже), но забросил пока в этом направлении что либо снимать. Зрителю заходят скандалы, интриги, расследования. Зрелище нужно. Пока не придумал как снять, что бы было интересно, а не просто очередное уныло видео.
ruclips.net/video/1AO0XUXTmWU/видео.html
Просто по электронике тоже выкладывал видосики (на канале если порыть). Немного получше по просмотрам, но тоже уныленько.
почему "адрино" то?
"Ардуино" же, ну ли "адайно"
Не знаю, почему у меня так звучит
А кто как привык так и называет, можно и аДуриной и все поймут о чем речь)
@@leoha13ru абдурино. :)
Мне интересно ваше мнение как ардуино развивает как-то программиста? Может ардуино хорошо потому что пишешь на низкоуровневым С. Так как я все время работал с высокоуровневыми языками программирование типа: JavaScript, PHP(только основы и сделал проект по видео на RUclips, не понравился язык), перешёл на Python и на Python все легко тот же цикл for в Python или OОП Python это сказка в отличие от Java, но я перестал это ценить считая это как данное, извеняюсь за большой коммент просто, решил объяснить ситуация и узнать ваше мнение.
Ну язык С не на много сложнее тут, потому что особо с памятью не приходится работать. Можно писать код и даже указатели не использовать. Разве что со строками чуть сложнее работать. Если посмотреть на мой код, то там почти все простые числа, для которых не нужно выделять память в куче и все без проблем умещается в стеке. Да даже об этом можно не задумываться. Но в целом знание С на мой взгляд очень полезно.
@@programisli Спасибо за развернутый коммент.У вас самые необычные темы видео от алкоголь для программиста до
машинка на Arduino. Мне нравится такое разнообразие контента, спасибо и продолжайте дальше.
Почему скорость не регулируется? меняю вместо 255 первое значение (speed) на 150 у меня только одно колесо крутится (правое), я хочу чтобы помедленнее крутились двигатели
Спасибо, но как электронщик программисту, скажу, что можно проще. В кейсе processIrInput задавать матрицу моторов, а в основном цикле программы только один раз вызвать изменение состояния моторов. Да и моторы можно объединить в группы левая/правая. В общем все можно покороче написать.
И дальше чтобы рулить в движении нужно задать несколько скоростей моторов и в повороте изменять дельту скоростей на стороны.
Можно и так
@@programisli
Вот так у меня работает. Еще нужно добавить "газ" (скорость) на кнопки +/- громкости пульта.
#include
const int RECEIVER_PIN = 6;
const int LEFT_F = 9, LEFT_B = 10;
const int RIGHT_F = 7, RIGHT_B = 8;
int L_M = 0,R_M = 0;
// IR ресивер
IRrecv irrecv(RECEIVER_PIN);
decode_results results;
void setup()
{
//Serial.begin(9600);
setupMotors();
irrecv.enableIRIn();
}
void setupMotors()
{
pinMode(LEFT_F, OUTPUT); digitalWrite(LEFT_F, 0); pinMode(RIGHT_F, OUTPUT); digitalWrite(RIGHT_F, 0);
pinMode(LEFT_B, OUTPUT); digitalWrite(LEFT_B, 0); pinMode(RIGHT_B, OUTPUT); digitalWrite(RIGHT_B, 0);
}
void LeftMotor(int M1) {
switch (M1) {
case 1: // ---- вперед ---
digitalWrite(LEFT_F, 1); digitalWrite(LEFT_B, 0); break;
case 0: // ---- стоп -----
digitalWrite(LEFT_F, 0); digitalWrite(LEFT_B, 0); break;
case -1: // ---- назад ----
digitalWrite(LEFT_F, 0); digitalWrite(LEFT_B, 1); break;
}
}
void RightMotor(int M1) {
switch (M1) {
case 1: // ---- вперед ---
digitalWrite(RIGHT_F, 1); digitalWrite(RIGHT_B, 0); break;
case 0: // ---- стоп -----
digitalWrite(RIGHT_F, 0); digitalWrite(RIGHT_B, 0); break;
case -1: // ---- назад ----
digitalWrite(RIGHT_F, 0); digitalWrite(RIGHT_B, 1); break;
}
}
void processIrInput() {
if (!irrecv.decode(&results)) return;
//Serial.println(results.value, HEX);
switch (results.value) {
case 0xFDC837: // ======== Вперед =======
L_M =1; R_M=1; break;
case 0xFD28D7: // ======== Назад ========
L_M =-1; R_M=-1; break;
case 0xFD8877: // ======== Влево ========
if (L_M==0 and R_M==0) {L_M=-1; R_M=1;}
else if (L_M==-1 and R_M==-1) {L_M=0; R_M=-1;}
else {L_M=0; R_M=1;} break;
case 0xFD48B7: // ======== Вправо =======
if (L_M==0 and R_M==0) {L_M=1; R_M=-1;}
else if (L_M==-1 and R_M==-1) {L_M=-1; R_M=0;}
else {L_M=1; R_M=0;} break;
case 0xFD08F7: // ======== Стоп ========
L_M =0; R_M=0; break;
}
irrecv.resume();
}
// Главный цикл
void loop()
{
processIrInput();
LeftMotor(L_M); RightMotor(R_M);
}
@@programisli Хотя вчера только закончил собирать своего мелкого "робота" (чуть больше KOZMO), а программку твою вот только, что переделал для себя. :)))
Но хочу сделать все функции как у китайских наборов плюс, оживить немного как KOZMO. Типа танцы, фразочки и т.п. Только Arduino NANO для этого не хватит. :)) Но есть у меня Arduino Mega256 на совсем маленькой плате. Плюс SD карта для звуков.
жаль что на канале у тебя нет видео)
@@neodzen Это же нужно время на это. У АлексаГайвер смотрите, есть много интересного.
А я бы хотел на эмуляторе Протеус сделать симуляцию Энигмы и возможно машины для взлома Энигмы построенную в Блетчли парке во время второй мировой войны. :))
За АдРиНу диз...
Понимаю. Но вот такая у меня лажа, почему-то так говорю это слово.
@@programisli Ардуино... И все так называют) Прост слух зарезало страшно, а так - что хотел узнал. Спс)
Я знаю, как произносить, но.. ты знаешь, у меня сын тоже прекрасно знает, что правильно произносить паровоз, но он почему-то в детстве произносил павароз. Это что-то, что иногда неконтролируемо
круть
Занятная вещь
Ты уже посмотрел? Видео еще в плохом качестве, youtube все еще обрабатывает более высокое качество
На огрызке 7 плюс нормально было))))
@@programisli Миша, и сколько такая прелесть стоит? Я же правильно понимаю, что там не только машинки и главная вещь в ней тот контроллер куда ты все подсоединял. Или не так?
@@gomersimpson4203 Тоже цена интересная
Эти компоненты обошлись мне примерно в 30 долларов. Сама плата Arduino на eBay стоит кажется от 8 до 12 канадских долларов. Она дешевле Raspberry PI, потому что на много слабее
Подскажите пожалуйста, как правильно сделать обзор на свой продукт? Ибо я креатив не мое, сдала вот такое ruclips.net/video/GPmCFFOHXF4/видео.html
Сын тоже удивился почему адрино???
Я не знаю почему язык так поворачивается
А что будет, если провода к моторам не припаять, а просто прикрутить?
В смысле к тем четырем двигателям? Коннект будет плохой. Как временное решение можно и прикрутить
Да интересно, надо будет снегоуборочную машину замутить
В этом году в канаде столько снега, что не помешало бы.
а я уже начал мутить свой адронный коллайдер
Я вот всё хочу собрать тюрель, которая будет оснащена страйкбольным приводом. Типа должна трэкать двигающиеся обьекты, распознавать их и стрелять в определенные. В принципе не очень сложно. Тут главное начать. Попробовал OpenCV. В принципе работает. Но пока всё времени не нахожу.. или мотивация немного угасла.. х.з.
о_о программист взял паяльник
Бывает иногда для разнообразия. В 40 лет машинки поять.
Подскажите пожалуйста, какие внешние габариты этой машинки?
Где-то сантиметров 30 в длину и может 15 в ширину. Линейки под рукой нет, а смотрел ан Амазоне и никто габариты не дает
@@programisli а не могли бы при случае измерить?
В интернете нигде не могу найти размеры, а нам для детского конкурса нужен робот не более 25 см по любому из измерений.
он точно будет больше 25?
@@СтефанОрловский-ч1ц У меня получилось 25,5 сантиметра самая большая величина
@@programisli Спасибо большое!
А там можно напильничком эти 0,5 см укоротить? Не повлияет на функционал?
@@СтефанОрловский-ч1ц Не повлияет, спилить можно без проблем
сколько вы заплатили за все детали?
Около 70 канадских доллара
А где купить прогрмнуюкарту
Плату? я давно уже покупал на АлиЭкспресс
биографию только выдержал послушать.
В этом видео биографии как таковой нет
Михаил, можешь написать все заказники для этой машинки (платформа, движки, платы и тд).
Платформа стандартная, я видел только один такой вариант на eBay для четырех колесной машины. Есть еще для двух и для трех, а для четырех я видео только одну. Движка - на них ничего не написано, шли вместе с платформой. Платы - номер в описании к видео