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@14:3403ce49a37a, 2016-04-05 (annotated)
- Committer:
- baba2357
- Date:
- Tue Apr 05 17:25:09 2016 +0000
- Revision:
- 14:3403ce49a37a
- Parent:
- 13:7335d90b551a
??????;
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" |
baba2357 | 14:3403ce49a37a | 6 | //赤外線・超音波 |
baba2357 | 14:3403ce49a37a | 7 | AnalogIn IR_r(PA_1); |
baba2357 | 14:3403ce49a37a | 8 | AnalogIn IR_l(PB_1); |
baba2357 | 14:3403ce49a37a | 9 | DigitalInOut uw(PC_4); |
naoakiarimoto | 12:2450012ce888 | 10 | #define PI 3.14159265f //円周率 |
naoakiarimoto | 12:2450012ce888 | 11 | |
naoakiarimoto | 12:2450012ce888 | 12 | //bole target |
naoakiarimoto | 12:2450012ce888 | 13 | #define TARGET1 150.0f //2段目の位置 |
naoakiarimoto | 12:2450012ce888 | 14 | #define TARGET2 0.0f //1段目の位置 |
naoakiarimoto | 12:2450012ce888 | 15 | #define TARGET3 30.0f //移動時の位置 |
naoakiarimoto | 12:2450012ce888 | 16 | |
naoakiarimoto | 12:2450012ce888 | 17 | //blossom target |
naoakiarimoto | 12:2450012ce888 | 18 | #define TARGET4 470.0f //桜の位置 |
naoakiarimoto | 12:2450012ce888 | 19 | |
naoakiarimoto | 12:2450012ce888 | 20 | //hand power |
naoakiarimoto | 12:2450012ce888 | 21 | #define CLOSE 0.5 //回収pwm値 |
naoakiarimoto | 12:2450012ce888 | 22 | #define OPEN 0.3 //解放pwm値 |
naoakiarimoto | 12:2450012ce888 | 23 | |
naoakiarimoto | 12:2450012ce888 | 24 | //target-range |
naoakiarimoto | 12:2450012ce888 | 25 | #define LIMITR 410 //右赤外線の判断距離[mm] |
naoakiarimoto | 12:2450012ce888 | 26 | #define LIMITL 410 //左赤外線の判断距離[mm] |
naoakiarimoto | 12:2450012ce888 | 27 | #define UWMAX 400 //超音波の許容最大値[mm] |
naoakiarimoto | 12:2450012ce888 | 28 | #define UWMIN 375 //超音波の許容最小値[mm] |
naoakiarimoto | 12:2450012ce888 | 29 | |
naoakiarimoto | 12:2450012ce888 | 30 | //arm limit |
naoakiarimoto | 12:2450012ce888 | 31 | #define HMAX 10 //昇降完了判断上限[mm] |
naoakiarimoto | 12:2450012ce888 | 32 | #define HMIN -10 //昇降完了判断下限[mm] |
naoakiarimoto | 12:2450012ce888 | 33 | #define PUT 5 //幹を離す高さ[mm] |
naoakiarimoto | 12:2450012ce888 | 34 | |
naoakiarimoto | 12:2450012ce888 | 35 | //pwm-MAX |
naoakiarimoto | 12:2450012ce888 | 36 | #define MAX 0.8f //出力の上限 |
naoakiarimoto | 12:2450012ce888 | 37 | |
naoakiarimoto | 12:2450012ce888 | 38 | |
naoakiarimoto | 12:2450012ce888 | 39 | //pid-coefficient |
naoakiarimoto | 12:2450012ce888 | 40 | //arm |
naoakiarimoto | 12:2450012ce888 | 41 | float Kp_a=4.3f; |
naoakiarimoto | 12:2450012ce888 | 42 | float Kd_a=0.0f; |
naoakiarimoto | 12:2450012ce888 | 43 | float Ki_a=1.1f; |
naoakiarimoto | 12:2450012ce888 | 44 | |
naoakiarimoto | 12:2450012ce888 | 45 | |
naoakiarimoto | 12:2450012ce888 | 46 | |
naoakiarimoto | 12:2450012ce888 | 47 | |
naoakiarimoto | 12:2450012ce888 | 48 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
naoakiarimoto | 12:2450012ce888 | 49 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
naoakiarimoto | 12:2450012ce888 | 50 | |
naoakiarimoto | 12:2450012ce888 | 51 | int arm=0; //昇降完了判断カウント |
naoakiarimoto | 12:2450012ce888 | 52 | /* arm=1->1段目完了 |
naoakiarimoto | 12:2450012ce888 | 53 | arm=2->2段目完了 |
naoakiarimoto | 12:2450012ce888 | 54 | arm=3->3段目完了、幹完成 |
naoakiarimoto | 12:2450012ce888 | 55 | arm=4->雑木林に接地完了 |
naoakiarimoto | 12:2450012ce888 | 56 | arm=5->桜取得完了 */ |
naoakiarimoto | 12:2450012ce888 | 57 | |
naoakiarimoto | 12:2450012ce888 | 58 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
naoakiarimoto | 12:2450012ce888 | 59 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
naoakiarimoto | 12:2450012ce888 | 60 | |
naoakiarimoto | 12:2450012ce888 | 61 | #include "pinMode.h" //使用するピンの宣言及び変数の定義 |
naoakiarimoto | 12:2450012ce888 | 62 | #include "decision.h" //幹・桜を感知する関数の定義(タイマー割り込み使用) |
naoakiarimoto | 12:2450012ce888 | 63 | #include "function.h" //pid,valve,interrupt,setup関数を定義 |
naoakiarimoto | 12:2450012ce888 | 64 | #include "step.h" //各作業段階の動作を定義 |
naoakiarimoto | 12:2450012ce888 | 65 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
naoakiarimoto | 12:2450012ce888 | 66 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
naoakiarimoto | 12:2450012ce888 | 67 | |
naoakiarimoto | 12:2450012ce888 | 68 | |
baba2357 | 14:3403ce49a37a | 69 | /* |
naoakiarimoto | 12:2450012ce888 | 70 | int main(){ |
naoakiarimoto | 12:2450012ce888 | 71 | setup(); |
naoakiarimoto | 12:2450012ce888 | 72 | |
naoakiarimoto | 12:2450012ce888 | 73 | //set-Ticker |
naoakiarimoto | 12:2450012ce888 | 74 | bole_checker.attach(bole_check,0.2); |
naoakiarimoto | 12:2450012ce888 | 75 | |
naoakiarimoto | 12:2450012ce888 | 76 | while(1){ |
naoakiarimoto | 12:2450012ce888 | 77 | |
naoakiarimoto | 12:2450012ce888 | 78 | //測距関係により検知 |
naoakiarimoto | 12:2450012ce888 | 79 | if(UW*IR){ //幹検知 |
naoakiarimoto | 12:2450012ce888 | 80 | n++; |
naoakiarimoto | 12:2450012ce888 | 81 | bole_checker.detach(); |
naoakiarimoto | 12:2450012ce888 | 82 | } |
naoakiarimoto | 12:2450012ce888 | 83 | |
naoakiarimoto | 12:2450012ce888 | 84 | if(n==1){ |
naoakiarimoto | 12:2450012ce888 | 85 | expand_gf(); |
naoakiarimoto | 12:2450012ce888 | 86 | }else if(n==2){ |
naoakiarimoto | 12:2450012ce888 | 87 | expand_ff(); |
naoakiarimoto | 12:2450012ce888 | 88 | }else if(n>2){ |
naoakiarimoto | 12:2450012ce888 | 89 | expand_sf(); |
naoakiarimoto | 12:2450012ce888 | 90 | } |
baba2357 | 14:3403ce49a37a | 91 | |
naoakiarimoto | 12:2450012ce888 | 92 | //自己位置による条件 |
naoakiarimoto | 12:2450012ce888 | 93 | if(){//雑木林 |
naoakiarimoto | 12:2450012ce888 | 94 | set_bole(); |
naoakiarimoto | 12:2450012ce888 | 95 | } |
naoakiarimoto | 12:2450012ce888 | 96 | |
naoakiarimoto | 12:2450012ce888 | 97 | if(){//花見場 |
naoakiarimoto | 12:2450012ce888 | 98 | set_bole(); |
naoakiarimoto | 12:2450012ce888 | 99 | } |
naoakiarimoto | 12:2450012ce888 | 100 | |
naoakiarimoto | 12:2450012ce888 | 101 | if(){//桜 |
naoakiarimoto | 12:2450012ce888 | 102 | blossom(); |
naoakiarimoto | 12:2450012ce888 | 103 | } |
baba2357 | 14:3403ce49a37a | 104 | |
naoakiarimoto | 12:2450012ce888 | 105 | |
naoakiarimoto | 12:2450012ce888 | 106 | pc.printf("|%d|\t%d\t%f\t%f\t%f\n\r",target,count,dist_n,devi,pwm); |
naoakiarimoto | 12:2450012ce888 | 107 | wait(0.1); |
naoakiarimoto | 12:2450012ce888 | 108 | } |
naoakiarimoto | 12:2450012ce888 | 109 | |
naoakiarimoto | 12:2450012ce888 | 110 | } |
baba2357 | 14:3403ce49a37a | 111 | */ |