- Компоненте потребне
- Припрема 3Д штампаног роботског АРМ-а
- Кружни дијаграм
- Кораци укључени у програмирање ЛПЦ2148 за роботску руку
- Објашњење кодирања
- Одабиром серво мотора за ротирање помоћу тастера
- Рад роботске руке Пицк анд Плаце
Роботско оружје једно је од фасцинантних инжењерских креација и увек је фасцинантно гледати како се те ствари нагињу и окрећу како би се сложене ствари урадиле баш као што би то урадила људска рука. Ове роботске руке могу се често наћи у индустрији на монтажној линији и изводе интензивне механичке радове попут заваривања, бушења, фарбања итд. Недавно су напредне роботске руке са великом прецизношћу такође развијене за извођење сложених хируршких операција. Дакле, у овом упутству направимо једноставну роботску руку користећи АРМ7-ЛПЦ2148 микроконтролер за бирање и постављање предмета ручном контролом неколико потенциометара.
У овом упутству користићемо 3Д штампани роботски АРМ који је направљен пратећи поступак у стварности. АРМ користи 4 серво мотора за роботско АРМ кретање. Ако немате штампач, руку можете такође изградити једноставним картонима какве смо направили за наш Ардуино Роботиц Арм Пројецт. Као инспирацију можете се позвати и на Рецорд анд Плаи Роботиц Арм који смо раније направили користећи Ардуино.
Дакле, хајде да припремимо ствари за наш пројекат
Компоненте потребне
- 3Д штампач Роботски АРМ
- АРМ7-ЛПЦ2148
- Серво мотор СГ-90 (4)
- 10к потенциометар (4)
- Тастер (4)
- ЛЕД (4)
- 5В (1А) адаптер за једносмерну струју
- Отпорници (10к (4), 2.2к (4))
- Бреадбоард
- Повезивање жица
Припрема 3Д штампаног роботског АРМ-а
3Д одштампана роботска рука коришћена у овом упутству направљена је следећи дизајн који је дао ЕЕЗИботАРМ који је доступан у Тхингиверсе-у. Комплетна процедура за израду 3Д одштампане роботске руке и детаље о састављању са видео записом присутни су у вези за ствар, која је горе наведена.
Ово је слика моје 3Д штампане роботске руке након склапања са 4 серво мотора.
Кружни дијаграм
Следећа слика приказује везе круга роботске руке засноване на АРМ-у.
Коло везе за пројекат су једноставне. Обавезно напајајте серво моторе одвојеним исправљачем једносмерне струје од 5В. За потенциометре и тастере можемо користити 3.3В доступне од микроконтролера ЛПЦ2148.
Овде користимо 4 АДЦ пина ЛПЦ2148 са 4 потенциометра. И такође 4 ПВМ пинова ЛПЦ2148 повезаних са ПВМ пиновима серво мотора. Такође смо повезали 4 тастера за одабир мотора којим ћемо управљати. Дакле, након притиска на тастер, поштовани потенциометар се мења како би променио положај серво мотора.
Тастери на једном крају који је повезан са ГПИО из ЛПЦ2148 се спуштају преко отпорника од 10 к, а други крај је повезан са 3,3 В. Такође су повезане 4 ЛЕД диоде које показују који је серво мотор изабран за промену положаја.
Кружне везе између 4 серво мотора и ЛПЦ2148:
ЛПЦ2148 | Серво мотор |
П0.1 | СЕРВО1 (ПВМ-наранџаста) |
П0.7 | СЕРВО2 (ПВМ-наранџаста) |
П0.8 | СЕРВО3 (ПВМ-наранџаста) |
П0.21 | СЕРВО4 (ПВМ-наранџаста) |
Кружне везе између 4 потенциометра и ЛПЦ2148:
ЛПЦ2148 | Лева игла средишњег пина потенциометра - 0В ГНД ЛПЦ2148 Десна игла - 3,3В ЛПЦ2148 |
П0.25 | Потенциометар1 |
П0.28 | Потенциометар2 |
П0.29 | Потенциометар3 |
П0.30 | Потенциометар4 |
Кружне везе 4 ЛЕД-а са ЛПЦ2148:
ЛПЦ2148 | ЛЕД анода (катода свих ЛЕД је ГНД) |
П1.28 | ЛЕД1 (анода) |
П1.29 | ЛЕД2 (анода) |
П1.30 | ЛЕД3 (анода) |
П1.31 | ЛЕД4 (анода) |
Спојеви круга 4 тастера са ЛПЦ2148:
ЛПЦ2148 | Тастер (са повученим отпорником 10к) |
П1.17 | Тастер1 |
П1.18 | Тастер2 |
П1.19 | Тастер3 |
П1.20 | Тастер4 |
Кораци укључени у програмирање ЛПЦ2148 за роботску руку
Пре програмирања за ову роботску руку, морамо знати о генерисању ПВМ-а у ЛПЦ2148 и коришћењу АДЦ-а у АРМ7-ЛПЦ2148. За то погледајте наше претходне пројекте о повезивању серво мотора са ЛПЦ2148 и како користити АДЦ у ЛПЦ2148.
АДЦ конверзија помоћу ЛПЦ2148
Као што требамо обезбедити АДЦ вредности за подешавање вредности радног циклуса за генерисање ПВМ излаза за контролу положаја серво мотора. Морамо пронаћи АДЦ вредности потенциометра. Како имамо четири потенциометра за управљање са четири серво мотора, требају нам 4 АДЦ канала ЛПЦ2148. Овде у овом упутству користимо АДЦ пинове (П0.25, П0.28, П0.29, П0.30) АДЦ канала од 4,1,2,3, присутних у ЛПЦ2148.
Генерирање ПВМ сигнала за серво мотор помоћу ЛПЦ2148
Како треба да генеришемо ПВМ сигнале за контролу положаја серво мотора. Морамо да подесимо радни циклус ПВМ. Имамо четири серво мотора повезана са роботском руком, тако да су нам потребна 4 ПВМ канала ЛПЦ2148. Овде у овом упутству користимо ПВМ пинове (П0.1, П0.7, П0.8, П0.21) ПВМ канала од 3,2,4,5, присутних у ЛПЦ2148.
Програмирање и трептање хексадецималне датотеке на ЛПЦ2148
За програмирање АРМ7-ЛПЦ2148 потребан нам је кеил уВисион и потребан је флеш ХЕКС код на ЛПЦ2148 Фласх Магиц алат. Овде се користи УСБ кабл за програмирање АРМ7 Стицк преко микро УСБ порта. Код пишемо помоћу Кеила и креирамо хек датотеку, а затим се ХЕКС датотека флешира на АРМ7 стицк користећи Фласх Магиц. Да бисте сазнали више о инсталирању кеил уВисион и Фласх Магиц, и како их користити, следите везу Први кораци са АРМ7 ЛПЦ2148 микроконтролером и програмирајте га помоћу Кеил уВисион.
Објашњење кодирања
Комплетан програм за овај пројекат роботске руке дат је на крају упутства. Сада да видимо детаљно програмирање.
Конфигурисање ПОРТ-а ЛПЦ2148 за употребу ГПИО, ПВМ и АДЦ:
Коришћење регистра ПИНСЕЛ1 за омогућавање АДЦ канала - АДЦ0.4, АДЦ0.1, АДЦ0.2, АДЦ0.3 за пинове П0.25, П0.28, П0.29, П0.30. Такође, за ПВМ5 за пин П0.21 (1 << 10).
#дефине АД04 (1 << 18) // Изаберите функцију АД0.4 за П0.25 #дефине АД01 (1 << 24) // Изаберите функцију АД0.1 за П0.28 #дефине АД02 (1 << 26) / / Изаберите функцију АД0.2 за П0.29 #дефине АД03 (1 << 28) // Изаберите функцију АД0.3 за П0.30 ПИНСЕЛ1 - = АД04 - АД01 - АД02 - АД03 - (1 << 10);
Коришћење регистра ПИНСЕЛ0 за омогућавање ПВМ канала ПВМ3, ПВМ2, ПВМ4 за пинове П0.1, П0.7, П0.8 од ЛПЦ2148.
ПИНСЕЛ0 = 0к000А800А;
Коришћење регистра ПИНСЕЛ2 за омогућавање функције ГПИО пина за све пинове у ПОРТ1 који се користе за повезивање ЛЕД-а и дугмета.
ПИНСЕЛ2 = 0к00000000;
За израду ЛЕД пинова као излазних и тастера као улаза користи се ИОДИР1 регистар. (0 за УЛАЗ & 1 за ИЗЛАЗ)
ИОДИР1 = ((0 << 17) - (0 << 18) - (0 << 19) - (0 << 20) - (1 << 28) - (1 << 29) - (1 << 30) - (1 << 31));
Док су бројеви пинова дефинисани као
#дефине СвитцхПинНумбер1 17 // (повезан са П1.17) #дефине СвитцхПинНумбер2 18 // (повезан са П1.18) #дефине СвитцхПинНумбер3 19 // (повезан са П1.19) #дефине СвитцхПинНумбер4 20 // (повезан са П1. 20) #дефине ЛедПинНумбер1 28 // (повезано са П1.28) #дефине ЛедПинНумбер2 29 // (повезано са П1.29) #дефине ЛедПинНумбер3 30 // (повезано са П1.30) #дефине ЛедПинНумбер4 31 // (повезано са П1.31)
Конфигурисање поставке АДЦ конверзије
Следећи начин конверзије АДЦ и сат за АДЦ се постављају помоћу регистра АД0ЦР_сетуп.
непотписано дуго АД0ЦР_сетуп = (ЦЛКДИВ << 8) - БУРСТ_МОДЕ_ОФФ - ПоверУП; // Постављање АДЦ режима
Док су ЦЛЦКДИВ, Бурст Моде и ПоверУП дефинисани као
#дефине ЦЛКДИВ (15-1) #дефине БУРСТ_МОДЕ_ОФФ (0 << 16) // 1 за укључено и 0 за искључено #дефине ПоверУП (1 << 21)
Подешавање сата за АДЦ конверзију (ЦЛКДИВ)
Ово се користи за производњу сата за АДЦ. АДЦ сат од 4 МХз (АДЦ_ЦЛОЦК = ПЦЛК / ЦЛКДИВ) где се заправо користи „ЦЛКДИВ-1“, у нашем случају ПЦЛК = 60 МХз
Бурст Моде (Бит-16): Овај бит се користи за БУРСТ конверзију. Ако је овај бит постављен, АДЦ модул ће извршити конверзију за све канале који су изабрани (СЕТ) у СЕЛ битовима. Постављање 0 у овом бит-у онемогућит ће БУРСТ конверзију.
Режим искључивања (Бит-21): Користи се за УКЉУЧИВАЊЕ или ИСКЉУЧИВАЊЕ АДЦ-а. Подешавање (1) у овом биту изводи АДЦ из режима искључења и чини га оперативним. Чишћење овог бита ће искључити АДЦ.
Конфигурисање поставке ПВМ конверзије
Прво ресетујте и онемогућите бројач за ПВМ користећи ПВМТЦР регистар и подесите ПВМ тимер Пресцале Регистер са вредновањем предскалера.
ПВМТЦР = 0к02; ПВМПР = 0к1Д;
Даље поставите максималан број бројања у једном циклусу. То се ради у Регистру мечева 0 (ПВММР0). Како имамо 20000, то је ПВМ талас од 20мсецс
ПВММР0 = 20000;
Након тога смо поставили вредност за радни циклус у регистрима утакмица, користимо ПВММР4, ПВММР2, ПВММР3, ПВММР5. Овде постављамо почетне вредности од 0 мс (Тофф)
ПВММР4 = 0; ПВММР2 = 0; ПВММР3 = 0; ПВММР5 = 0;
Након тога подесите ПВМ Матцх Цонтрол Регистер да изазове ресетовање бројача када се догоди матцх матцх.
ПВММЦР = 0к00000002; // Ресетовање на МР0 подударању
Након тога, ПВМ реза Омогући регистар да омогући употребу вредности подударања (ПВМЛЕР)
ПВМЛЕР = 0к7Ц; // Омогућавање закључавања за ПВМ2, ПВМ4, ПВМ4 и ПВМ5
Ресетујте бројач тајмера помоћу бита у ПВМ регистру тајмера (ПВМТЦР), а такође омогућава и ПВМ.
ПВМТЦР = 0к09; // Омогући ПВМ и бројач
Следеће омогућите ПВМ излазе и подесите ПВМ у режиму управљања једним ивицама у ПВМ контролном регистру (ПВМПЦР).
ПВМПЦР = 0к7Ц00; // Омогући ПВМ2, ПВМ4, ПВМ4 и ПВМ5, ПВМ са једном ивицом
Одабиром серво мотора за ротирање помоћу тастера
Имамо четири тастера која се користе за ротирање четири различита серво мотора. Одабиром једног дугмета и променом одговарајућег потенциометра, вредност АДЦ поставља радни циклус и одговарајући серво мотор мења свој положај. Да бисте добили статус прекидача са дугметом
свитцхСтатус1 = (ИОПИН1 >> СвитцхПинНумбер1) & 0к01;
Дакле, зависно од тога која вредност прекидача је ВИСА, врши се конверзија АДЦ, а затим се након успешне конверзије вредности АДЦ (0 до 1023) пресликава у (0 до 2045) и тада се вредност радног циклуса записује у (ПВММРк) ПВМ иглица повезана са серво мотором. Такође, ЛЕД се окреће ВИСОКО за показивање притиска на прекидач. Следи пример за први тастер
иф (свитцхСтатус1 == 1) { ИОПИН1 = (1 <
Рад роботске руке Пицк анд Плаце
Након учитавања кода на ЛПЦ2148, притисните било који прекидач и промените одговарајући потенциометар да бисте променили положај роботске руке.
Сваки прекидач и потенциометар контролишу свако кретање сервомотора које је основно кретање улево или удесно, кретање горе или доле, напред или назад, а затим хватаљка за задржавање и отпуштање покрета. Комплетна шифра са детаљним видео записом је дата у наставку.