Сборка простейшего робота по инструкции

Скачать материал

Выберите документ из архива для просмотра:


Робот пятиминутка.pptx


Собачья упряжка.pptx


моделирование.pptx

Выбранный для просмотра документ Робот пятиминутка.pptx

Сборка робота NXT «Пятиминутка»

Скачать материал

Рабочие листы

к вашим урокам

Скачать

  • Сейчас обучается 101 человек из 35 регионов

аудиоформат

Описание презентации по отдельным слайдам:

  • Сборка робота NXT «Пятиминутка»

    1 слайд

    Сборка робота NXT «Пятиминутка»

  • Базовая машина-робот, которую можно построить быстро, чтобы запустить тес...

    2 слайд

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

  • Шаг 1. Подготовить детали

    3 слайд

    Шаг 1. Подготовить детали

  • Шаг 2...

  • Шаг 4. Подготовить детали



 Шаг 4. Шаг 4. Шаг 3        Шаг 5....

    5 слайд

    Шаг 4. Подготовить детали

    Шаг 4. Шаг 4. Шаг 3 Шаг 5.

  • Шаг 6.

  • Необходимо вставить в NXT либо шести батареек АА, или специализированный б...

    7 слайд

    Необходимо вставить в NXT либо шести батареек АА, или специализированный блок «аккумуляторная батарея NXT».

  • Шаг 7. Подготовить детали



    
 Шаг 8.

    8 слайд

    Шаг 7. Подготовить детали

    Шаг 8.

  • Шаг 9.
                                         Шаг 10.

  • Шаг  11.  Подготовить детали




 Шаг 12.

    10 слайд

    Шаг 11. Подготовить детали

    Шаг 12.

  • Шаг  13.  Подготовить детали

    11 слайд

    Шаг 13. Подготовить детали

  • Шаг 14.

  • Шаг 15. Используйте два средних длинных провода для подключения двух двигател...

    13 слайд

    Шаг 15. Используйте два средних длинных провода для подключения двух двигателей привод в порты В и С на NXT. Внимание: Убедитесь, что порт B подключен мотору на той же стороне B, и C с двигателем на стороне C.

  • Шаг 12. Можно приступать к проектированию 
                   программы для р...

    14 слайд

    Шаг 12. Можно приступать к проектированию
    программы для робота
    Задача
    Составьте алгоритм движения ЛЕГО-робота вперед в течение 5 секунд, поворота направо и движения вперед в течение 5 секунд.

    Составим возможный алгоритм. Действия выполняются последовательно.

  • В основной палитре выберем блок движение [шаг1] и поместим его на рабочей обл...

    15 слайд

    В основной палитре выберем блок движение [шаг1] и поместим его на рабочей области для составления алгоритма [шаг 2], выполним настройки, соответствующие условию задачи, движение вперед (оба двигателя В и С направление вперед) в течение 5 секунд (продолжительность 5 сек) [шаг 3].

  • Далее выбираем блок движение и применяем настройки – поворот вправо (отключае...

    16 слайд

    Далее выбираем блок движение и применяем настройки – поворот вправо (отключаем двигатель В, двигатель С совершает один оборот) [шаг 4]

  • Опять выбираем блок движение и применяем настройки – движение вперед (оба дви...

    17 слайд

    Опять выбираем блок движение и применяем настройки – движение вперед (оба двигателя В и С направление вперед) в течение 5 сек. (продолжительность 5 сек) [шаг 5]

  • Составленный алгоритм надо передать роботу, чтобы он его выполнил. Для переда...

    18 слайд

    Составленный алгоритм надо передать роботу, чтобы он его выполнил. Для передачи будем использовать USB-кабель, который подключается к ЛЕГО — роботу и персональному компьютеру и пульт управления в рабочей области [шаг 6].

  • Литература

Филиппов С.А. Робототехника для детей и родителей.
       С/Пб «Н...

    19 слайд

    Литература

    Филиппов С.А. Робототехника для детей и родителей.
    С/Пб «Наука» 2019 г.

Рабочие листы

к вашим урокам

Скачать

Выбранный для просмотра документ Собачья упряжка.pptx

Подробная инструкция сборки робота «Собачья упряжка»

Скачать материал

Рабочие листы

к вашим урокам

Скачать

Описание презентации по отдельным слайдам:

  • Подробная инструкция сборки робота «Собачья упряжка»

    1 слайд

    Подробная инструкция сборки робота
    «Собачья упряжка»

  • 1

  • 2

Рабочие листы

к вашим урокам

Скачать

Выбранный для просмотра документ моделирование.pptx

автомоделирование

Скачать материал

Рабочие листы

к вашим урокам

Скачать

Описание презентации по отдельным слайдам:

  • автомоделирование

    1 слайд

    автомоделирование

  • Бот - внедорожник

    44 слайд

    Бот — внедорожник

  • Исследователь

Рабочие листы

к вашим урокам

Скачать

Краткое описание документа:

Робот – исследователь, Робот — бот, предназначены для изучения грунта в трудно доступных местах и опасных для человека. Он занимается изучением местности, рельефа, исследует поверхность в целях поиска природных ископаемых, берет грунт на пробу и везет на анализ в лабораторию, в местах взятия грунта выкидывает «Радиометки», определяющие координаты, при необходимости может пробурить грунт. Этот робот может стать реальным помощником человека для разведки полезных ископаемых в трудно доступных местах.

На основе микропроцессоров EV3 и NXT, деталей конструктора Lego создать робота, осуществляющего изучение грунта в трудно доступных местах и опасных для человека, в целях поиска природных ископаемых.

Технические характеристики: Робот-исследователь – это многофункциональный робот, оснащенный: Блоком NXT, EV3. Сервомотором – 6 шт. Датчик касания – 1 шт. Ультрозвуковой датчик – 1 шт Цветовой датчик – 1 шт.

Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

6 347 115 материалов в базе

  • Выберите категорию:

  • Выберите учебник и тему

  • Выберите класс:

  • Тип материала:

    • Все материалы

    • Статьи

    • Научные работы

    • Видеоуроки

    • Презентации

    • Конспекты

    • Тесты

    • Рабочие программы

    • Другие методич. материалы

Найти материалы

Другие материалы

  • 21.05.2020
  • 711
  • 3

Рейтинг:
5 из 5

  • 21.05.2020
  • 424
  • 19
  • 21.05.2020
  • 763
  • 12
  • 21.05.2020
  • 678
  • 20
  • 21.05.2020
  • 356
  • 9
  • 21.05.2020
  • 194
  • 1
  • 21.05.2020
  • 361
  • 0
  • 21.05.2020
  • 243
  • 0

Вам будут интересны эти курсы:

  • Курс профессиональной переподготовки «Экскурсоведение: основы организации экскурсионной деятельности»

  • Курс профессиональной переподготовки «Логистика: теория и методика преподавания в образовательной организации»

  • Курс повышения квалификации «Маркетинг в организации как средство привлечения новых клиентов»

  • Курс профессиональной переподготовки «Организация маркетинга в туризме»

  • Курс профессиональной переподготовки «Организация деятельности помощника-референта руководителя со знанием иностранных языков»

  • Курс профессиональной переподготовки «Разработка эффективной стратегии развития современного вуза»

  • Курс профессиональной переподготовки «Организация технической поддержки клиентов при установке и эксплуатации информационно-коммуникационных систем»

  • Курс повышения квалификации «Актуальные вопросы банковской деятельности»

  • Курс профессиональной переподготовки «Деятельность по хранению музейных предметов и музейных коллекций в музеях всех видов»

  • Курс профессиональной переподготовки «Организация деятельности специалиста оценщика-эксперта по оценке имущества»

  • Курс профессиональной переподготовки «Организация и управление службой рекламы и PR»

  • Курс профессиональной переподготовки «Организация маркетинговой деятельности»

  • Курс профессиональной переподготовки «Стратегическое управление деятельностью по дистанционному информационно-справочному обслуживанию»


Download Article


Download Article

Do you want to learn how to build your own robot? There are a lot of different types of robots that you can make by yourself. Most people want to see a robot perform the simple tasks of moving from point A to point B. You can make a robot completely from analog components or buy a starter kit from scratch! Building your own robot is a great way to teach yourself both electronics as well as computer programming.

  1. Image titled 1123333 1

    1

    Gather your components. To build a basic robot, you’ll need several simple components. You can find most, if not all, of these components at your local electronics hobby shop, or several online retailers. In fact, some basic kits may include all of these components as well. This robot does not require any soldering:

    • Arduino Uno (or other microcontroller)[1]
    • 2 continuous rotation servos
    • 2 wheels that fit the servos
    • 1 caster roller
    • 1 small solderless breadboard (look for a breadboard that has two positive and negative lines on each side)
    • 1 distance sensor (with four-pin connector cable)
    • 1 mini push-button switch
    • 1 10kΩ resistor
    • 1 USB A to B cable
    • 1 set of breakaway headers
    • 1 6 x AA battery holder with 9V DC power jack
    • 1 pack of jumper wires or 22-gauge hook-up wire
    • Strong double-sided tape or hot glue
  2. Image titled 1123333 2

    2

    Flip the battery pack over so that the flat back is facing up. You’ll be building the robot’s body using the battery pack as a base.

    Advertisement

  3. Image titled 1123333 3

    3

    Align the two servos on the end of the battery pack. This should be the end that the battery pack’s wire is coming out of The servos should be touching bottoms, and the rotating mechanisms of each should be facing out the sides of the battery pack. The servos must be properly aligned so that the wheels go straight. The wires for the servos should be coming off the back of the battery pack.

  4. Image titled 1123333 4

    4

    Affix the servos with your tape or glue.[2]
    Make sure that they are solidly attached to the battery pack. The backs of the servos should be aligned flush with the back of the battery pack.

    • The servos should now be taking up the back half of the battery pack.
  5. Image titled 1123333 5

    5

    Affix the breadboard perpendicularly on the open space on the battery pack. It should hang over the front of the battery pack just a little bit and will extend beyond each side. Make sure that it is securely fastened before proceeding. The «A» row should be closest to the servos.

  6. Image titled 1123333 6

    6

    Attach the Arduino microcontroller to the tops of the servos. If you attached the servos properly, there should be a flat space made by them touching. Stick the Arduino board onto this flat space so that the Arduino’s USB and Power connectors are facing the back (away from the breadboard). The front of the Arduino should be just barely overlapping the breadboard.

  7. Image titled 1123333 7

    7

    Put the wheels on the servos. Firmly press the wheels onto the rotating mechanism of the servo. This may require a significant amount of force, as the wheels are designed to fit as tightly as possible for the best traction.

  8. Image titled 1123333 8

    8

    Attach the caster to the bottom of the breadboard. If you flip the chassis over, you should see a bit of breadboard extending past the battery pack. Attach the caster to this extended piece, using risers if necessary. The caster acts as the front wheel, allowing the robot to easily turn in any direction.[3]

    • If you bought a kit, the caster may have come with a few risers that you can use to ensure the caster reaches the ground. i
  9. Advertisement

  1. Image titled 1123333 9

    1

    Break off two 3-pin headers. You’ll be using these to connect the servos to the breadboard. Push the pins down through the header so that the pins come out at an equal distance on both sides.

  2. Image titled 1123333 10

    2

    Insert the two headers into pins 1-3 and 6-8 on row E of the breadboard. Make sure that they are firmly inserted.[4]

  3. Image titled 1123333 11

    3

    Connect the servo cables to the headers, with the black cable on the left side (pins 1 and 6). This will connect the servos to the breadboard. Make sure the left servo is connected to the left header and the right servo to the right header.

  4. Image titled 1123333 12

    4

    Connect red jumper wires from pins C2 and C7 to red (positive) rail pins. Make sure you use the red rail on the back of the breadboard (closer to the rest of the chassis).

  5. Image titled 1123333 13

    5

    Connect black jumper wires from pins B1 and B6 to blue (ground) rail pins. Make sure that you use the blue rail on the back of the breadboard. Do not plug them into the red rail pins.

  6. Image titled 1123333 14

    6

    Connect white jumper wires from pins 12 and 13 on the Arduino to A3 and A8. This will allow the Arduino to control the servos and turn the wheels.

  7. Image titled 1123333 15

    7

    Attach the sensor to the front of the breadboard. It does not get plugged into the outer power rails on the breadboard, but instead into the first row of lettered pins (J). Make sure you place it in the exact center, with an equal number of pins available on each side.

  8. Image titled 1123333 16

    8

    Connect a black jumper wire from pin I14 to the first available blue rail pin on the left of the sensor. This will ground the sensor.

  9. Image titled 1123333 17

    9

    Connect a red jumper wire from pin I17 to the first available red rail pin to the right of the sensor. This will power the sensor.

  10. Image titled 1123333 18

    10

    Connect white jumper wires from pin I15 to pin 9 on the Arduino, and from I16 to pin 8. This will feed information from the sensor to the microcontroller.

  11. Advertisement

  1. Image titled 1123333 19

    1

    Flip the robot on its side so that you can see the batteries in the pack. Orient it so that the battery pack cable is coming out to the left at the bottom.

  2. Image titled 1123333 20

    2

    Connect a red wire to the second spring from the left on the bottom. Make sure that the battery pack is oriented correctly.

  3. Image titled 1123333 21

    3

    Connect a black wire to the last spring on the bottom-right. These two cables will help provide the correct voltage to the Arduino.

  4. Image titled 1123333 22

    4

    Connect the red and black wires to the far-right red and blue pins on the back of the breadboard. The black cable should be plugged into the blue rail pin at pin 30. The red cable should be plugged into the red rail pin at pin 30.

  5. Image titled 1123333 23

    5

    Connect a black wire from the GND pin on the Arduino to the back blue rail. Connect it at pin 28 on the blue rail.

  6. Image titled 1123333 24

    6

    Connect a black wire from the back blue rail to the front blue rail at pin 29 for each. Do not connect the red rails, as you will likely damage the Arduino.

  7. Image titled 1123333 25

    7

    Connect a red wire from the front red rail at pin 30 to the 5V pin on the Arduino. This will provide power to the Arduino.

  8. Image titled 1123333 26

    8

    Insert the push button switch in the gap between rows on pins 24-26. This switch will allow you to turn off the robot without having to unplug the power.

  9. Image titled 1123333 27

    9

    Connect a red wire from H24 to the red rail in the next available pin to the right of the sensor. This will power the button.

  10. Image titled 1123333 28

    10

    Use the resistor to connect H26 to the blue rail. Connect it to the pin directly next to the black wire that you connected a few steps ago.

  11. Image titled 1123333 29

    11

    Connect a white wire from G26 to pin 2 on the Arduino. This will allow the Arduino to register the push button.

  12. Advertisement

  1. Image titled 1123333 30

    1

    Download and extract the Arduino IDE. This is the Arduino development environment and allows you to program instructions that you can then upload to your Arduino microcontroller. You can download it for free from arduino.cc/en/main/software. Unzip the downloaded file by double-clicking it and move the folder inside to an easy to access location. You won’t be actually installing the program. Instead, you’ll just run it from the extracted folder by double-clicking arduino.exe.[5]

  2. Image titled 1123333 31

    2

    Connect the battery pack to the Arduino. Plug the battery back jack into the connector on the Arduino to give it power.

  3. Image titled 1123333 32

    3

    Plug the Arduino into your computer via USB. Windows will likely not recognize the device.

  4. Image titled 1123333 33

    4

    Press . Win+R and type devmgmt.msc. This will launch the Device Manager.

  5. Image titled 1123333 34

    5

    Right-click on the «Unknown device» in the «Other devices» section and select «Update Driver Software.» If you don’t see this option, click «Properties» instead, select the «Driver» tab, and then click «Update Driver.»

  6. Image titled 1123333 35

    6

    Select «Browse my computer for driver software.» This will allow you to select the driver that came with the Arduino IDE.

  7. Image titled 1123333 36

    7

    Click «Browse» then navigate to the folder that you extracted earlier. You’ll find a «drivers» folder inside.

  8. Image titled 1123333 37

    8

    Select the «drivers» folder and click «OK.» Confirm that you want to proceed if you’re warned about unknown software.

  9. Advertisement

  1. Image titled 1123333 38

    1

    Start the Arduino IDE by double-clicking the arduino.exe file in the IDE folder. You’ll be greeted with a blank project.

  2. Image titled 1123333 39

    2

    Paste the following code to make your robot go straight. The code below will make your Arduino continuously move forward.

    #include <Servo.h> // this adds the "Servo" library to the program
    
    // the following creates two servo objects
    Servo leftMotor;
    Servo rightMotor;
    
    void setup()
    {
        leftMotor.attach(12); // if you accidentally switched up the pins for your servos, you can swap the numbers here
        rightMotor.attach(13);
    }
    
    
    void loop()
    {
        leftMotor.write(180); // with continuous rotation, 180 tells the servo to move at full speed "forward."
        rightMotor. write(0); // if both of these are at 180, the robot will go in a circle because the servos are flipped. "0," tells it to move full speed "backward."
    }
    
  3. Image titled 1123333 40

    3

    Build and upload the program. Click the right arrow button in the upper-left corner to build and upload the program to the connected Arduino.

    • You may want to lift the robot off of the surface, as it will just continue to move forward once the program is uploaded.
  4. Image titled 1123333 41

    4

    Add the kill switch functionality. Add the following code to the «void loop()» section of your code to enable the kill switch, above the «write()» functions.

    if(digitalRead(2) == HIGH) // this registers when the button is pressed on pin 2 of the Arduino
    {
        while(1)
        {
            leftMotor.write(90); // "90" is neutral position for the servos, which tells them to stop turning
            rightMotor.write(90);
        }
    }
    
  5. Image titled 1123333 42

    5

    Upload and test your code. With the kill switch code added, you can upload and test the robot. It should continue to drive forward until you press the switch, at which point it will stop moving. The full code should look like this:

    #include <Servo.h>
    
    // the following creates two servo objects
    Servo leftMotor;
    Servo rightMotor;
    
    void setup()
    {
        leftMotor.attach(12); 
        rightMotor.attach(13);
    }
    
    
    void loop()
    {
        if(digitalRead(2) == HIGH) 
        {
            while(1)
            {
                leftMotor.write(90); 
                rightMotor.write(90);
            }
        }
    
        leftMotor.write(180); 
        rightMotor.write(0); 
    }
    
  6. Advertisement

  1. 1

    Follow an example. The following code will use the sensor attached to the robot to make it turn to the left whenever it encounters an obstacle. See the comments in the code for details about what each part does. The code below is the entire program.

    #include <Servo.h>
    
    Servo leftMotor;
    Servo rightMotor;
    
    const int serialPeriod = 250;       // this limits output to the console to once every 1/4 second
    unsigned long timeSerialDelay = 0;
    
    const int loopPeriod = 20;          // this sets how often the sensor takes a reading to 20ms, which is a frequency of 50Hz
    unsigned long timeLoopDelay   = 0;
    
    // this assigns the TRIG and ECHO functions to the pins on the Arduino. Make adjustments to the numbers here if you connected differently
    const int ultrasonic2TrigPin = 8;
    const int ultrasonic2EchoPin = 9;
    
    int ultrasonic2Distance;
    int ultrasonic2Duration;
    
    // this defines the two possible states for the robot: driving forward or turning left
    #define DRIVE_FORWARD     0
    #define TURN_LEFT         1
    
    int state = DRIVE_FORWARD; // 0 = drive forward (DEFAULT), 1 = turn left
    
    void setup()
    {
        Serial.begin(9600);
      
        // these sensor pin configurations
        pinMode(ultrasonic2TrigPin, OUTPUT);
        pinMode(ultrasonic2EchoPin, INPUT);
        
        // this assigns the motors to the Arduino pins
        leftMotor.attach(12);
        rightMotor.attach(13);
    }
    
    
    void loop()
    {
        if(digitalRead(2) == HIGH) // this detects the kill switch
        {
            while(1)
            {
                leftMotor.write(90);
                rightMotor.write(90);
            }
        }
    
        debugOutput(); // this prints debugging messages to the serial console
        
        if(millis() - timeLoopDelay >= loopPeriod)
        {
            readUltrasonicSensors(); // this instructs the sensor to read and store the measured distances
            
            stateMachine();
            
            timeLoopDelay = millis();
        }
    }
    
    
    void stateMachine()
    {
        if(state == DRIVE_FORWARD) // if no obstacles detected
        {
            if(ultrasonic2Distance > 6 || ultrasonic2Distance < 0) // if there's nothing in front of the robot. ultrasonicDistance will be negative for some ultrasonics if there is no obstacle
            {
                // drive forward
                rightMotor.write(180);
                leftMotor.write(0);
            }
            else //  if there's an object in front of us
            {
                state = TURN_LEFT;
            }
        }
        else if(state == TURN_LEFT) // if an obstacle is detected, turn left
        {
            unsigned long timeToTurnLeft = 500; // it takes around .5 seconds to turn 90 degrees. You may need to adjust this if your wheels are a different size than the example
            
            unsigned long turnStartTime = millis(); // save the time that we started turning
    
            while((millis()-turnStartTime) < timeToTurnLeft) // stay in this loop until timeToTurnLeft has elapsed
            {
                // turn left, remember that when both are set to "180" it will turn.
                rightMotor.write(180);
                leftMotor.write(180);
            }
            
            state = DRIVE_FORWARD;
        }
    }
    
    
    void readUltrasonicSensors()
    {
        // this is for ultrasonic 2. You may need to change these commands if you use a different sensor.
        digitalWrite(ultrasonic2TrigPin, HIGH);
        delayMicroseconds(10);                  // keeps the trig pin high for at least 10 microseconds
        digitalWrite(ultrasonic2TrigPin, LOW);
        
        ultrasonic2Duration = pulseIn(ultrasonic2EchoPin, HIGH);
        ultrasonic2Distance = (ultrasonic2Duration/2)/29;
    }
    
    // the following is for debugging errors in the console.
    void debugOutput()
    {
        if((millis() - timeSerialDelay) > serialPeriod)
        {
            Serial.print("ultrasonic2Distance: ");
            Serial.print(ultrasonic2Distance);
            Serial.print("cm");
            Serial.println();
            
            timeSerialDelay = millis();
        }
    }
    

Add New Question

  • Question

    How much time will it take to build a robot?

    Community Answer

    This depends on the complexity of the robot. You could build a simple robot in as little as a day. A more complex robot could take several several months.

  • Question

    What is the device called that you need to move robotic hands, arms and legs?

    Community Answer

    Servos (servomotors) are usually used to move robotic arms. Regular servos have a limited circulation.

  • Question

    Why do I need to download the Arduino software?

    Community Answer

    Arduino code is very simplified and based off of C++. Other micro controllers are also available that use other software.

See more answers

Ask a Question

200 characters left

Include your email address to get a message when this question is answered.

Submit

Advertisement

Thanks for submitting a tip for review!

References

About This Article

Article SummaryX

To build a simple robot that can move on its own, purchase a starter kit, or assemble the components you need from an electronics supplier. You’ll need a microcontroller, the small computer that will serve as your robot’s brain; a pair of continuous rotation servos to drive the wheels; wheels that fit the servos; a caster roller; a small solderless breadboard for building your circuits; a battery holder; a distance sensor; a push button switch, and jumper wires. Affix the servos to the end of the battery pack with double-sided tape or hot glue, making sure the the rotating ends of the servos are on the long sides of the battery pack. Attach the breadboard to the battery pack next to the servos with the tape or hot glue. Place the microcontroller on the flat space on top of the servos and affix firmly there. Press the wheels firmly onto the spindles of the servos. Attach the caster to the front of the breadboard. The caster spins freely, and acts as the front wheel of the robot, making it easy to turn and roll in any direction. Plug the distance sensor to the front of your breadboard. Wire up your robot, connecting the servos, microcontroller, switch and battery pack to your breadboard. Connect your microcontroller to a computer via a USB cable. Upload a basic control program from your computer to the microcontroller. This robot can go forward, backward, stop, and turn away from obstacles. Test your robot on a smooth flat surface, and experiment to see what you can make it do. For more tips, including how to use Arduino software, read on!

Did this summary help you?

Thanks to all authors for creating a page that has been read 1,728,459 times.

Reader Success Stories

  • LaLa Love

    «The fact that you actually give a list of supplies is great. This is the first website that I found that actually…» more

Is this article up to date?

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

Изготовление робота Теперь, вы выбрали все основные компоненты для сборки робота. Изготовление робота начинается со следующего шага —

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

Датчики роботов В отличие от человека, роботы не ограничены только зрением, слухом, осязанием, обонянием и вкусом. Датчики роботов бывают разных типов.

Способы управления роботом Управление роботом является сложной задачей. Определение, которое мы выбрали для «робота», требует, чтобы устройство получало

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

Выбор микроконтроллера Для создания робота нужно сделать правильный выбор микроконтроллера. Сначала нужно разобраться с понятием, что такое микроконтроллер

Моторы для робота Двигатели для робота входят в состав приводов. Мы узнали о робототехнике в целом на шаге первом. На втором шаге решили, какого робота

Платформа для робота Платформа для робота имеет не самое последнее значение. Теперь после первого шага, у вас есть базовое понимание того, что такое роботы

Начало робототехники История робототехники идёт из глубокой древности и насчитывает не одну сотню лет. Еще до новой эры люди стали создавать себе автоматизированных помощников.

Создаем робота в домашних условиях

Время на прочтение
8 мин

Количество просмотров 200K


Наверняка, насмотревшись фильмов про роботов, тебе не раз хотелось построить своего боевого товарища, но ты не знал с чего начать. Конечно, у тебя не получится построить двуногого терминатора, но мы и не стремимся к этому. Собрать простого робота может любой, кто умеет правильно держать паяльник в руках и для этого не нужно глубоких знаний, хотя они и не помешают. Любительское роботостроение мало чем отличается от схемотехники, только гораздо интереснее, потому что тут так же затронуты такие области, как механика и программирование. Все компоненты легкодоступны и стоят не так уж и дорого. Так что прогресс не стоит на месте, и мы будем его использовать в свою пользу.

Введение

Итак. Что же такое робот? В большинстве случаев это автоматическое устройство, которое реагирует на какие-либо действия окружающей среды. Роботы могут управляться человеком или выполнять заранее запрограммированные действия. Обычно на роботе располагают разнообразные датчики (расстояния, угла поворота, ускорения), видеокамеры, манипуляторы. Электронная часть робота состоит из микроконтроллера (МК) – микросхема, в которую заключён процессор, тактовый генератор, различная периферия, оперативная и постоянная память. В мире существует огромное количество разнообразных микроконтроллеров для разных областей применения и на их основе можно собирать мощных роботов. Для любительских построек широкое применение нашли микроконтроллеры AVR. Они, на сегодняшний день, самые доступные и в интернете можно найти много примеров на основе этих МК. Чтобы работать с микроконтроллерами тебе нужно уметь программировать на ассемблере или на Cи и иметь начальные знания в цифровой и аналоговой электронике. В нашем проекте мы будем использовать Cи. Программирование для МК мало чем отличается от программирования на компьютере, синтаксис языка такой же, большинство функций практически ничем не отличаются, а новые довольно легко освоить и ими удобно пользоваться.

Что нам нужно

Для начала наш робот будет уметь просто объезжать препятствия, то есть повторять нормальное поведение большинства животных в природе. Всё что нам потребуется для постройки такого робота можно будет найти в радиотехнических магазинах. Решим, как наш робот будет передвигаться. Самым удачным я считаю гусеницы, которые применяются в танках, это наиболее удобное решение, потому что гусеницы имеют большую проходимость, чем колёса машины и ими удобнее управлять (для поворота достаточно вращать гусеницы в разные стороны). Поэтому тебе понадобится любой игрушечный танк, у которого гусеницы вращаются независимо друг от друга, такой можно купить в любом магазине игрушек по разумной цене. От этого танка тебе понадобится только платформа с гусеницами и моторы с редукторами, остальное ты можешь смело открутить и выкинуть. Так же нам потребуется микроконтроллер, мой выбор пал на ATmega16 – у него достаточно портов для подключения датчиков и периферии и вообще он довольно удобный. Ещё тебе потребуется закупить немного радиодеталей, паяльник, мультиметр.

Делаем плату с МК


Схема робота

В нашем случае микроконтроллер будет выполнять функции мозга, но начнём мы не с него, а с питания мозга робота. Правильное питание – залог здоровья, поэтому мы начнём с того, как правильно кормить нашего робота, потому что на этом обычно ошибаются начинающие роботостроители. А для того, чтобы наш робот работал нормально нужно использовать стабилизатор напряжения. Я предпочитаю микросхему L7805 – она предназначена, чтобы на выходе выдавать стабильное напряжение 5В, которое и нужно нашему микроконтроллеру. Но из-за того, что падение напряжения на этой микросхеме составляет порядка 2,5В к нему нужно подавать минимум 7,5В. Вместе с этим стабилизатором используются электролитические конденсаторы, чтобы сгладить пульсации напряжения и в цепь обязательно включают диод, для защиты от переполюсовки.
Теперь мы можем заняться нашим микроконтроллером. Корпус у МК — DIP (так удобнее паять) и имеет сорок выводов. На борту имеется АЦП, ШИМ, USART и много другого, что мы пока использовать не будем. Рассмотрим несколько важных узлов. Вывод RESET (9-ая нога МК) подтянут резистором R1 к «плюсу» источника питания – это нужно делать обязательно! Иначе твой МК может непреднамеренно сбрасываться или, проще говоря – глючить. Так же желательной мерой, но не обязательной является подключение RESET’а через керамический конденсатор C1 к «земле». На схеме ты так же можешь увидеть электролит на 1000 мкФ, он спасает от провалов напряжения при работе двигателей, что тоже благоприятно скажется на работе микроконтроллера. Кварцевый резонатор X1 и конденсаторы C2, C3 нужно располагать как можно ближе к выводам XTAL1 и XTAL2.
О том, как прошивать МК, я рассказывать не буду, так как об этом можно прочитать в интернете. Писать программу мы будем на Cи, в качестве среды программирования я выбрал CodeVisionAVR. Это довольно удобная среда и полезна новичкам, потому что имеет встроенный мастер создания кода.


Плата моего робота

Управление двигателями

Не менее важным компонентом в нашем роботе является драйвер двигателей, который облегчает нам задачу в управлении им. Никогда и ни в коем случае нельзя подключать двигатели напрямую к МК! Вообще мощными нагрузками нельзя управлять с микроконтроллера напрямую, иначе он сгорит. Пользуйтесь ключевыми транзисторами. Для нашего случая есть специальная микросхема – L293D. В подобных несложных проектах всегда старайтесь использовать именно эту микросхему с индексом «D», так как она имеет встроенные диоды для защиты от перегрузок. Этой микросхемой очень легко управлять и её просто достать в радиотехнических магазинах. Она выпускается в двух корпусах DIP и SOIC. Мы будем использовать в корпусе DIP из-за удобства монтажа на плате. L293D имеет раздельное питание двигателей и логики. Поэтому саму микросхему мы будем питать от стабилизатора (вход VSS), а двигатели напрямую от аккумуляторов (вход VS). L293D выдерживает нагрузку 600 мА на каждый канал, а этих каналов у неё два, то есть к одной микросхеме можно подключить два двигателя. Но, чтобы перестраховаться, мы объединим каналы, и тогда потребуется по одной микре на каждый двигатель. Отсюда следует, что L293D сможет выдержать 1.2 А. Чтобы этого добиться нужно объединить ноги микры, как показано на схеме. Микросхема работает следующим образом: когда на IN1 и IN2 подаётся логический «0», а на IN3 и IN4 логическая единица, то двигатель вращается в одну сторону, а если инвертировать сигналы – подать логический ноль, тогда двигатель начнёт вращаться в другую сторону. Выводы EN1 и EN2 отвечают за включение каждого канала. Их мы соединяем и подключаем к «плюсу» питания от стабилизатора. Так как микросхема греется во время работы, а установка радиаторов проблематична на этот тип корпуса, то отвод тепла обеспечивается ногами GND — их лучше распаивать на широкой контактной площадке. Вот и всё, что на первое время тебе нужно знать о драйверах двигателей.

Датчики препятствий

Чтобы наш робот мог ориентироваться и не врезался во всё, мы установим на него два инфракрасных датчика. Самый простейший датчик состоит из ик-диода, который излучает в инфракрасном спектре и фототранзистор, который будет принимать сигнал с ик-диода. Принцип такой: когда перед датчиком нет преграды, то ик-лучи не попадают на фототранзистор и он не открывается. Если перед датчиком препятствие, тогда лучи от него отражаются и попадают на транзистор – он открывается и начинает течь ток. Недостаток таких датчиков в том, что они могут по-разному реагировать на различные поверхности и не защищены от помех — от посторонних сигналов других устройств датчик, случайно, может сработать. От помех может защитить модулирование сигнала, но пока мы этим заморачиватся не будем. Для начала, и этого хватит.


Первый вариант датчиков моего робота

Прошивка робота

Чтобы оживить робота, для него нужно написать прошивку, то есть программу, которая бы снимала показания с датчиков и управляла двигателями. Моя программа наиболее проста, она не содержит сложных конструкций и всем будет понятна. Следующие две строки подключают заголовочные файлы для нашего микроконтроллера и команды для формирования задержек:

#include <mega16.h>
#include <delay.h>

Следующие строки условные, потому что значения PORTC зависят от того, как ты подключил драйвер двигателей к своему микроконтроллеру:

PORTC.0 = 1;
PORTC.1 = 0;
PORTC.2 = 1;
PORTC.3 = 0;

Значение 0xFF означает, что на выходе будет лог. «1», а 0x00 – лог. «0».

Следующей конструкцией мы проверяем, есть ли перед роботом препятствие и с какой оно стороны:

if (!(PINB & (1<<PINB.0)))
{
...
}

Если на фототранзистор попадает свет от ик-диода, то на ноге микроконтроллера устанавливается лог. «0» и робот начинает движение назад, чтобы отъехать от препятствия, потом разворачивается, чтобы снова не столкнуться с преградой и затем опять едет вперёд. Так как у нас два датчика, то мы проверяем наличие преграды два раза – справа и слева и потому можем узнать с какой стороны препятствие. Команда «delay_ms(1000)» указывает на то, что пройдёт одна секунда, прежде чем начнёт выполняться следующая команда.

Заключение

Я рассмотрел большинство аспектов, которые помогут тебе собрать твоего первого робота. Но на этом робототехника не заканчивается. Если ты соберёшь этого робота, то у тебя появится куча возможностей для его расширения. Можно усовершенствовать алгоритм робота, как например, что делать, если препятствие не с какой-то стороны, а прямо перед роботом. Так же не помешает установить энкодер – простое устройство, которое поможет точно располагать и знать расположение твоего робота в пространстве. Для наглядности возможна установка цветного или монохромного дисплея, который может показывать полезную информацию – уровень заряда аккумулятора, расстояние до препятствия, различную отладочную информацию. Не помешает и усовершенствование датчиков – установка TSOP (это ик-приёмники, которые воспринимают сигнал только определённой частоты) вместо обычных фототранзисторов. Помимо инфракрасных датчиков существуют ультразвуковые, стоят подороже, и тоже не лишены недостатков, но в последнее время набирают популярность у роботостроителей. Для того, чтобы робот мог реагировать на звук, было бы неплохо установить микрофоны с усилителем. Но по-настоящему интересным, я считаю, установка камеры и программирование на её основе машинного зрения. Есть набор специальных библиотек OpenCV, с помощью которых можно запрограммировать распознавание лиц, движения по цветным маякам и много всего интересного. Всё зависит только от твоей фантазии и умений.

Список компонентов:

  • ATmega16 в корпусе DIP-40>
  • L7805 в корпусе TO-220
  • L293D в корпусе DIP-16 х2 шт.
  • резисторы мощностью 0,25 Вт номиналами: 10 кОм х1 шт., 220 Ом х4 шт.
  • конденсаторы керамические: 0.1 мкФ, 1 мкФ, 22 пФ
  • конденсаторы электролитические: 1000 мкФ х 16 В, 220 мкФ х 16В х2 шт.
  • диод 1N4001 или 1N4004
  • кварцевый резонатор на 16 МГц
  • ИК-диоды: подойдут любые в количестве двух штук.
  • фототранзисторы, тоже любые, но реагирующие только на длину волны ик-лучей

Код прошивки:

/*****************************************************
Прошивка для робота

Тип МК : ATmega16
Тактовая частота : 16,000000 MHz
Если у тебя частота кварца другая, то это нужно указать в настройках среды:
Project -> Configure -> Закладка "C Compiler"
*****************************************************/

#include <mega16.h>
#include <delay.h>

void main(void)
{
//Настраиваем порты на вход
//Через эти порты мы получаем сигналы от датчиков
DDRB=0x00;
//Включаем подтягивающие резисторы
PORTB=0xFF;

//Настраиваем порты на выход
//Через эти порты мы управляем двигателями
DDRC=0xFF;

//Главный цикл программы. Здесь мы считываем значения с датчиков
//и управляем двигателями
while (1)
{
//Едем вперёд
PORTC.0 = 1;
PORTC.1 = 0;
PORTC.2 = 1;
PORTC.3 = 0;
if (!(PINB & (1<<PINB.0))) // Проверяем правый датчик
{
//Едем назад 1 секунду
PORTC.0 = 0;
PORTC.1 = 1;
PORTC.2 = 0;
PORTC.3 = 1;
delay_ms(1000);
//Заворачиваем
PORTC.0 = 1;
PORTC.1 = 0;
PORTC.2 = 0;
PORTC.3 = 1;
delay_ms(1000);
}
if (!(PINB & (1<<PINB.1))) // Проверяем левый датчик
{
//Едем назад 1 секунду
PORTC.0 = 0;
PORTC.1 = 1;
PORTC.2 = 0;
PORTC.3 = 1;
delay_ms(1000);
//Заворачиваем
PORTC.0 = 0;
PORTC.1 = 1;
PORTC.2 = 1;
PORTC.3 = 0;
delay_ms(1000);
}
};
}

О моём роботе

В данный момент мой робот практически завершён.

На нём установлена беспроводная камера, датчик расстояния (и камера и этот датчик установлены на поворотной башне), датчик препятствия, энкодер, приёмник сигналов с пульта и интерфейс RS-232 для соединения с компьютером. Работает в двух режимах: автономном и ручном (принимает сигналы управления с пульта ДУ), камера также может включаться/выключаться дистанционно или самим роботом для экономии заряда батарей. Пишу прошивку для охраны квартиры (передача изображения на компьютер, обнаружение движений, объезд помещения).

По пожеланиям выкладываю видео:

UPD. Перезалил фотографии и сделал небольшие поправки в тексте.

Статья была опубликована мною в журнале «Хакер» за август 2009 года.

Понравилась статья? Поделить с друзьями:
  • Сборка разборного металлического гаража инструкция
  • Сборка потолка грильято инструкция по монтажу
  • Сборка потолочной сушилки для белья лиана видео инструкция по сборке
  • Сборка подъемного механизма для кровати инструкция
  • Сборка радиатора отопления алюминиевого своими руками пошаговая инструкция