Оглавление:

Как сделать крутого робота из радиоуправляемой машины: 11 шагов
Как сделать крутого робота из радиоуправляемой машины: 11 шагов

Видео: Как сделать крутого робота из радиоуправляемой машины: 11 шагов

Видео: Как сделать крутого робота из радиоуправляемой машины: 11 шагов
Видео: Как Сделать Робота на Arduino UNO / How to Make a Robot on Arduino UNO 2024, Декабрь
Anonim
Как сделать крутого робота из радиоуправляемой машины
Как сделать крутого робота из радиоуправляемой машины

Этот крутой проект для старшеклассников или любого любителя, который хочет сделать крутого робота. Я долго пытался сделать интерактивного робота, но сделать его непросто, если вы не знаете никакой электроники или специальных языков программирования. Теперь существует совершенно бесплатный язык программирования nqBASIC, позволяющий создать своего собственного робота.

Шаг 1. Что вам нужно?

Что вам нужно?
Что вам нужно?
Что вам нужно?
Что вам нужно?
Что вам нужно?
Что вам нужно?
Что вам нужно?
Что вам нужно?

Для этого крутого проекта вам понадобятся некоторые детали. 1) Найдите радиоуправляемую машину с двумя двигателями постоянного тока. Я нашел очень дешевую машину под названием Thunder Tumbler за 12 долларов. Картинка ниже. 2) Вам понадобится плата контроллера серводатчика под названием SSMI. Вот ссылка для получения https://www.technologicalarts.ca/catalog/product_info.php? Currency = USD & products_id = 2763). Для этой платы вам понадобится микроконтроллер под названием NanoCore12DXhttps://www.technologicalarts.ca/catalog/ product_info.php? cPath = 50_36_92 & products_id = 4294) Если вы хотите сделать своего робота интерактивным, вам понадобятся два датчика. ваш робот для программирования. https://www.technologicalarts.ca/catalog/product_info.php? cPath = 26 & products_id = 386) Классный язык роботов, разработанный для этого продукта, называется nqBASIC. Зайдите на https://www.nqbasic.com и скачайте бесплатно. Вы также можете задать вопросы на их форуме. 7) 4 батарейки AA (щелочные или перезаряжаемые)

Шаг 2. Разберите радиоуправляемую машину на части

Разобрать радиоуправляемую машину
Разобрать радиоуправляемую машину

1) Вынул всю электронику. Отрежьте кабели от блока контроллера внутри радиоуправляемой машины, оставив только батарею, потому что это было правильным для питания SSMI (платы интерфейса сервопривода / датчика / двигателя для NanoCore12DX).

Шаг 3. Подключите кабели постоянного тока и аккумуляторные батареи

Прикрепленные кабели постоянного тока и аккумуляторные кабели
Прикрепленные кабели постоянного тока и аккумуляторные кабели

К двум двигателям постоянного тока R / C-автомобиля уже были подключены кабели, поэтому я подключил их к съемным разъемам (поставляется с платой SSMI) на моем SSMI. То же самое проделал и с аккумуляторным кабелем.

Шаг 4: светодиодные кабели

Светодиодные кабели
Светодиодные кабели
Светодиодные кабели
Светодиодные кабели
Светодиодные кабели
Светодиодные кабели
Светодиодные кабели
Светодиодные кабели

Осталось 4 кабеля. Они тонкие. Это тросы, идущие от колес. У этой радиоуправляемой машины есть светодиоды внутри задних колес. От каждого колеса идет по два кабеля. Ваш робот может быть красивым с этими светодиодами. Я решил использовать эти светодиоды, чтобы сделать робота веселее. Вы можете видеть эти кабели на картинке. Я установил черный кусок пластика, идущий с задней части автомобиля, на переднюю часть автомобиля, чтобы получилась плоская поверхность для крепления платы SSMI. Я использовал липучки для крепления на нем SSMI. Вы можете использовать двухсторонний скотч и немного стяжек, если хотите. Затем я вставил кабели светодиодов через отверстия в передней части автомобиля. Я установил SSMI на машину, а затем подключил электродвигатели постоянного тока и штекеры аккумуляторных батарей на их место.

Шаг 5: Подключите кабели светодиодов к плате SSMI

Подключите кабели светодиодов к плате SSMI
Подключите кабели светодиодов к плате SSMI
Подключите кабели светодиодов к плате SSMI
Подключите кабели светодиодов к плате SSMI
Подключите кабели светодиодов к плате SSMI
Подключите кабели светодиодов к плате SSMI

Затем вставьте кабели светодиодов в нужные места. Вам нужно узнать из руководства по плате SSMI, какие разъемы вы можете использовать. Вставьте их в те же места, что и я. Позже вы сможете научиться прокладывать эти кабели в разных местах, если захотите.

Шаг 6: Подключите датчики

Подключить датчики
Подключить датчики
Подключить датчики
Подключить датчики
Подключить датчики
Подключить датчики
Подключить датчики
Подключить датчики

Подключите кабели датчиков в нужные места.

Шаг 7: ваш робот готов к работе

Ваш робот готов к работе
Ваш робот готов к работе

Оборудование вашего робота готово. Теперь вам нужно его запрограммировать.

Шаг 8: Установите программное обеспечение

Установите программное обеспечение
Установите программное обеспечение

Перейдите на https://www.nqbasic.com и загрузите программное обеспечение с веб-сайта. Все инструкции есть на сайте - как установить и подготовить компьютер к этому. Также есть отличное видео на YouTube, в котором показано, как бесплатно зарегистрировать программу. Этот язык программирования абсолютно бесплатный. Не стесняйтесь регистрироваться. В противном случае вы не сможете скомпилировать свой код.

Шаг 9: Готовы к программированию

Готов к программированию
Готов к программированию

Подключите последовательный кабель от последовательного порта вашего компьютера к последовательному порту SSMI. 1) Запустите nqBASIC и выберите проект и новый проект 2) дайте имя вашему проекту и сохраните его. 3) Он спросит вас, какой модуль наноядра вы используете, выберите NanoCore12DX из списка. Это единственный модуль, который работает с SSMI. 4) Выберите File / New file. Он спросит, хотите ли вы добавить этот файл в свой проект. Скажите «Да». 5) Дайте имя файлу и нажмите «Сохранить».

Шаг 10: скопируйте и вставьте исходный код

/ * Скопируйте отсюда в конец этого текста Пример для DIP32 (8 МГц) * / dim M00 как новый pwm (PP0) dim M01 как новый pwm (PP1) dim M11 как новый pwm (PP2) dim M10 как новый pwm (PP3) dim IR1 as new ADC (PAD05) // ADC object for Sharp Sensor (Front) dim IR1Result as new bytedim IR2 as new ADC (PAD03) // ADC object for Sharp Sensor (Back) dim IR2Result as new bytedim myChar as new byte / / Переменная для сохранения полученных символовdim S как новый SCI (PS0, PS1) // SCI objectdim SPK как новый DIO (PM4) // Использование динамика в SSIMconst ontime = 20dim duration как новое словоConst A2 = 2273 // Music notesConst A3 = 1136 // Музыкальные нотыConst A4 = 568 // Музыкальные ноты для воспроизведения звука, когда робот видит что-то тусклое WLED1 как новый DIO (PM2) // Светодиоды на колесах затемняют WLED2 как новый DIO (PM3) // Светодиоды на колесе затемняют петлю как новый байтConst OFF = 0Const ON = 1Const FOREVER = 1Const A = 200Const B = 10Const DEL_1MSEC = 1000sub DelayMsec (в байтовых миллисекундах), в то время как (миллисекунды> 0) System. Delay (DEL_1MSEC) // Задержка 1000 микросекунд до 1 миллисекунды миллисекунды onds = миллисекунды - 1 конец whileend subsub stop () // для остановки двигателей M00. PWM_Start (PWM_MAIN_CLK, 0, 250, 250) M01. PWM_Start (PWM_MAIN_CLK, 0, 250, 250) M10. PWM_Start (PWM_MAIN_CLK, 0, 250) M11. PWM_Start (PWM_MAIN_CLK, 0, 250, 250) end subsub goback () // робот вернется назад M00. PWM_Start (PWM_MAIN_CLK, 0, 250, 180) M01. PWM_Start (PWM_MAIN_CLK, 0, 250, 250) M10. PWM_Start (PWM_MAIN_CLK, 0, 250, 180) M11. PWM_Start (PWM_MAIN_CLK, 0, 250, 250) end subsub turnright () // повернуть робота вправо M00. PWM_Start (PWM_MAIN_CLK, 0, 250, 250) M01. PWM_Start (PWM_MAIN_CLK, 0, 250, 180) M10. PWM_Start (PWM_MAIN_CLK, 0, 250, 250) M11. PWM_Start (PWM_MAIN_CLK, 0, 250, 250) end subsub turnleft () // повернуть робота налево M00. PWM_Start (PWM_MAIN_CLK, 0, 250, 250) M01. PWM_Start (PWM_MAIN_CLK, 0, 250, 250) M10. PWM_Start (PWM_MAIN_CLK, 0, 250, 250) M11. PWM_Start (PWM_MAIN_GOD, конец подзаголовка, 0 () // заставляем робота двигаться вперед M00. PWM_Start (PWM_MAIN_CLK, 0, 250, 250) M01. PWM_Start (PWM_MAIN_CLK, 0, 250, 180) // левый пост. Ток M10. PWM_Start (PWM_MAIN_CLK, 0, 250, 250) M11. PWM_Start (PWM_MAIN_CLK, 0, 250, 180) // правый подпод sub wait3 () // мои собственные задержки DelayMsec (A) DelayMsec (A) DelayMsec (A) end sububub wait4 () DelayMsec (A) DelayMsec (A) DelayMsec (A) DelayMsec (A) end sububub wait5 () DelayMsec (A) DelayMsec (A) DelayMsec (A) DelayMsec (A) DelayMsec (A)) end subsub wait10 () // long delay loop = 1 while (loop <11) DelayMsec (A) loop = loop + 1 end whileend subsub playsound () // воспроизводить ноты duration = ontime while (duration> 0) SPK. PIN_Out (PM4, ON) system. Delay (A2) SPK. PIN_Out (PM4, Off) system. Delay (A2) duration = duration - 1 end while DelayMsec (B) duration = ontime while (duration> 0) SPK. PIN_Out). (PM4, ON) system. Delay (A3) SPK. PIN_Out (PM4, Off) system. Delay (A3) duration = duration - 1 end while DelayMsec (B) duration = ontime while (Длительность> 0) SPK. PIN_Out (PM4, ON) system. Delay (A4) SPK. PIN_Out (PM4, Off) system. Delay (A4) duration = duration - 1 end while DelayMsec (B) end sub main PWM. PWM_Res_PP0145 (TIMER_D), IV_16, 0) PWM. PWM_Res_PP23 (TIMER_DIV_16, 0) S. SER_Setup (SER_BUFFER_4, BAUD9600) // Настроить SCI и разрешить буферизацию 4 символов System. INTS_On () // ВКЛЮЧИТЬ ПРЕРЫВАНИЯ! S. SER_Put_string ("Это тест") S. SER_Put_char ('\ n') S. SER_Put_char ('\ r') while (FOREVER) IR1. ADC_Start (WAIT, ADC_MODE_8ONCE) // Считываем значение с переднего датчика резкости IR1. ADC_Read (PAD05, IR1Result) IR2. ADC_Start (WAIT, ADC_MODE_8ONCE) // Считываем значение с заднего датчика резкости IR2. ADC_Read (PAD03, IR2Result) S. SER_Put_decimal (IR2Result, FILLUP_SPACE) // отправляем значение в гиперссылку окна) // отправляем значение терминал S. SER_Put_char ('\ n') // создаем новую строку на гипертерминале S. SER_Put_char ('\ r') if ((IR1Result == 25) или (IR1Result> 25)) stop () playsound () wait5 () WLED1. PIN_Out (PM2, ON) WLED2. PIN_Out (PM3, ON) goback () wait5 () if ((IR2Result == 25) или (IR2Result> 25)) stop () playsound () wait5 () turnleft () wait3 () goahead () end if turnright () wait3 () else goahead () end if if ((IR2Result == 25) или (IR2Result> 25)) WLED1. PIN_Out (PM2, ON) WLED2. PIN_Out (PM3, ON) stop () wait5 () turnright () wait3 () WLED1. PIN_Out (PM2, OFF) WLED2. PIN_Out (PM3, OFF) goahead () wait3 () else goahead () end if end whileend m айн

Шаг 11: скомпилируйте и загрузите в свой робот

Убедитесь, что вы вставили батареи в своего робота и включили его. Вы должны увидеть зеленый светодиодный индикатор питания, светящийся на SSMI. На модуле Nanocore12DX есть небольшой переключатель, убедитесь, что он находится в положении нагрузки. Нажмите переключатель сброса на SSMI. Зайдите в nqbasic и выберите Build and load. Он скомпилирует ваш код и загрузит его в вашего робота. Отсоедините последовательный кабель от вашего робота и переключите переключатель из положения нагрузки в рабочее положение на модуле NanoCore12DX. Поместите робота на плоскую поверхность и нажмите кнопку сброса на SSMI. Поздравляем! Если у вас возникнут проблемы с этими шагами, не стесняйтесь писать на форуме nqBASIC. Я буду там и отвечу на все ваши вопросы. Удачи!

Рекомендуемые: