久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 10658|回復: 20
收起左側

基于stm32f0103c8t6 6自由度機械手臂源程序

  [復制鏈接]
ID:144730 發表于 2019-5-18 15:42 | 顯示全部樓層 |閱讀模式
//主程序源碼:代碼變異絕無錯誤,硬件測試過了,由于舵機數量角度簡易使用5v 2A電源供電
/************************************************************************
                 6自由度機械臂引腳說明:
PB4->1號舵機(左右轉向), PB5->2號舵機(上下轉向),    PB0->3號舵機(上下轉向),
PB1->4號舵機(上下轉向), PB6->5號舵機(機械爪轉向),  PB7->6號舵機(機械爪),
PC13->數字傳感器輸入端               
PA0->按鍵1(舵機角度+),PA1->按鍵2(舵機角度-),
PA2->按鍵3(舵機選擇+),PA3->按鍵4(舵機選擇-),
PA4->按鍵5(機械爪閉), PA5->按鍵6(機械爪開),

串口1引腳說明:
PA9->TXD(發送), PA10-> RXD(接收)

************************************************************************/
#include "stm32f10x.h"
#include "smartcar.h"
#include "usart.h"
#include "pwm.h"
#include "delay.h"
#include "KEY.h"
#include "digitalvalue.h"

extern u8 Res;//全局變量

int main(void)
{        
vu8 numval31=150;u16 numval32=200;u16 numval33=200;u16 numval34=200;
u16 numval41=150;//u16 numval42=150;u16 numval43=150;u16 numval44=150;
vu8 pwmval31=150;u16 pwmval32=200;u16 pwmval33=200;u16 pwmval34=200;         
u16 pwmval41=150;u16 pwmval42=60;u16 pwmval43=150;u16 pwmval44=150;
vu8 key=0;        
vu8 num=1 ;         
vu8 dig=0;                 
smartcar_Init();//智能小車GPIO初始化
delay_init();//延時函數初始化         
KEY_Init(); //初始化與按鍵連接的硬件接口
digival_value_Init();        //數字開關輸入初始化
uart_init(9600);
         
         
TIM3_OC1_PWM_Init(1999,719);         //720分頻。PWM頻率=72000000/2000*720=50hz,定時器3的1通道初始化
TIM3_OC2_PWM_Init(1999,719);         //720分頻。PWM頻率=72000000/2000*720=50hz         
TIM3_OC3_PWM_Init(1999,719);         //720分頻。PWM頻率=72000000/2000*720=50hz         
TIM3_OC4_PWM_Init(1999,719);         //720分頻。PWM頻率=72000000/2000*720=50hz                  
TIM4_OC1_PWM_Init(1999,719);         //720分頻。PWM頻率=72000000/2000*720=50hz
TIM4_OC2_PWM_Init(1999,719);         //720分頻。PWM頻率=72000000/2000*720=50hz         
TIM4_OC3_PWM_Init(1999,719);         //720分頻。PWM頻率=72000000/2000*720=50hz         
TIM4_OC4_PWM_Init(1999,719);         //720分頻。PWM頻率=72000000/2000*720=50hz        
         
TIM_SetCompare1(TIM3,pwmval31);        //pwm輸出函數        
TIM_SetCompare2(TIM3,pwmval32);        //pwm輸出函數                 
TIM_SetCompare3(TIM3,pwmval33);        //pwm輸出函數                 
TIM_SetCompare4(TIM3,pwmval34);        //pwm輸出函數                 
TIM_SetCompare1(TIM4,pwmval41);        //pwm輸出函數                 
TIM_SetCompare2(TIM4,pwmval42);        //pwm輸出函數                 
TIM_SetCompare3(TIM4,pwmval43);        //pwm輸出函數        
TIM_SetCompare4(TIM4,pwmval44);        //pwm輸出函數        

   while(1)
        {

                key=KEY_Scan(0);        //得到鍵值,0:不支持連續按,1:支持連續按.
                dig=digival_value_Scan();
                   if(key)
                {                                                   
                        switch(key)
                        {        
      case KEYA_PRES://舵機按鈕,左轉
        
                                        switch(num)        
                                        {        
                                        case 1:numval31++; pwmval31=(numval31*1); if(numval31>250) numval31=250;TIM_SetCompare1(TIM3,pwmval31);  break;//numval用于舵機手動運行時速度調節
                                        case 2:numval32++; pwmval32=(numval32*1); if(numval32>250) numval32=250;TIM_SetCompare2(TIM3,pwmval32);  break;//
                                        case 3:numval33++; pwmval33=(numval33*1); if(numval33>250) numval33=250;TIM_SetCompare3(TIM3,pwmval33);  break;//
                                        case 4:numval34++; pwmval34=(numval34*1); if(numval34>250) numval34=250;TIM_SetCompare4(TIM3,pwmval34);  break;//
                                        case 5:numval41++; pwmval41=(numval41*1); if(numval41>250) numval41=250;TIM_SetCompare1(TIM4,pwmval41);  break;//
                                                
                                        }                 
                                       
                                        break;
                                       
                        case KEYB_PRES://舵機按鈕        ,右轉        
                                
                            switch(num)        
                                        {        
                                        case 1:numval31--; pwmval31=(numval31*1); if(numval31<40) numval31=50; TIM_SetCompare1(TIM3,pwmval31);  break;//
                                        case 2:numval32--; pwmval32=(numval32*1); if(numval32<55) numval32=55; TIM_SetCompare2(TIM3,pwmval32);  break;//
                                        case 3:numval33--; pwmval33=(numval33*1); if(numval33<55) numval33=55; TIM_SetCompare3(TIM3,pwmval33);  break;//
                                        case 4:numval34--; pwmval34=(numval34*1); if(numval34<55) numval34=55; TIM_SetCompare4(TIM3,pwmval34);  break;//
                                        case 5:numval41--; pwmval41=(numval41*1); if(numval41<55) numval41=55; TIM_SetCompare1(TIM4,pwmval41);  break;//               
                                        }                                 
                           
                       break;
                        
                        case KEYC_PRES://選擇哪個舵機運行+1
                                   num++;
                        if(num>5) num=5;
                        break;
                        
                        case KEYD_PRES://選擇哪個舵機運行-1
                                   num--;
                        if(num<1) num=1;            
                        break;
                        
                        case KEYE_PRES://機械手閉
                                        pwmval42++;
                        if(pwmval42>145) pwmval42=145;
                        TIM_SetCompare2(TIM4,pwmval42);
                        break;
                        
                        case KEYF_PRES://機械手開
                        pwmval42--;
                        if(pwmval42<60)  pwmval42=60;  
                        TIM_SetCompare2(TIM4,pwmval42);                 
                        break;        
                        }
         }        
     /* *********** 藍牙遙控模式****************************/
     if(Res=='1') {pwmval31++; if(pwmval31>250)  pwmval31=250; TIM_SetCompare1(TIM3,pwmval31);delay_ms(10);}
           if(Res=='2') {pwmval31--; if(pwmval31<60 )  pwmval31=60;  TIM_SetCompare1(TIM3,pwmval31);delay_ms(10);}
     if(Res=='3') {pwmval32++; if(pwmval32>250)  pwmval32=250; TIM_SetCompare2(TIM3,pwmval32);delay_ms(10);}
           if(Res=='4') {pwmval32--; if(pwmval32<60 )  pwmval32=60;  TIM_SetCompare2(TIM3,pwmval32);delay_ms(10);}
           if(Res=='5') {pwmval33++; if(pwmval33>250)  pwmval33=250; TIM_SetCompare3(TIM3,pwmval33);delay_ms(10);}
           if(Res=='6') {pwmval33--; if(pwmval33<60 )  pwmval33=60;  TIM_SetCompare3(TIM3,pwmval33);delay_ms(10);}
           if(Res=='7') {pwmval34++; if(pwmval34>250)  pwmval34=250; TIM_SetCompare4(TIM3,pwmval34);delay_ms(10);}
           if(Res=='8') {pwmval34--; if(pwmval34<60 )  pwmval34=60;  TIM_SetCompare4(TIM3,pwmval34);delay_ms(10);}
                 if(Res=='9') {pwmval41++; if(pwmval41>250)  pwmval41=250; TIM_SetCompare1(TIM4,pwmval41);delay_ms(10);}
           if(Res=='a') {pwmval41--; if(pwmval41<60 )  pwmval41=60;  TIM_SetCompare1(TIM4,pwmval41);delay_ms(10);}
                 if(Res=='b') {pwmval42++; if(pwmval42>145)  pwmval42=145; TIM_SetCompare2(TIM4,pwmval42);delay_ms(10);}
           if(Res=='c') {pwmval42--; if(pwmval42<60 )  pwmval42=60;  TIM_SetCompare2(TIM4,pwmval42);delay_ms(10);}
                 
/********************自動控制模式*******************/
                if(dig==1)

                {        
                        vu8 a=1;//動作完成標志位
                        u16 ms=500;
               
                if(a==1 ){ pwmval31=150; TIM_SetCompare1(TIM3,pwmval31); a=2 ;delay_ms(ms);}                 
                        
          if(a==2) { pwmval32=150; TIM_SetCompare2(TIM3,pwmval32); a=3; delay_ms(ms);}
                        
                if(a==3) { pwmval33=200; TIM_SetCompare3(TIM3,pwmval33 );a=4; delay_ms(ms);}
               
                if(a==4) { pwmval34=250; TIM_SetCompare4(TIM3,pwmval34); a=5; delay_ms(ms);}
               
                if(a==5) { pwmval42=145; TIM_SetCompare2(TIM4,pwmval42); a=6; delay_ms(ms);}
                 
                if(a==6) { pwmval34=150; TIM_SetCompare4(TIM3,pwmval34); a=7; delay_ms(ms);}
               
                if(a==7) { pwmval31=55;  TIM_SetCompare1(TIM3,pwmval31); a=8; delay_ms(ms);}
               
                if(a==8) { pwmval34=250; TIM_SetCompare4(TIM3,pwmval34); a=9; delay_ms(ms);}
               
                if(a==9) { pwmval42=60;  TIM_SetCompare2(TIM4,pwmval42); a=10;delay_ms(ms);}
                                
                if(a==10){ pwmval32=200; TIM_SetCompare2(TIM3,pwmval32); a=11;delay_ms(ms);}
               
                if(a==11){ pwmval31=150; TIM_SetCompare1(TIM3,pwmval31); a=1 ;delay_ms(ms);}
                }                  
}
        
}  


全部資料51hei下載地址:
6自由度機械臂 手動按鍵控制.7z (184.62 KB, 下載次數: 312)
QQ截圖20190518153119.png
回復

使用道具 舉報

ID:144730 發表于 2019-5-20 08:32 | 顯示全部樓層

RE: 基于stm32f0103c8t6 6自由度機械手臂源程序

RE: 基于stm32f0103c8t6 6自由度機械手臂源程序補充說明

藍牙發送格式

藍牙發送格式

實物圖

實物圖
回復

使用道具 舉報

ID:479765 發表于 2019-8-23 12:41 | 顯示全部樓層
樓主 有材料清單嗎 我想學習一下 謝謝
回復

使用道具 舉報

ID:723527 發表于 2020-4-6 17:43 | 顯示全部樓層
huhouhezai 發表于 2019-8-23 12:41
樓主 有材料清單嗎 我想學習一下 謝謝

樓主,我也像學習學習
回復

使用道具 舉報

ID:116773 發表于 2020-4-6 20:00 | 顯示全部樓層
機械部分有圖紙嗎?自己能做么?
回復

使用道具 舉報

ID:366024 發表于 2020-4-11 15:59 | 顯示全部樓層
樓主,這個有仿真嗎?電路圖之類的
回復

使用道具 舉報

ID:760164 發表于 2020-5-24 21:36 | 顯示全部樓層
有沒有電路圖和報告說明書?
回復

使用道具 舉報

ID:610719 發表于 2020-5-28 08:32 | 顯示全部樓層
樓主,電源是怎么解決的,求助!
回復

使用道具 舉報

ID:144730 發表于 2020-6-4 11:47 | 顯示全部樓層
1206246381 發表于 2020-5-28 08:32
樓主,電源是怎么解決的,求助!

手機充電器,5v2A的就可以
回復

使用道具 舉報

ID:144730 發表于 2020-6-4 11:50 | 顯示全部樓層
hujj 發表于 2020-4-6 20:00
機械部分有圖紙嗎?自己能做么?

機械部分是標準件,那個寶有賣的,底座部分是用有機玻璃和M3銅柱制作
回復

使用道具 舉報

ID:144730 發表于 2020-6-4 11:54 | 顯示全部樓層
huhouhezai 發表于 2019-8-23 12:41
樓主 有材料清單嗎 我想學習一下 謝謝

藍牙模塊,舵機,舵機支架,stm32f103最小系統板,紅外模塊,按鍵模塊,那個寶都有賣
回復

使用道具 舉報

ID:806609 發表于 2020-7-25 08:52 | 顯示全部樓層
2479408246 發表于 2019-5-20 08:32
RE: 基于stm32f0103c8t6 6自由度機械手臂源程序補充說明

樓主,有上位機程序嗎?就是操作界面

回復

使用道具 舉報

ID:884211 發表于 2021-2-14 18:39 | 顯示全部樓層
樓主,請問你這個能實現人機互動嗎?就是人怎么動,這個機械臂就怎么動
回復

使用道具 舉報

ID:884211 發表于 2021-2-14 18:50 | 顯示全部樓層
樓主,請問能否實現人機交互?就是人怎么動,機械臂就怎么動
回復

使用道具 舉報

ID:884211 發表于 2021-2-14 18:56 | 顯示全部樓層
請問樓主,那個用手機控制機械臂的是手機app還是什么小程序,具體是什么app和小程序
回復

使用道具 舉報

ID:855071 發表于 2021-6-19 08:46 | 顯示全部樓層
謝謝樓主,希望學習一下,有沒有電路圖之類的?
回復

使用道具 舉報

ID:906792 發表于 2021-6-30 14:12 來自手機 | 顯示全部樓層
安排的明明白白的膜拜
回復

使用道具 舉報

ID:270740 發表于 2021-7-5 10:57 | 顯示全部樓層
樓主,寫程序要分塊,把每個功能細分成模塊,然后在Main中調用,養成好的習慣
回復

使用道具 舉報

ID:922391 發表于 2021-7-16 21:41 | 顯示全部樓層
手機藍牙怎么連,具體數字可以告知一下嗎?
回復

使用道具 舉報

ID:954078 發表于 2021-7-17 14:33 | 顯示全部樓層
renjingxian 發表于 2021-2-14 18:56
請問樓主,那個用手機控制機械臂的是手機app還是什么小程序,具體是什么app和小程序

應用商店搜索藍牙調試器有做好的,只需要把對應按鈕發送的數據修改即可
回復

使用道具 舉報

ID:1048021 發表于 2022-10-17 16:01 | 顯示全部樓層
樓主,可以簡單說一下6自由度機械臂的原理以及怎么去做出來的嗎,太深奧了
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲欧美日韩成人在线 | 久久久久久久国产精品 | 亚洲精品国产电影 | 国产中的精品av涩差av | 日韩在线国产精品 | 日韩免费视频一区二区 | 欧美日韩中文在线 | 久久精品91久久久久久再现 | 亚洲国产视频一区二区 | 成人av免费看 | 欧美日韩不卡 | 亚洲综合色 | 99reav| 超黄毛片 | 亚州毛片| 黄a在线观看 | 福利视频网 | 免费久久久 | 久久av一区二区三区 | 欧美一二三 | 日韩欧美在线观看 | 欧美成视频 | 国产日产精品一区二区三区四区 | 99热在这里只有精品 | 一区二区精品 | 久久综合狠狠综合久久综合88 | 91偷拍精品一区二区三区 | 国产精品国产成人国产三级 | 九九热在线视频观看这里只有精品 | 日日噜噜噜夜夜爽爽狠狠视频97 | 精品亚洲一区二区三区 | 欧美一级黄色免费看 | 日韩视频一区 | 夜夜摸夜夜操 | 日韩精品av | 久久av一区二区三区 | 极品销魂美女一区二区 | 欧美日本高清 | 国产精品99久久久久久www | 欧美美女二区 | 天天爱爱网 |