Spisu treści:

Jak zrobić inteligentnego robota za pomocą Arduino: 4 kroki
Jak zrobić inteligentnego robota za pomocą Arduino: 4 kroki

Wideo: Jak zrobić inteligentnego robota za pomocą Arduino: 4 kroki

Wideo: Jak zrobić inteligentnego robota za pomocą Arduino: 4 kroki
Wideo: Arduino dla każdego! Czym jest Arduino UNO, kiedy się przydaje i jak zacząć? 2024, Listopad
Anonim
Image
Image

dzień dobry,

Jestem twórcą arduino i w tym samouczku pokażę ci, jak zrobić inteligentnego robota za pomocą arduino

jeśli podobał Ci się mój samouczek, rozważ wsparcie mojego kanału na YouTube o nazwie arduino maker

Kieszonkowe dzieci

RZECZY, KTÓRE BĘDZIESZ POTRZEBNE:

1) arduino

2) czujnik ultradźwiękowy

3) Bo silnik

4) koła

5) patyczki do lodów

6) bateria 9v

Krok 1: POŁĄCZENIA

KLEJ WSZYSTKIE ELEMENTY NA MIEJSCU
KLEJ WSZYSTKIE ELEMENTY NA MIEJSCU

Po zdobyciu wszystkich dostaw teraz powinieneś zacząć łączyć wszystkie rzeczy zgodnie ze schematem podanym powyżej

Krok 2: KLEJ WSZYSTKIE ELEMENTY NA MIEJSCU

OK,

Teraz połącz wszystkie rzeczy na miejscu, jak pokazano na powyższym obrazku

Krok 3: PROGRAMOWANIE

Ale już,

rozpocznij programowanie płytki z podanym poniżej kodem

//ARDUINO PRZESZKODY UNIKAJĄCE SAMOCHODU//// Przed wgraniem kodu należy zainstalować niezbędną bibliotekę// //AFMotor Library https://learn.adafruit.com/adafruit-motor-shield/library-install // // Biblioteka NewPing https://github.com/livetronic/Arduino-NewPing// //Servo Library https://github.com/arduino-libraries/Servo.git // // Aby zainstalować biblioteki przejdź do szkicu >> Dołącz Biblioteka >> Dodaj plik. ZIP >> Wybierz pobrane pliki ZIP z powyższych linków //

#włączać

#włączać

#włączać

#define TRIG_PIN A0

#define ECHO_PIN A1 #define MAX_DISTANCE 200

#define MAX_SPEED 150 // ustawia prędkość silników prądu stałego

#define MAX_SPEED_OFFSET 20

sonar NewPing (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

AF_DCMotor motor1(1, MOTOR12_1KHZ);

//AF_DCMotor motor2(2, MOTOR12_1KHZ); //AF_DCMotor motor3(3, MOTOR34_1KHZ); AF_DCMotor motor4(4, MOTOR34_1KHZ); Serwo myservo;

boolean goForward=false;

odległość wewnętrzna = 100; int speedSet = 0;

pusta konfiguracja () {

myservo.attach(10);

myservo.write(115); opóźnienie (1000); odległość = readPing(); opóźnienie (100); odległość = readPing(); opóźnienie (100); odległość = readPing(); opóźnienie (100); odległość = readPing(); opóźnienie (100); }

pusta pętla () {

int odległośćR = 0; int odległośćL = 0; opóźnienie(40); if(odległość<=15) { moveStop(); opóźnienie (100); przesuńWstecz(); opóźnienie(300); przesuńStop(); opóźnienie(200); odległośćR = patrzPrawo(); opóźnienie(300); odległośćL = patrz w lewo(); opóźnienie(300);

if(odległośćR>=odległośćL)

{ Skręć w prawo(); przesuńStop(); }else { turnLeft(); przesuńStop(); } }else { moveForward(); } odległość = readPing(); }

int spójrz w prawo()

{ mojeserwo.zapis(50); opóźnienie(650); int dystans = readPing(); opóźnienie (100); myservo.write(115); odległość powrotu; }

int spójrz w lewo()

{ mojeserwo.zapis(170); opóźnienie(650); int dystans = readPing(); opóźnienie (100); myservo.write(115); odległość powrotu; opóźnienie (100); }

int readPing() {

opóźnienie(70); int cm = sonar.ping_cm(); jeśli(cm==0) {cm = 250; } powrót cm; }

void przesuńStop() {

motor1.run(RELEASE); //motor2.run(RELEASE); //silnik3.run(RELEASE); motor4.run(RELEASE); } void przesuńdo przodu() {

jeśli(!przechodzi do przodu)

{ idzieForward=prawda; silnik1.uruchom(NAPRZÓD); //silnik2.uruchom(DO PRZODU); //silnik3.uruchom(DO PRZODU); motor4.run(DO PRZODU); for (speedSet = 0; speedSet < MAX_SPEED; speedSet +=2) // powoli zwiększaj prędkość, aby uniknąć zbyt szybkiego ładowania akumulatorów { motor1.setSpeed(speedSet); //silnik2.setSpeed(speedSet); //silnik3.setSpeed(speedSet); motor4.setSpeed(speedSet); opóźnienie(5); } } }

void przesuńWstecz() {

idzieForward=false; silnik1.uruchom(WSTECZ); //silnik2.uruchom(WSTECZ); //silnik3.uruchom(WSTECZ); motor4.run(WSTECZ); for (speedSet = 0; speedSet < MAX_SPEED; speedSet +=2) // powoli zwiększaj prędkość, aby uniknąć zbyt szybkiego ładowania baterii { motor1.setSpeed(speedSet); //silnik2.setSpeed(speedSet); //silnik3.setSpeed(speedSet); motor4.setSpeed(speedSet); opóźnienie(5); } }

nieważne skręt w prawo() {

silnik1.uruchom(WSTECZ); //silnik2.uruchom(WSTECZ); //silnik3.uruchom(DO PRZODU); motor4.run(DO PRZODU); opóźnienie(350); silnik1.uruchom(NAPRZÓD); //silnik2.uruchom(DO PRZODU); //silnik3.uruchom(DO PRZODU); motor4.run(DO PRZODU); } void turnLeft() { motor1.run(FORWARD); //silnik2.uruchom(DO PRZODU); //silnik3.uruchom(WSTECZ); motor4.run(WSTECZ); opóźnienie(350); silnik1.uruchom(NAPRZÓD); //silnik2.uruchom(DO PRZODU); //silnik3.uruchom(DO PRZODU); motor4.run(DO PRZODU); }

Zalecana: