Меню English Ukrainian російська Головна

Безкоштовна технічна бібліотека для любителів та професіоналів Безкоштовна технічна бібліотека


Простий робот. Енциклопедія радіоелектроніки та електротехніки

Безкоштовна технічна бібліотека

Енциклопедія радіоелектроніки та електротехніки / Апаратура радіокерування

Коментарі до статті Коментарі до статті

У цій статті представлено схему простого "робота". Він їздить світ, і якщо немає джерела світла, тоді включається режим " Вільний пошук " тобто. робот їздитиме, а при зіткненні від'їжджатиме і розвертатиметься.

Простий робот. Принципова схема робота
(Натисніть для збільшення)

Серцем робота є мікроконтролер фірми ATMEL: AT90S2313, але можна і будь-якої іншої цієї фірми, цей мікроконтролер має 2кб пам'яті для програми, 15 портів вводу/виводу, доступне живлення - 4-6В. Двигунами керуватиме "драйвер двигуна" - мікросхема L293D (вітчизняний аналог - КР1128КТ4А). Як датчик було вирішено взяти фоторезистори СФ3-1.

Робот складається із двох моторів. Ось як вони працюватимуть за певних дій:

Команда Ходовий двигун Двигун повороту
вперед (F) вперед стоп
вперед-вправо (FR) вперед вперед
вперед-ліворуч (FL) вперед назад
тому (B) назад стоп
назад-вправо (BR) назад вперед
назад-ліворуч (BL) назад назад
назад-ліворуч (BL) стоп стоп

Використовувані радіоелементи у схемі:

Мікроконтролер AT90S2313

Мікросхема L293D (вітчизняний аналог - КР1128КТ4А)

2 фоторезистор СФ3-1

Кварц на 4МГц

Конденсатори 22-24 пФ

Стабілізатор 7805 (або КРЕН5А)

Резистор 100 Ом (Опціонально)

Два мотори

Живлення Vbat - 4батарейки пальчикові, або 1 крона (9В)

Живлення Vm - 1крона (9В)

Після складання схеми необхідно завантажити програму в мікроконтролер і робот готовий:

/************************************************* ***

Chip type : AT90S2313

Clock frequency: 4,000000 MHz

Memory model : Tiny

External SRAM size: 0

Data Stack size: 32

************************************************** **/

#include <90s2313.h>

#включати

#include

// Призначення визначень для зручності роботи з периферією

#define OUT PORTB

#define MOTOR_F 7

#define MOTOR_B 6

#define TURN_R 5

#define TURN_L 4

#define IN PIND

#define LIGHT_R 0

#define LIGHT_L 1

#define BUMPER_F 2

#define BUMPER_B 3

// Можливі режими руху

enum {STOP, F, FR, FL, B, BR, BL};

//------------------------------------------------ ------------------------------

// Затримка t x 10ms

//------------------------------------------------ ------------------------------

void Delay_10ms(unsigned char t)

{char i;

for(i=0;i

//Таблиця ймовірностей для вибору напрямку руху

// Виходячи з поточного напрямку руху

unsigned char p[7][7] =

{14, 43, 57, 71, 86, 93, 100,

7, 43, 71, 100, 100, 100, 100,

7, 50, 93, 100, 100, 100, 100,

7, 50, 57, 100, 100, 100, 100,

29, 29, 29, 29, 57, 79, 100,

36, 36, 36, 36, 71, 93, 100,

36, 36, 36, 36, 71, 79, 100};

// поточний напрямок руху

unsigned char this_move;

//------------------------------------------------ ------------------------------

// Включення комбінації двигунів для руху в заданому напрямку

//------------------------------------------------ ------------------------------

void go (unsigned char direction) {

switch (direction) {

case STOP:

OUT.MOTOR_F=0;

OUT.MOTOR_B=0;

OUT.TURN_R=0;

OUT.TURN_L=0;

break;

case F:

OUT.MOTOR_F=1;

OUT.MOTOR_B=0;

OUT.TURN_R=0;

OUT.TURN_L=0;

break;

case FR:

OUT.MOTOR_F=1;

OUT.MOTOR_B=0;

OUT.TURN_R=1;

OUT.TURN_L=0;

break;

case FL:

OUT.MOTOR_F=1;

OUT.MOTOR_B=0;

OUT.TURN_R=0;

OUT.TURN_L=1;

break;

випадок B:

OUT.MOTOR_F=0;

OUT.MOTOR_B=1;

OUT.TURN_R=0;

OUT.TURN_L=0;

break;

case BR:

OUT.MOTOR_F=0;

OUT.MOTOR_B=1;

OUT.TURN_R=1;

OUT.TURN_L=0;

break;

case BL:

OUT.MOTOR_F=0;

OUT.MOTOR_B=1;

OUT.TURN_R=0;

OUT.TURN_L=1;

break;

}

}

//------------------------------------------------ ------------------------------

// Вибір напрямку руху на наступному кроці за таблицею ймовірностей

//------------------------------------------------ ------------------------------

unsigned char next_move(void){

unsigned char pp, i;

pp = rand()/327; // Отримуємо випадкове число 0..99

for (i=0;i<7;i++){ // шукаємо відповідність у таблиці ймовірностей

if (p [this_move] [i] > pp) break;

}

this_move = i; // записуємо новий отриманий напрямок як поточний

return(i);

}

//------------------------------------------------ ------------------------------

// Обробка переривання від переднього бампера (INT0 = PD2)

//------------------------------------------------ ------------------------------

interrupt [EXT_INT0] void ext_int0_isr(void)

{

if(this_move==FR) go(BL);

if(this_move==FL) go(BR);

else go(B);

Delay_10ms (250); // від'їзд протягом 2.5 х 2 сек

Delay_10ms (250);

this_move=B;

}

//------------------------------------------------ ------------------------------

// Обробка переривання від заднього бампера (INT1 = PD3)

//------------------------------------------------ ------------------------------

interrupt [EXT_INT1] void ext_int1_isr(void)

{

if(this_move==BR) go(FL);

if(this_move==BL) go(FR);

else go(F);

Delay_10ms (250); // від'їзд протягом 2.5 х 2 сек

Delay_10ms (250);

this_move=F;

}

//------------------------------------------------ ------------------------------

// "Випадкове блукання"

//------------------------------------------------ ------------------------------

unsigned char walk(void){

// цей цикл організує "вільне блукання" поки що

// немає сигналу від жодного з датчиків освітленості

while((IN.LIGHT_R) && (IN.LIGHT_L)){

go(next_move()); // отримуємо наступний напрямок руху та

Delay_10ms (250); // рухаємось у цьому напрямку 2.5 сек

}

// цей цикл організує рух світ, поки

// є сигнал хоча б від одного із датчиків освітленості

while((IN.LIGHT_R==0) || (IN.LIGHT_L==0)){

if((IN.LIGHT_R==0) && (IN.LIGHT_L==0)) go(F);

else if(IN.LIGHT_R==0) go(FR);

else if(IN.LIGHT_L==0) go(FL);

}

повернення (0);

}

//------------------------------------------------ ------------------------------

// Головна програма

//------------------------------------------------ ------------------------------

сили основних (недійсними)

{

DDRB = 0xff; // Призначаємо всі лінії порту B на вихід

PORTB = 0x00; // і встановлюємо ними низький рівень

DDRD = 0x00; // призначаємо всі лінії порту D на вхід

PORTD = 0xff; // Підключаємо внутрішні навантажувальні резистори

// External Interrupt(s) initialization

// INT0: On

// INT0 Mode: Falling Edge

// INT1: On

// INT1 Mode: Falling Edge

GIMSK = 0xC0;

MCUCR = 0x0A;

GIFR = 0xC0;

// дозволяємо переривання

#asm("sei")

// запускаємо головний цикл

while(1) walk();

}

Завантажити програму, файл прошивки та схему робота у форматі sPlan

Публікація: cxem.net

Дивіться інші статті розділу Апаратура радіокерування.

Читайте та пишіть корисні коментарі до цієї статті.

<< Назад

Останні новини науки та техніки, новинки електроніки:

Шум транспорту затримує зростання пташенят 06.05.2024

Звуки, що оточують нас у сучасних містах, стають дедалі пронизливішими. Однак мало хто замислюється про те, як цей шум впливає на тваринний світ, особливо на таких ніжних створінь, як пташенята, які ще не вилупилися з яєць. Недавні дослідження проливають світло на цю проблему, вказуючи на серйозні наслідки для їхнього розвитку та виживання. Вчені виявили, що вплив транспортного шуму на пташенят зебрового діамантника може призвести до серйозних порушень у розвитку. Експерименти показали, що шумова забрудненість може суттєво затримувати їх вилуплення, а ті пташенята, які все ж таки з'являються на світ, стикаються з низкою здоровотворних проблем. Дослідники також виявили, що негативні наслідки шумового забруднення сягають і дорослого віку птахів. Зменшення шансів на розмноження та зниження плодючості говорять про довгострокові наслідки, які транспортний шум чинить на тваринний світ. Результати дослідження наголошують на необхідності ...>>

Бездротова колонка Samsung Music Frame HW-LS60D 06.05.2024

У світі сучасної технології звуку виробники прагнуть не тільки бездоганної якості звучання, але й поєднання функціональності з естетикою. Одним із останніх інноваційних кроків у цьому напрямку є нова бездротова акустична система Samsung Music Frame HW-LS60D, представлена ​​на заході 2024 World of Samsung. Samsung HW-LS60D – це не просто акустична система, це мистецтво звуку у стилі рамки. Поєднання 6-динамічної системи з підтримкою Dolby Atmos та стильного дизайну у формі фоторамки робить цей продукт ідеальним доповненням до будь-якого інтер'єру. Нова колонка Samsung Music Frame оснащена сучасними технологіями, включаючи функцію адаптивного звуку, яка забезпечує чіткий діалог на будь-якому рівні гучності, а також автоматичну оптимізацію приміщення для насиченого звукового відтворення. За допомогою з'єднань Spotify, Tidal Hi-Fi і Bluetooth 5.2, а також інтеграцією з розумними помічниками, ця колонка готова задовольнити ...>>

Новий спосіб управління та маніпулювання оптичними сигналами 05.05.2024

Сучасний світ науки та технологій стрімко розвивається, і з кожним днем ​​з'являються нові методи та технології, які відкривають перед нами нові перспективи у різних галузях. Однією з таких інновацій є розробка німецькими вченими нового способу керування оптичними сигналами, що може призвести до значного прогресу фотоніки. Нещодавні дослідження дозволили німецьким ученим створити регульовану хвильову пластину всередині хвилеводу із плавленого кремнезему. Цей метод, заснований на використанні рідкокристалічного шару, дозволяє ефективно змінювати поляризацію світла через хвилевід. Цей технологічний прорив відкриває нові перспективи розробки компактних і ефективних фотонних пристроїв, здатних обробляти великі обсяги даних. Електрооптичний контроль поляризації, що надається новим методом, може стати основою створення нового класу інтегрованих фотонних пристроїв. Це відкриває широкі можливості для застосування. ...>>

Випадкова новина з Архіву

Гіперзвукові ракети замість бурових установок 18.08.2015

Геотермальна енергія служить людству з давніх-давен. Ще в стародавньому Римі гарячі джерела використовувалися для суспільних лазень та підігріву підлоги, а в XIV столітті у Франції було збудовано першу систему центрального опалення за допомогою природного тепла. В наш час у світі виробляється близько 12 000 МВт геотермальної електроенергії, а ще приблизно 28 ГВт використовується для опалення, спа, промислових процесів, опріснення води тощо.

Однак для того, щоб випустити пару з-під землі, необхідні свердловини завглибшки кілька кілометрів, кожна з яких коштує від $5 млн. до $20 млн., залежно від глибини. Набагато дешевший, хоч і неперевірений спосіб запропонувала американська компанія HyperSciences. Її засновник Марк Рассел (Mark Russell) отримав патент на буріння свердловин у земній корі за допомогою її обстрілу гіперзвуковими ракетами.

Ракета із спеціальним абразивним сердечником встановлюється в прискорювач на основі прямоточного повітряного реактивного двигуна, який служить одночасно і камерою, і стволом цієї гармати. У прискорювач нагнітається газ, який підпалюється і створює високий тиск у камері з ракетою, що дозволяє вилітати зі швидкістю 2 км/с. Цього достатньо, на думку автора, щоб подрібнити будь-яку породу, залишки якої потім висмоктуються зі свердловини. Для більшої ефективності автор пропонує використовувати установки із кількох прискорювачів.

Пристрій самої ракети описано в патенті в загальних термінах, але автор припускає, що її можна обладнати наконечником з пластиковою вибухівкою для підвищення інтенсивності буріння. Там же можна розмістити датчики температури та глибини.

Відсутність подробиць не завадила Расселу отримати гранти від нафтової компанії Shell на суму $1 млн. за програмою GameChanger, яка фінансує навіть найфантастичніші проекти, які в майбутньому можуть вплинути на виробництво енергії.

Інші цікаві новини:

▪ Intel Core Duo 2

▪ Потяг-дирижабль

▪ Морський закон під сумнівом

▪ Повідомлення про наближення машини швидкої допомоги

▪ Орбітальне кільце навколо Землі

Стрічка новин науки та техніки, новинок електроніки

 

Цікаві матеріали Безкоштовної технічної бібліотеки:

▪ Розділ сайту Зарядні пристрої, акумулятори, батарейки. Добірка статей

▪ стаття Щит на брамі Цареграда. Крилатий вислів

▪ стаття Що таке камедь? Детальна відповідь

▪ стаття Лікар-статистик. Посадова інструкція

▪ стаття Втік світлодіодний вогонь (варіант 3). Енциклопедія радіоелектроніки та електротехніки

▪ стаття Простий SSB-мінітрансівер на 160 метрів. Енциклопедія радіоелектроніки та електротехніки

Залишіть свій коментар до цієї статті:

ім'я:


E-mail (не обов'язково):


коментар:





All languages ​​of this page

Головна сторінка | Бібліотека | Статті | Карта сайту | Відгуки про сайт

www.diagram.com.ua

www.diagram.com.ua
2000-2024