Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Радиоуправляемый автомобиль с Wi-Fi - Qi включен

Компоненты и расходные материалы

Комплект прототипа передатчика Qi 5W IDT
× 1
Комплект прототипа приемника IDT Qi 5W
× 1
Arduino MKR1000
× 1
• Шасси робота 2WD для Arduino
× 1
L293DNE
× 1
CN6009 - Модуль повышающего преобразователя мощности
× 1
Литий-полимерная батарея 3,7 В
× 1
1N4007 - высоковольтный диод с высоким номинальным током
× 8
LED (общий)
× 1
Резистор 221 Ом
× 1
Галстуки
× 5
Макет (общий)
(Необязательно)
× 1

Необходимые инструменты и машины

Паяльник (общий)
Пистолет для горячего клея (общий)
Отвертка
Вольтметр

Приложения и онлайн-сервисы

IDE Arduino

Об этом проекте

Что вы построите в этом проекте?

Это проект, который шаг за шагом покажет вам, как создать радиоуправляемую машину с Wi-Fi, которая будет автоматически заряжаться по беспроводной сети, когда она припаркована.

Как это работает?

Мозгом проекта является Arduino MKR1000, который подключается через Wi-Fi к вашему мобильному устройству. Плата Arduino питается от литий-полимерной батареи 3,7 В. Для управления двигателем используется драйвер двигателя L293DNE. Однако для работы требуется не менее 4,5 В. Мы повысим напряжение с 3,7 В до 5 В с помощью повышающего модуля преобразователя мощности (преобразует низкое напряжение в более высокое), и таким образом драйвер двигателя будет питаться от 5 В.

Для зарядки аккумулятора на плате Arduino MKR1000 имеется автоматическая система зарядки Li-Po аккумуляторов. Когда подключен внешний источник (5 В постоянного тока), аккумулятор, подключенный к плате, заряжается. Итак, IDT P9025AC-R-EVK - Qi 5W Приемник будет подключен к плате Arduino как внешний источник (5 В постоянного тока). Когда автомобиль припаркован над зарядной станцией (это IDT P9038-R-EVK - Qi 5W Передатчик), аккумулятор зарядится.

Система управления имеет два скоростных режима:быстрый и медленный.

Как его построить?

Аппаратная часть

Припаяйте провода к полюсам двигателя и на плате приемника IDT (вывод OUT с красным проводом и контакт GND с черным проводом). Для этого вам понадобится паяльник и 6 проводов.

Изготовление электронной схемы. Вы можете использовать макетную плату для создания своей схемы или припаять все соединения.

ВНИМАНИЕ! Используйте Li-Po аккумулятор на 3,7 В с емкостью не менее 700 мАч! В противном случае аккумулятор может перегреться и взорваться!

Регулировка CN6009. Модуль повышающего преобразователя мощности до 5В. Чтобы отрегулировать выходное значение CN6009, используйте отвертку. Обязательно проверьте выходное напряжение (подключив вольтметр к контактам OUT + и OUT-).

Подключение приемника IDT Wireless Power Qi 5W. Возьмите кусок пластика (например, пластиковую карту), чтобы сделать подставку для беспроводного приемника питания на днище автомобиля. Затем при помощи силикона приклеиваем к днищу автомобиля деталь из пластика и ресивер. Наконец, подключите красный провод приемника IDT к контакту VIN Arduino, а черный провод - к контакту GND.

Обеспечение устойчивости автомобиля. Закрепите стяжками аккумулятор и макетную плату к автомобилю.

Программная часть - соединение Wi-Fi

Для этой части просто скопируйте код. В файле кода введите SSID и пароль вашей сети (строки 12, 13 в файле кода). Вам нужно следовать инструкциям по комментариям. Код в настоящее время настроен для работы с сетями WPA / WPA2. Если вы хотите подключиться к WEP или открытой сети, следуйте инструкциям в комментариях кода (строки 34–37).

Как им пользоваться?

Шаг 1. Подключение к Arduino MKR1000

Для управления автомобилем требуется соединение Wi-Fi. Этого можно добиться двумя способами. Первый - включить точку доступа Wi-Fi на мобильном устройстве и подключить плату к точке доступа. Второй - подключить мобильное устройство и плату Arduino к одному и тому же маршрутизатору Wi-Fi. Обязательно укажите параметры SSID и пароля вашего маршрутизатора в файле кода, который будет загружен на плату Arduino.

Примечание. Лучше использовать первый метод (точка доступа Wi-Fi), потому что таким образом вы можете управлять своим автомобилем без маршрутизатора.

Шаг 2. Получение IP-адреса Arduino MKR1000

Если плата Arduino подключена к точке доступа вашего мобильного устройства, перейдите в настройки точки доступа Wi-Fi и там вы увидите IP-адрес вашей платы (например, 192.168.1.1).

Если плата Arduino подключена к маршрутизатору Wi-Fi, вам необходимо проверить это в настройках маршрутизатора.

Светодиод на автомобиле указывает на успешное подключение к указанной сети и активацию сервера.

Шаг 3. Доступ к веб-серверу Arduino MKR1000

Перейдите в браузер и в поле URL введите IP-адрес вашего Arduino.

Шаг 4. Подключение зарядной базы

Подключите передатчик IDT P9038-R-EVK - Qi 5 Вт к розетке с помощью адаптера постоянного тока 5 В

Шаг 5. Удачи!

Время зарядки !!

Тест-драйв:

Гербер-файлы PCBWeb

Код

  • Arduino_IDT_Wi-Fi_Car.ino
Arduino_IDT_Wi-Fi_Car.ino Arduino
Замените пример и пароль в строках 12-13 на ваш ssid и пароль соответственно.
 #include  #include  const int motor1Control =2; // Правый motorconst int motor2Control =3; // Левый моторconst int motor1Input1 =4; const int motor1Input2 =5; const int motor2Input1 =8; const int motor2Input2 =9; const int wifiLed =10; // Для индикации успешного подключения к Wi-Fichar ssid [] ="example"; // Введите SSID (имя) вашей сети char pass [] ="пароль"; // Введите свой сетевой пароль int keyIndex =0; // Введите номер индекса вашего сетевого ключа (необязательно - требуется только для WEP) int status =WL_IDLE_STATUS; String readString; WiFiServer server (80); // Определяем порт serverString speedMode ="fast"; void setup () {pinMode (motor1Control, OUTPUT); pinMode (motor2Control, ВЫХОД); pinMode (мотор1Вход1, ВЫХОД); pinMode (мотор1Вход2, ВЫХОД); pinMode (мотор2Вход1, ВЫХОД); pinMode (мотор2Вход2, ВЫХОД); pinMode (Wi-Fi, ВЫХОД); // Попытка подключиться к сети Wi-Fi:while (status! =WL_CONNECTED) {// Подключиться к сети WPA / WPA2. Измените эту строку, если используете открытую сеть или сеть WEP:// Для сети WEP замените на:status =WiFi.begin (ssid, keyIndex, pass); // Для открытой сети замените на:status =WiFi.begin (ssid); status =WiFi.begin (ssid, pass); // ждем 10 секунд подключения:delay (10000); } // Запускаем веб-сервер server.begin (); // Указываем, что на сервере работает digitalWrite (wifiLed, HIGH);} void loop () {// Слушать входящих клиентов WiFiClient client =server.available (); if (client) {// http-запрос заканчивается пустой строкой boolean currentLineIsBlank =true; в то время как (client.connected ()) {если (client.available ()) {char c =client.read (); // Если вы дошли до конца строки (получили // символ новой строки) и строка пуста, HTTP-запрос завершен, // поэтому вы можете отправить ответ if (readString.length () <100 ) {// сохраняем символы в строку readString + =c; } if (c =='\ n') {// отправляем стандартный HTTP-заголовок ответа client.println ("HTTP / 1.1 200 OK"); client.println ("Content-Type:text / html"); client.println (); client.println (""); client.println (""); client.println ("<заголовок>"); client.println ("<стиль>"); client.println ("a.button {-webkit-appearance:button;"); client.println ("- moz-внешний вид:кнопка;"); client.println ("внешний вид:кнопка;"); client.println ("высота:400 пикселей;"); client.println ("высота строки:400 пикселей;"); client.println ("выравнивание текста:центр;"); client.println ("украшение текста:нет;"); client.println ("размер шрифта:100 пикселей;"); client.println ("цвет:начальный;}"); client.println (""); client.println (""); client.println ("<тело>"); // Кнопка для перемещения вперед client.println (" FORWARDS 
"); client.println ("
"); // Кнопка поворота влево client.println (" ВЛЕВО "); // Кнопка остановки автомобиля client.println (" STOP " ); // Кнопка поворота вправо client.println (" ВПРАВО "); client.println ("
"); // Кнопка для перемещения назад client.println (" НАЗАД "); client.println ("
"); client.println ("
"); // Кнопка для перемещения назад client.println ("

РЕЖИМЫ СКОРОСТИ

"); client.println (" БЫСТРО "); client.println (" SLOW "); client.println (" "); client.println (" "); break;} // Решаем, какая кнопка была нажата (если есть) // Кнопка быстрого режима if (readString.indexOf ("? fast ")> 0) {speedMode ="fast"; // Очищаем readString, чтобы получить следующую команду readString ="";} // Кнопка медленного режима if (readString.indexOf ("? Slow")> 0) {speedMode ="slow"; // Очищаем readString, чтобы получить следующую команду readString ="";} // Быстрый режим if (speedMode =="fast") {if (readString.indexOf ("? moveForwards")> 0 ) {moveForwards (); // Очищаем readString, чтобы получить следующую команду readString ="";} if (readString.indexOf ("? moveBackwards")> 0) {moveBackwards (); // Очищаем readString до иметь возможность получить следующую команду readString ="";}} else if (speedMode =="slow") {// Медленный режим if (readString.indexOf ("? moveForwards")> 0) {moveForwardsSlow (); // Очистите readString, чтобы получить следующую команду r eadString =""; } если (readString.indexOf ("? moveBackwards")> 0) {moveBackwardsSlow (); // Очищаем readString, чтобы получить следующую команду readString =""; }} если (readString.indexOf ("? turnLeft")> 0) {turnLeft (); // Очищаем readString, чтобы получить следующую команду readString =""; } если (readString.indexOf ("? turnRight")> 0) {turnRight (); // Очищаем readString, чтобы получить следующую команду readString =""; } если (readString.indexOf ("? stopMoving")> 0) {stopMoving (); // Очищаем readString, чтобы получить следующую команду readString =""; }}} // Даем браузеру время на получение данных delay (1); // Закрываем соединение:client.stop (); }} // Команды для движения впередvoid moveForwards () {digitalWrite (motor1Control, HIGH); digitalWrite (motor2Control, HIGH); digitalWrite (motor1Input1, LOW); digitalWrite (motor1Input2, HIGH); digitalWrite (motor2Input1, LOW); digitalWrite (motor2Input2, HIGH);} // Команды для перемещения назадvoid moveBackwards () {digitalWrite (motor1Control, HIGH); digitalWrite (motor2Control, HIGH); digitalWrite (motor1Input1, HIGH); digitalWrite (motor1Input2, LOW); digitalWrite (motor2Input1, HIGH); digitalWrite (motor2Input2, LOW);} // Команды для поворота вправоvoid TurnRight () {// Для более медленного вращения предоставляется более низкое напряжение - лучший контроль analogWrite (motor1Control, 0); analogWrite (motor2Control, 200); digitalWrite (motor1Input1, HIGH); digitalWrite (motor1Input2, LOW); digitalWrite (motor2Input1, LOW); digitalWrite (motor2Input2, HIGH);} // Команды для поворота влево. analogWrite (motor2Control, 0); digitalWrite (motor1Input1, LOW); digitalWrite (motor1Input2, HIGH); digitalWrite (motor2Input1, HIGH); digitalWrite (motor2Input2, LOW);} // Команды для остановки carvoid stopMoving () {digitalWrite (motor1Control, LOW); digitalWrite (motor2Control, LOW); digitalWrite (motor1Input1, LOW); digitalWrite (motor1Input2, LOW); digitalWrite (motor2Input1, LOW); digitalWrite (motor2Input2, LOW);} // Команды для движения вперед на низкой скоростиvoid moveForwardsSlow () {analogWrite (motor1Control, 200); analogWrite (motor2Control, 200); digitalWrite (motor1Input1, LOW); digitalWrite (motor1Input2, HIGH); digitalWrite (motor2Input1, LOW); digitalWrite (motor2Input2, HIGH);} // Команды для низкоскоростного обратного движенияvoid moveBackwardsSlow () {analogWrite (motor1Control, 200); analogWrite (motor2Control, 200); digitalWrite (motor1Input1, HIGH); digitalWrite (motor1Input2, LOW); digitalWrite (motor2Input1, HIGH); digitalWrite (motor2Input2, LOW);}

Изготовленные на заказ детали и корпуса

Arduino% 20IDT% 20Wireless% 20charging% 20wifi% 20car.cad

Схема


Производственный процесс

  1. С# конструктор
  2. Вложенный класс С#
  3. Перегрузка конструктора C#
  4. Растущая угроза Интернета вещей с поддержкой Wi-Fi
  5. Точно изготовленные детали двигателя автомобиля
  6. Понимание системы автомобильного домкрата
  7. Как устранить утечку газа в машине?
  8. Влияет ли обновление автомобиля на гарантию?
  9. Как починить дверную ручку автомобиля
  10. Как отремонтировать ржавчину на машине?