Современное состояние робототехники. Может ли робот полностью заменить человека. Аналогия органов чувств робота и человека?
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Современное состояние робототехники. Может ли робот полностью заменить человека. Аналогия органов чувств робота и человека?

Ро́бот (чеш. robot, от robota — «подневольный труд») — автоматическое устройство, предназначенное для осуществления различного рода механических операций, которое действует по заранее заложенной программе

R.U.R. (сокращение от чеш. Rossumovi univerzální roboti, «Россумские универсальные роботы») — научно-фантастическаяпьеса, написанная Карелом Чапеком в 1920 году. Премьерный показ пьесы состоялся в 25 января 1921 году в Праге.

• Хронология

• Типы роботов

• Промышленные роботы

• Медицинские роботы

• Бытовые роботы

• Роботы для обеспечения безопасности

• Боевые роботы

• Технологии

• Система передвижения

• Система распознавания образов

• Двигатели

• Искусственный интеллект (AI)

• Навигация

 

 

Контрольные вопросы

17. Что такое робот?

18. Главное отличие робота от человека?

19. Состояние современной робототехники?

20. Аналогия органов чувств человека и робота?

 

31.08.2018

Система управления роботом. Полная функция управления. Схемы управления

Управление – процесс постановки цели, определение способа её достижения (концепции) и практическая реализация концепции управления для достижения избранной цели. Управление – правильная воля. Власть – реализованная на практике способность к управлению.

• субъект управления (тот, кто управляет):

• объект управления (то, чем управляют);

• прямые связи (от субъекта к объекту);

• обратные связи (от объекта к субъекту)

• внешняя среда (совокупность всех внешних факторов, оказывающих воздействие на процесс управления).

Манипуляция – движение рук при выполнении какой-либо работы.

Локомо́ция (фр. locomotion «передвижение» от лат. locō mōtiō «движение с места») — перемещение животных (в том числе человека) в пространстве (в водной среде, воздушной среде, по твёрдой поверхности, в плотной среде), обусловленное их активными действиями. Локомоция играет важную роль в жизни животных: в отличие от большинства растений, они могут передвигаться для поиска пищи или для спасения от хищников

Контрольные вопросы

1. системы управления роботом

2. полная функция управления

3. схема управления

4. манипуляция

5. локомация

07.09.2018

14.09.2018

Обзор рынка основных средств осуществления обратной связи при управлении роботом. Датчики измерения электрических параметров. Датчики измерения физических параметров.

 

 

Датчик тока

Датчик тока трансформаторный до 100А (SCT013)

 

 

 

28.09.2018

Аналого-цифровое преобразование. Основное предназначение и практическое применение при проектировании робота. Считывание импульсов.

Аналого-цифровой преобразователь (АЦП, англ. Analog-to-digital converter, ADC) — устройство, преобразующее входной аналоговый сигнал в дискретный код (цифровой сигнал)

· Диапазон входных значений = от 0 до 10 вольт

· Разрядность двоичного АЦП 12 бит: 212 = 4096 уровней квантования

· Разрешение двоичного АЦП по напряжению: (10-0)/4096 = 0,00244 вольт = 2,44 мВ

Архитектура АЦП прямого преобразования

 

 

Device = 16 F 873 A

Xtal = 4

'--------------------------Настройки АЦП--------------------------

                                                             

Declare Adin _ Res 10 'Разрядность результата преобразования АЦП

Declare Adin _ Tad FRC 'Источник тактирования АЦП

Declare Adin _ Stime 50

                                                              

'--------------Настройки подключения ЖКИ--------------------------

                                                             

Declare LCD _ Type ALPHA  'Тип ЖКИ - буквенно -цифровой

Declare LCD_DTPin PORTB.4 'Порт данных ЖКИ

Declare LCD_ENPin PORTB.3 'Управление линией E

Declare LCD_RSPin PORTB.2 'правление линией RS

Declare LCD_Interface 4 'Разрядность шины данных

Declare LCD _ CommandUs 2000 'Задержка перед посылкой команды

Declare LCD _ DataUs 50  'Задержка перед посылкой данных

Declare LCD _ Lines 2   'Количество строк ЖКИ

                                                             

'--------------------------Настройки портов--------------------------

                                                             

Declare PortB _ Pullups = OFF ' Выключить подтягивающие резисторы на PORTB

Declare All _ Digital = OFF 'Каждый порт выполняет свою функцию по умолчанию

                                                             

TRISA = %00000001          ' Сделать канал (вывод) AN 0 ( PORTA .0) входом

ADCON1 = %10000000         ' Установить все выводы PORTA в режим АЦП

'--------------------------Объявления переменных---------------------

Dim VAR1 As Word            ' Объявить переменную VAR 1 размером WORD

'--------------------------Главная программа--------------------------

Again:  

VAR1 = ADIn 0              ' Произвести АЦП в 0-ем канале и результат записать в переменную VAR 1

Print At 1, 1, "VAR1= " , Dec 4 VAR1 ' Вывести в первой строке ЖКИ десятичное значение VAR 1

Print At 2, 1, "VAR1= " , Bin 10 VAR1 ' Вывести во второй строке ЖКИ двоичное значение VAR 1

GoTo Again ' Вновь осуществить операцию АЦП

 

Применение АЦП при проектировании зарядного блока для электромобиля

Device = 18 F 2550 'для зарядных блоков мобильного типа, первая печатная плата с али эксперсс

Xtal = 16 '

Config_Start

PLLDIV = 5 ' Divide by 5 (20 MHz oscillator input)

CPUDIV = OSC4_PLL6 ; [OSC1/OSC2 Src: /1][96 MHz PLL Src: /2]

USBDIV = 2 ' USB clock source comes from the 96 MHz PLL divided by 2

FOSC = HSPLL_HS ' HS oscillator, PLL enabled, HS used by USB

FCMEN = OFF ' Fail-Safe Clock Monitor disabled

IESO = OFF ' Oscillator Switchover mode disabled

PWRT = On ' PWRT disabled

BOR = On ' Brown-out Reset enabled in hardware only (SBOREN is disabled)

BORV = 2 ' 0 - 4.5, 1 - 4.2 v , 2- 2.7 volt , 3 - 2 v , попробовать 25-2,5 v

VREGEN = On ' USB voltage regulator enabled

WDT = OFF ' HW Disabled - SW Controlled

WDTPS = 32768 ' 1:32768

MCLRE = On ' MCLR pin enabled; RE3 input pin disabled

LPT1OSC = OFF ' Timer1 configured for higher power operation

PBADEN = OFF ' PORTB<4:0> pins are configured as digital I/O on Reset

CCP2MX = On ' CCP2 input/output is multiplexed with RC1

STVREN = On ' Stack full/underflow will cause Reset

LVP = OFF ' Single-Supply ICSP disabled

''''''''''' ICPRT = OFF ' ICPORT disabled

XINST = OFF ' Instruction set extension and Indexed Addressing mode disabled (Legacy mode)

Debug = OFF ' Background debugger disabled, RB6 and RB7 configured as general purpose I/O pins

Cp0 = On ' Block 0 (000800-001FFFh) not code-protected

CP1 = On ' Block 1 (002000-003FFFh) not code-protected

CP2 = On ' Block 2 (004000-005FFFh) not code-protected

CP3 = On ' Block 3 (006000-007FFFh) not code-protected

CPB = On ' Boot block (000000-0007FFh) code-protected 'On

CPD = On ' Data EEPROM not code - protected Включить защиту EEPROM памяти данных от несанкционированного считывания

WRT0 = OFF ' Block 0 (000800-001FFFh) not write-protected

WRT1 = OFF ' Block 1 (002000-003FFFh) not write-protected

WRT2 = OFF ' Block 2 (004000-005FFFh) not write-protected

WRT3 = OFF ' Block 3 (006000-007FFFh) not write-protected

WRTB = OFF ' Boot block (000000-0007FFh) not write-protected

WRTC = OFF ' Configuration registers (300000-3000FFh) not write-protected

WRTD = OFF ' Data EEPROM not write-protected

EBTR0 = OFF ' Block 0 (000800-001FFFh) not protected from table reads executed in other blocks

EBTR1 = OFF ' Block 1 (002000-003FFFh) not protected from table reads executed in other blocks

EBTR2 = OFF ' Block 2 (004000-005FFFh) not protected from table reads executed in other blocks

EBTR3 = OFF ' Block 3 (006000-007FFFh) not protected from table reads executed in other blocks

EBTRB = OFF ' Boot block (000000-0007FFh) not protected from table reads executed in other blocks

Config_End

Declare PROTON_START_ADDRESS = $1000

PortB _ Pullups = off ' Выключить подтягивающие резисторы на PORTB

Declare All _ Digital = off ' Каждый порт выполняет свою функцию по умолчанию

' настройка АЦП

Declare Adin _ Res 10 'Разрядность результата преобразования АЦП

Declare Adin _ Tad FRC 'Источник тактирования АЦП

Declare Adin _ Stime 50 ' может быть от 50 до 100 максимум(чтобы работал без ошибок)

TRISA.0=1 ' ацп считывание перепада напряж на пилоте

TRISA.2=0 ' резерв

TRISA.3=0 ' резерв

TRISA.4=0 ' резерв

TRISA.5=0 ' резерв

TRISC.0=0 ' резерв

TRISC.1=0 ' вых на тест датчика утеч тока, отправляет на кольцо шим

TRISC.2=0 ' вых ШИМ для пилота

TRISC.6=0 'резерв

TRISC.7=0 'резерв

TRISB.0=1 ' вх датчика утеч тока

TRISB.1=0 ' резерв

TRISB.2=1 ' резерв

TRISB.3=0 ' резерв

TRISB.4=0 ' резерв

TRISB.5=0 ' резерв

TRISB.6=0 ' резерв

TRISB.7=0 ' резерв

CMCON=%00000111

CCP1CON.0=0: CCP1CON.1=0: CCP1CON.2=0: CCP1CON.3=0: PORTC.2=1

 

 

ADCON1 = %00001110

ADCON0 = %00000001 ' Make PORTA.0 analogue

ADCON2 = %10000011

 

Dim ADC_Result As Word 'конечный результат измерения напряжения на Pilot

Dim ADC_Total As Dword

Dim ADC_Loops As Word

Dim Temp As Byte

Dim pwm_val As Byte ' скважность ШИМ

Dim adr As Byte ' адрес памяти где храниться значение скважности ШИМ

Dim cnt As Byte

Dim t1 As Byte

Dim i As Byte

Symbol test_gfci = PORTB.0

Symbol relay = PORTA.5 ' силовые реле

Symbol btn = PORTB.2 ' кнопка программирования уровня тока зарядки

Dim flag_btn As Bit

Symbol red = PORTA.4

Symbol green = PORTA.3

Symbol blue = PORTA.2

Dim blink As Byte ' светодиод

Dim cnt1 As Byte ' счетчик светодиода

ADC_Loops = 140

relay=0 'выключаем выход на реле

flag_btn = 0

t1 = 0

cnt = 0

adr = 1

red=0

green=0

blue=0

cnt1=0

' test _ cnt =0

i=0

 

'начало гл прогр

main:

   

GoSub ADC_Average ' Для увеличения точности выполняем усреднение

If ADC_Result<900 And ADC_Result>800 Then CCP1CON.0=1: CCP1CON.1=1: CCP1CON.2=1: CCP1CON.3=1:HPWM 1, 66, 1000: DelayMS 10: GoTo hpwm_sub '10 ампер - это 44 , 12А-51 '939 '746 841 631 6

If ADC_Result<800 And ADC_Result>700 Then CCP1CON.0=1: CCP1CON.1=1: CCP1CON.2=1: CCP1CON.3=1:HPWM 1, 66, 1000: DelayMS 10: GoTo hpwm_sub

 

If ADC_Result>1000 Then GoTo fault

If ADC_Result<700 Then GoTo fault

 

 

CCP1CON.0=0: CCP1CON.1=0: CCP1CON.2=0: CCP1CON.3=0: PORTC.2=1 :relay=0

GoTo main

 

 

hpwm_sub:

 

GoSub ADC_Average ' Для увеличения точности выполняем усреднение

     

If ADC_Result<800 And ADC_Result>700 Then relay=1: DelayMS 5: GoTo hpwm_sub_1

 

If ADC_Result>900 Then GoTo main

 

If ADC_Result>1000 Then GoTo fault

If ADC_Result<700 Then GoTo fault

            

DelayMS 5 '50

GoTo hpwm_sub     

 

hpwm_sub_1:

  

GoSub ADC_Average ' Для увеличения точности выполняем усреднение

If ADC_Result>800 And ADC_Result<900 Then relay=0: DelayMS 5: GoTo hpwm_sub

If ADC_Result>900 Then GoTo main

 

If ADC_Result>1000 Then GoTo fault

If ADC_Result<700 Then GoTo fault

 

GoTo hpwm_sub_1

 

 

 

'из fault никто не выйдет пока не перегрузят контроллер или диапазон не нормализуется

'причиной входа в faul может быть превышение диапазона напряжений на пилоте - больше 1000 или меньше 700

 fault:

GoSub ADC_Average ' Для увеличения точности выполняем усреднение

If ADC_Result>700 And ADC_Result<1000 Then GoTo main

                           

CCP1CON.0=0: CCP1CON.1=0: CCP1CON.2=0: CCP1CON.3=0: PORTC.2=1

CCP2CON.0=0: CCP2CON.1=0: CCP2CON.2=0: CCP2CON.3=0: PORTC.1=0

DelayMS 100

GoTo fault

 

 '***********************************************************

ADC_Average: ' Выполним усреднение для увеличения точности

ADC_Total = 0 ' Очистим суммирующий регистр

' Зациклим на выполнении усреднения определенное количество раз

 For Temp = 1 To ADC_Loops

 ADC_Result = ADIn 0 ' Получим новое значение

 ADC_Total = ADC_Total + ADC_Result ' Складываем в суммирующий регистр

 DelayMS 2 ' Время на разряд внутреннего конденсатора

 Next

 ' Определим среднее значение полученной величины

 ADC_Result = ADC_Total / ADC_Loops

 'DelayMS 100

 Return

'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

05.10.2018

Else

x=2

CCP2_Pin = PORTC.1

CCP1CON=%00000000

EndIf

If PORTB.2=0 Then ' проверка кнопки стоп

pwm_out=0

CCP1CON=%00000000

CCP2CON=%00000000

PORTC.1=0

PORTC.2=0

GoTo main

EndIf

If PORTB.0=0 And PORTB.1=1 Then ' проверка кнопки больше и меньше

pwm_out = pwm_out + 1

If pwm_out>254 Then

pwm_out=254    

EndIf

EndIf

If PORTB.1=0 And PORTB.0=1 And pwm_out>1 Then ' проверка кнопки больше и меньше

pwm_out=pwm_out-1

If pwm_out<2 Then

pwm_out=1

EndIf

EndIf

                                   ' установка скорости привода

HPWM x,pwm_out,1000

DelayMS 20

GoTo main

 

 

19.10.2018

 

Пример

Листинг программы on_interrupt1.bas

' Светодиод подключенный к PORTB.0 будет мигать c большей частотой, чем светодиод, подключенный к PORTB.1

Device 16F876A ' Произвести программный код для микроконтроллера 16F876A

Xtal 4 ' Установить частоту кварцевого генератора равной 4 МГц

On_Interrupt Goto Flash ' Включить обработку аппаратных прерываний и при их возникновении перейти к метке ‘ Flash:

'-------------------------------- Назначение псевдонимов для обработки прерываний--------------------------------

Symbol LED PORTB.1 ' LED - символ cветодиода подключенного к PORTB.1

Symbol TOIE INTCON.5 ' TOIE - cимвол бита разрешение прерывания по переполнению таймера TMRO

Symbol TOIF INTCON.2 ' TOIF - cимвол флага прерывания по переполнению таймера TMRO

Symbol GIE INTCON.7 ' GIE - cимвол бита глобального разрешения прерываний

Symbol PSO OPTION_REG.0 ' PSO - символ bit-0 коэффициента предделителя

Symbol PS1 OPTION_REG.1 ' PS1 - символ bit-1 коэффициента предделителя

Symbol PS2 OPTION_REG.2 ' PS2 - символ bit-2 коэффициента предделителя

Symbol PSA OPTION_REG.3 ' PSA - Символ бита подключения предварительного делителя

' (PSA = 1 - предделитель включен на входе сторожевого таймера WDT)

' (PSA = 0 - предделитель включен на входе таймера TMR0)

Symbol TOCS OPTION_REG.5 ' TOCS - cимвол бита выбора источника тактового сигнала для TMR0

' (TOCS = 0 - содержимое таймера инкрементируется от импульсов

' кварцевого (внутреннего) тактового генератора с частотой Fкв.ген/4)

' (TOCS = 1 - содержимое таймера инкрементируется от внешних импульсов

' на входе PORTA.4 RA4/TOСKI)

GoTo Over_interrupt ' Перешагнуть через подпрограмму прерывания и перейти к метке

' Over_interrupt:

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

Flash: ' Метка начала подпрограммы обработки прерываний

PORTB = PORTB ^ 1 ' При возникновении прерывания от таймера выполнить операцию

' ИСКЛЮЧАЮЩЕЕ ИЛИ над содержимым регистра порта PORTB и значением 1

' поразрядно над каждым битом регистра порта PORTB, а результат

' записать в регистр порта PORTB. В результате, если до прерывания

' логическая единица была на выходе PORTB.0, то после прерывания она

' будет на выходе PORTB.1 и наоборот.

TOIF = 0 ' Cбросить флаг прерываний TOIF регистра TMRO

Context Restore ' Восстановить регистры и выйти из обработки прерываний

Over_interrupt: ' Метка Over_interrupt

TRISB = %00000000 ' Cконфигурировать выводы PORTB как выходы

PORTB = 0 ' Очистить регистр порта PORTB

'----------------------------------------------- Инициирование прерываний ----------------------------------------------

GIE = 0 ' Запретить все прерывания

PSA = 0 ' Включить предварительный делитель на входе таймера TMR0

PSO = 1: PS1 = 1: PS2 = 1

' Установить коэффициент деления для предделителя на входе таймера

' TMR0 равным 256

TOCS = 0

' Разрешить инкрементирование таймера TMR0 от импульсов с внутренней

' тактовой частотой, равной частоте кварц. генератора, деленной на 4.

TMR0 = 0 ' Очистить таймер TMRO

TOIE = 1 ' Разрешить прерывания по переполнению таймера TMRO

GIE = 1 ' Разрешить все немаскированные прерывания

'-------------------------------------------------- Основная программа --------------------------------------------------

main: ' Метка начала основной программы

Low LED ' Погасить светодиод подлюченный к PORTB.1

DelayMS 500 ' Пауза 0,5 сек

High LED ' Включить светодиод подлюченный к PORTB.1

DelayMS 500 ' Пауза 0,5 сек

GoTo main ' Повторить основную программу

End ' Конец программы

 

Применение аппаратного прерывания на плате Arduino nano при проектировании системы управления подъемником «Барс»

 

Пример на С

 

 

 

 

26.10.2018

02.11.2018

Современное состояние робототехники. Может ли робот полностью заменить человека. Аналогия органов чувств робота и человека?

Ро́бот (чеш. robot, от robota — «подневольный труд») — автоматическое устройство, предназначенное для осуществления различного рода механических операций, которое действует по заранее заложенной программе

R.U.R. (сокращение от чеш. Rossumovi univerzální roboti, «Россумские универсальные роботы») — научно-фантастическаяпьеса, написанная Карелом Чапеком в 1920 году. Премьерный показ пьесы состоялся в 25 января 1921 году в Праге.

• Хронология

• Типы роботов

• Промышленные роботы

• Медицинские роботы

• Бытовые роботы

• Роботы для обеспечения безопасности

• Боевые роботы

• Технологии

• Система передвижения

• Система распознавания образов

• Двигатели

• Искусственный интеллект (AI)

• Навигация

 

 

Контрольные вопросы

17. Что такое робот?

18. Главное отличие робота от человека?

19. Состояние современной робототехники?

20. Аналогия органов чувств человека и робота?

 

31.08.2018

Дата: 2019-02-02, просмотров: 244.