Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Fork of circle_war_ver_A_NUCLEO_ by
arm_updown.h@13:7335d90b551a, 2016-04-04 (annotated)
- Committer:
- naoakiarimoto
- Date:
- Mon Apr 04 09:26:26 2016 +0000
- Revision:
- 13:7335d90b551a
- Parent:
- 12:2450012ce888
- Child:
- 14:3403ce49a37a
add arm
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
naoakiarimoto | 12:2450012ce888 | 1 | // 関数はヘッダファイル内にまとめる |
naoakiarimoto | 12:2450012ce888 | 2 | // IRはGP2Y0E02Aを使用する |
naoakiarimoto | 12:2450012ce888 | 3 | // (pc5.pc6.pa8.pa9)以外のpinを使う |
naoakiarimoto | 12:2450012ce888 | 4 | |
naoakiarimoto | 12:2450012ce888 | 5 | #include "mbed.h" |
naoakiarimoto | 12:2450012ce888 | 6 | |
naoakiarimoto | 12:2450012ce888 | 7 | #define PI 3.14159265f //円周率 |
naoakiarimoto | 12:2450012ce888 | 8 | |
naoakiarimoto | 12:2450012ce888 | 9 | //bole target |
naoakiarimoto | 12:2450012ce888 | 10 | #define TARGET1 150.0f //2段目の位置 |
naoakiarimoto | 12:2450012ce888 | 11 | #define TARGET2 0.0f //1段目の位置 |
naoakiarimoto | 12:2450012ce888 | 12 | #define TARGET3 30.0f //移動時の位置 |
naoakiarimoto | 12:2450012ce888 | 13 | |
naoakiarimoto | 12:2450012ce888 | 14 | //blossom target |
naoakiarimoto | 12:2450012ce888 | 15 | #define TARGET4 470.0f //桜の位置 |
naoakiarimoto | 12:2450012ce888 | 16 | |
naoakiarimoto | 12:2450012ce888 | 17 | //hand power |
naoakiarimoto | 12:2450012ce888 | 18 | #define CLOSE 0.5 //回収pwm値 |
naoakiarimoto | 12:2450012ce888 | 19 | #define OPEN 0.3 //解放pwm値 |
naoakiarimoto | 12:2450012ce888 | 20 | |
naoakiarimoto | 12:2450012ce888 | 21 | //target-range |
naoakiarimoto | 12:2450012ce888 | 22 | #define LIMITR 410 //右赤外線の判断距離[mm] |
naoakiarimoto | 12:2450012ce888 | 23 | #define LIMITL 410 //左赤外線の判断距離[mm] |
naoakiarimoto | 12:2450012ce888 | 24 | #define UWMAX 400 //超音波の許容最大値[mm] |
naoakiarimoto | 12:2450012ce888 | 25 | #define UWMIN 375 //超音波の許容最小値[mm] |
naoakiarimoto | 12:2450012ce888 | 26 | |
naoakiarimoto | 12:2450012ce888 | 27 | //arm limit |
naoakiarimoto | 12:2450012ce888 | 28 | #define HMAX 10 //昇降完了判断上限[mm] |
naoakiarimoto | 12:2450012ce888 | 29 | #define HMIN -10 //昇降完了判断下限[mm] |
naoakiarimoto | 12:2450012ce888 | 30 | #define PUT 5 //幹を離す高さ[mm] |
naoakiarimoto | 12:2450012ce888 | 31 | |
naoakiarimoto | 12:2450012ce888 | 32 | //pwm-MAX |
naoakiarimoto | 12:2450012ce888 | 33 | #define MAX 0.8f //出力の上限 |
naoakiarimoto | 12:2450012ce888 | 34 | |
naoakiarimoto | 12:2450012ce888 | 35 | |
naoakiarimoto | 12:2450012ce888 | 36 | //pid-coefficient |
naoakiarimoto | 12:2450012ce888 | 37 | //arm |
naoakiarimoto | 12:2450012ce888 | 38 | float Kp_a=4.3f; |
naoakiarimoto | 12:2450012ce888 | 39 | float Kd_a=0.0f; |
naoakiarimoto | 12:2450012ce888 | 40 | float Ki_a=1.1f; |
naoakiarimoto | 12:2450012ce888 | 41 | |
naoakiarimoto | 12:2450012ce888 | 42 | |
naoakiarimoto | 12:2450012ce888 | 43 | |
naoakiarimoto | 12:2450012ce888 | 44 | |
naoakiarimoto | 12:2450012ce888 | 45 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
naoakiarimoto | 12:2450012ce888 | 46 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
naoakiarimoto | 12:2450012ce888 | 47 | |
naoakiarimoto | 12:2450012ce888 | 48 | int arm=0; //昇降完了判断カウント |
naoakiarimoto | 12:2450012ce888 | 49 | /* arm=1->1段目完了 |
naoakiarimoto | 12:2450012ce888 | 50 | arm=2->2段目完了 |
naoakiarimoto | 12:2450012ce888 | 51 | arm=3->3段目完了、幹完成 |
naoakiarimoto | 12:2450012ce888 | 52 | arm=4->雑木林に接地完了 |
naoakiarimoto | 12:2450012ce888 | 53 | arm=5->桜取得完了 */ |
naoakiarimoto | 12:2450012ce888 | 54 | |
naoakiarimoto | 12:2450012ce888 | 55 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
naoakiarimoto | 12:2450012ce888 | 56 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
naoakiarimoto | 12:2450012ce888 | 57 | |
naoakiarimoto | 12:2450012ce888 | 58 | #include "pinMode.h" //使用するピンの宣言及び変数の定義 |
naoakiarimoto | 12:2450012ce888 | 59 | #include "decision.h" //幹・桜を感知する関数の定義(タイマー割り込み使用) |
naoakiarimoto | 12:2450012ce888 | 60 | #include "function.h" //pid,valve,interrupt,setup関数を定義 |
naoakiarimoto | 12:2450012ce888 | 61 | #include "step.h" //各作業段階の動作を定義 |
naoakiarimoto | 12:2450012ce888 | 62 | |
naoakiarimoto | 12:2450012ce888 | 63 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
naoakiarimoto | 12:2450012ce888 | 64 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
naoakiarimoto | 12:2450012ce888 | 65 | |
naoakiarimoto | 12:2450012ce888 | 66 | |
naoakiarimoto | 13:7335d90b551a | 67 | |
naoakiarimoto | 12:2450012ce888 | 68 | int main(){ |
naoakiarimoto | 12:2450012ce888 | 69 | |
naoakiarimoto | 12:2450012ce888 | 70 | setup(); |
naoakiarimoto | 12:2450012ce888 | 71 | |
naoakiarimoto | 12:2450012ce888 | 72 | //set-Ticker |
naoakiarimoto | 12:2450012ce888 | 73 | bole_checker.attach(bole_check,0.2); |
naoakiarimoto | 12:2450012ce888 | 74 | |
naoakiarimoto | 12:2450012ce888 | 75 | while(1){ |
naoakiarimoto | 12:2450012ce888 | 76 | |
naoakiarimoto | 12:2450012ce888 | 77 | //測距関係により検知 |
naoakiarimoto | 12:2450012ce888 | 78 | if(UW*IR){ //幹検知 |
naoakiarimoto | 12:2450012ce888 | 79 | n++; |
naoakiarimoto | 12:2450012ce888 | 80 | bole_checker.detach(); |
naoakiarimoto | 12:2450012ce888 | 81 | } |
naoakiarimoto | 12:2450012ce888 | 82 | |
naoakiarimoto | 12:2450012ce888 | 83 | if(n==1){ |
naoakiarimoto | 12:2450012ce888 | 84 | expand_gf(); |
naoakiarimoto | 12:2450012ce888 | 85 | }else if(n==2){ |
naoakiarimoto | 12:2450012ce888 | 86 | expand_ff(); |
naoakiarimoto | 12:2450012ce888 | 87 | }else if(n>2){ |
naoakiarimoto | 12:2450012ce888 | 88 | expand_sf(); |
naoakiarimoto | 12:2450012ce888 | 89 | } |
naoakiarimoto | 12:2450012ce888 | 90 | /* |
naoakiarimoto | 12:2450012ce888 | 91 | //自己位置による条件 |
naoakiarimoto | 12:2450012ce888 | 92 | if(){//雑木林 |
naoakiarimoto | 12:2450012ce888 | 93 | set_bole(); |
naoakiarimoto | 12:2450012ce888 | 94 | } |
naoakiarimoto | 12:2450012ce888 | 95 | |
naoakiarimoto | 12:2450012ce888 | 96 | if(){//花見場 |
naoakiarimoto | 12:2450012ce888 | 97 | set_bole(); |
naoakiarimoto | 12:2450012ce888 | 98 | } |
naoakiarimoto | 12:2450012ce888 | 99 | |
naoakiarimoto | 12:2450012ce888 | 100 | if(){//桜 |
naoakiarimoto | 12:2450012ce888 | 101 | blossom(); |
naoakiarimoto | 12:2450012ce888 | 102 | } |
naoakiarimoto | 12:2450012ce888 | 103 | */ |
naoakiarimoto | 12:2450012ce888 | 104 | |
naoakiarimoto | 12:2450012ce888 | 105 | pc.printf("|%d|\t%d\t%f\t%f\t%f\n\r",target,count,dist_n,devi,pwm); |
naoakiarimoto | 12:2450012ce888 | 106 | wait(0.1); |
naoakiarimoto | 12:2450012ce888 | 107 | } |
naoakiarimoto | 12:2450012ce888 | 108 | |
naoakiarimoto | 12:2450012ce888 | 109 | } |