From cb53424159bf567d0a035a7e19fcc867601a1a78 Mon Sep 17 00:00:00 2001 From: Mathis et Yohan Date: Mon, 27 Dec 2021 22:57:31 +0100 Subject: [PATCH] Update Servo Control Mode --- .../R2Home _3DPRINT_V1.0/Battery_mount.stl | Bin 403784 -> 434184 bytes .../R2Home_OBC_V1.01/R2Home_OBC_V1.01.ino | 95 +++++++++++------- 2 files changed, 60 insertions(+), 35 deletions(-) diff --git a/RLS_V1.0/R2Home _3DPRINT_V1.0/Battery_mount.stl b/RLS_V1.0/R2Home _3DPRINT_V1.0/Battery_mount.stl index 1b3d4cfa471180e28cf2a7364581b5154484cc3c..1b4267d2b93719298cc4198aad8e604625532239 100644 GIT binary patch delta 32347 zcma)Ed3+T`whl>1!oCC*S;LkPkOwMj)ZBCgWf2qv!BNo}#la1A#sN{ZE{+ShjN*1x zL|`BU6t@8dQMqXp5k*u+6qP|ypSXYvxFJhkeO2{!pWFB5{f0mIo%DCUbE@jra;m!P zyuPLNteQ6WoT0wyl$F)A>in|jpL+7;&k9vCKkG|>eABMpIp;iFIX$b!Uzgj-dw$Zx zm3W?&RpkBo;)g4TmukkEci!)H(wgNS56eq>)eulEIx0UsyPhhr$?glcfI?8mmo zxpgw^rSatryz5M{h)Bbbzx=JW_wrymsmz&Ke&);5(iqf&k3RKUd$Y>GP^d}%uC?Xu zZ@U)rgmxAvcoQMUfUi(*I2 z{4$L}Em&&uVgqm8&Ga$pf~#X{*qp}=g^)B1x#G0~Z+8hO&Gjf5v*DW9N4p9OaA*xu&ZX%uR~$?WtiVF0U46sY0(tH&02ALWA5LU%4#lX8hj!>rY3iyyFz zGCgo(7{E~mS_@kGx$@6w(!jg<7Driw-$ef;hC)OdhKygdc@H|#12={N3@4I7Ej<6v zoQ7UiWBPD?%Py)X}qmb$gvC@~Bok^xzd zG36Z|<0xf%wwD5e*Ma{e)PoNVw-VK9@WI)E8^8La4Y_ZDpz>T43w54E7 zssXt9?v`HLZybd)m!S}m49J-G7OkceJ#fp>$kLY7!t+zxAL-ry_as@D{V^1ib{kMHn*-YT@~Z`;PW{D^|p^~uQXo%w;23YpHafwoz|KWuQVW)5T-8f-U@SdYf+RwQf?@p8`{Ul;=iN9I zvA%Jb(3sSMsZ-|m5knDcDArPmNCxDJ<;Qv7{hdCrQ2(mjc&9O`22<-s94{snL<5Kl zBqAA*H|^`|ee^w?=t;W_AqOWe+LBrdrn*e&C#FZlHHdE{A}Np?F6{5!b+MR&lbnKS zOKQQ=Gkg1sX&wO@0<}CPAW4C|pn8D!=ofT?D3FT@jY%yyIdSs@!hsS+IA9~;>xx7zP&X`n#siUV35J7}% zuC)@849NINyo*Jkl4PJlTT%;__6_dusW2RJzq@e)2#BOWM(6rzy9=NYawQpZNd~px zWYd*>MOf!La56xYj`*Zu$QUM{4i&*;lEEX5NiCS_lzW^AP~A{8PKZbbWDNIjmpoLd zOyFFmM{bf)u%u88PBs?y7NNGARE!fM(lBI9To?R=is)Si!ucfXFKta%LJgaSi&yp( zn+7y48d)OJFl0=@^?Qqr$y#nqXiI9r(mRJs-0r7ol{$Zoo9B%aLXrX*t3;1+bfQP@ zT5ho_T#oz^lh-5(4A+7&h1IK_5J4Hk(RHO5O8&7pkI1Nce8iuUH zP(QyB82xocIM+oPMoVcm0KZIZ;J10}6iX>Hn^7IpN<Ej)j>Yjgj#5srbF)-2W%ffF(y>%i3?@ZQPJ2P1;%St>Lp z)nIDrrG@^-&p1jM!w!i^24o$$`rXITi5tA8?zAPfV5z5Sa+E*k1Ug{=Wgv%03S=F* z`V$XVx|%RZi!!K%=MVna#vl5fRLe5 z)c~}~FY!A!7e7fkVp@qv!;p0tDt>ovWugpf;dztIJ^Ue8Yaa@I9-Yf`G_(HBodN_A?uh{tXMpRi882# z=R3Y0;NLM^tcvEOM7-y|XpL)Kxa|MvzXEMtxPNsJHLl3Hf|$L~I4 zh@%9@h;TwgQXuOv)bF~NPF&|QP9%d`u!Ii0r~7HHB0LY(hzcNS7_tsS{YPGL6poUl zG$yt197A#bK04vSu0$jQ^2S2d+ut#5q%PO-dgh`QPZoO~IzMXiI9r5~lg< zW-B`3Yl9FPWkv=KgRUc2|M}!)Pf}}Sm)Ky2j71PL>VWfz=?h_qGMV* zajT+nLSs@3rm*y0{-$tZUgStbG9c?WDXt<4zdNJzD1~Zxjv!*}<8;CufJCHW$ofr+ z_({0Sh%i*32B4>oc^XZm6aBlJy^KVpVaWPbis)S2FGU&D!gGXT{#QW<=B`Xa(lBKG zl0}RX?);(*YT-Eo)b~fy33rzgadwq4j6d|N6fxephmBIGh35#hYvypg>q*7zlO-bU zLe}qC#KdL7dDK5jp&FiJ)3ECWF*}+azeJ>A$ofr+n1Xq#5M?+m`~CyFpPM#`dET5| zfI>tXhOA$uh{c5GBT)vm@SJP%3zoF3LQ4E5-4*-k0}=-rL>h+t_igXiG_6M`bup*~OO)+T@|8a5X|IoJ zi6|J8h9STE>zg%ioOZfvt|)~JYQYp`>tvlCiaYh8vqYp_$Tt*is2O|xD7^o8YxEga zby1v}>0Fexlf*?;Z|HNOw)%VsPKXG@rc%A8zEZQ|UQ9#y-7_&1C{%+f%C;sGHe8e3 zq2B{YL^2@nEc9z0dKl9XoYcjj7A#TL41N9@@1qYyf6;F=BqR+t)J}>U)ztJ(U>bsx zObn?7OR0=~`fTVueKsT!Fcj7B$J`5RYX0|LOhXmFt8R5ss0CA$hnJ4i+T?LuDBW?jvI`w=&zBF$7C6so}#WlQOzKU8R>&xRx-4MX1CWqr-{|HKXePU>Pn zOF<2$QYr7~*9P?l<;5f-4MV$9Oh==Yrxk#-gSXxDLT&7aT1&JRxNqEHK_ zC|gE}ekJvhe%~n(X&3UMvh6h!c3=w&9|1!NV^R&KQYj<#%eBk&L4-sk1M>P^pV$23 zHae+`K`mHP{KJ;(E`2z3ral}3L_`{fd~naVHMgBZCv`EX1xu8z57b|edgJ4ua>k@# z$j7w&NjOQN2nMy_gmO@ka#n!_ z%4hZb@OPICgDBl4Bn5IRMR%2Qb}k}P3r=pms=gm~V96jN8Ibv0zyCnv>OLRiFd-z> z;N*q?kt(Fub(lBH`A6{BCD6d*i zLorTVM5Gpc^qSJd=j^E0A4wr3DUkWx)Vi?Mm1%D85 z&80t{;bKBWYQf1Vo16J|!5ZQHUZt0xfI&nuAoKa~(mv~JtMn45Vq6vpNi{f``Fk@z zTzWMnU=WcE$b4=qq8IBJmvz2@%PFoXXI_d5qya z5vc_qSE-dbez<9nl&c&fDUkWx)#**z>NaF{|#*~1c%T9D_q`^`8{tve9fMNuf@`N-@~E6j#endOJg zB_T`_b>mzoZAmRW&zt&6MK}d(hB6bXgd_!WDuwfWltC>#f1%K?2-gzHAQIYD zBhA1fV4I7}k2D4fwXhT&Zdg+hu8L$xL^2?!Fyd|q6}&^%u=s=ceYtq5kx9+1`(hTk%l4jxoNF9W1A?0T6n&s%lZn2 zTv?K#0!SK$oJwJkCXGogJfA#yV}*?!Yxa&?A{j&^1M=j_ij=wS<}6{jDUDe*tA*!( z+_Stq9`zxTFw~49I+Lop1*rZAmRWzrJjH z#e^No?c?H-Vxb{sWY93^d~Tg^FB2NG3~J%|W4k`D2zFR;$#94=PDp{1R0=m`(wNl3 z^Y`|ATM=wXhHyz~+oVBGNA8r$4Lbg&R^;7lmptMcLLw_Y`y5ArWa9@?Wm1 z?*$z=IPHisw3aez08%Ns&zo}_iAckcPn=ue1w%17wuv&Rh3AxQMfBiJD(pxlBn?Ae zJ))6kCzWT{TwM%GCI+=&iSqE$*k3ya=VB5Oc5VMZdP);7m>#hqHHU9e3bpW@vaJbE z_#^@+)PlTZZ&NRr=7TdqbN-b{4W?2lJl&LtGz|Ip&CNW!V0B6C56(lQ3~K4;N>KEU zG&pnxg=*3;uycvihBn?AuHno`-1`(1X8Pr0g zK-oIcVTU<6mx#0r`Rl>@{zn)N)kV>2Mhm7WTPHezGVcH+;tU%G4(XFnIdC5$qLQVjrQY%hBSuOcNP4MXORaCqs= zvA2w^_uSa*`*oLoYD$UzNuQIS0YlbbHkj+91zOI@s_-UVywLpm@nrVCnblxOL^2@r z_9t2(o_zS#qn2i3Xf0)~kAlLxoR)Gz_XdU{5y-raDVLn4sf4N6rhOnBrWxPZbe!v48|D-(Lvv{;K%`;Fyf|o!RXE`nQ}-x?T43@skl;!o{@~R=Y06Tby>$Lp(rk6y$QVR@TH?xc{UtS*k97LeS`(o0PW++|G=C6K` zv1+7%&YNJ?$^Q3Z85z_9gV(w&WBH@Mnqo=!&{9;hz!~~C>hC)5&D*~yW-rOfvWPSc znfJP^lY4rv62%G`)B=N-v@GLi)wG!zArgYjYgXySdb|C}ShmfWlEoqe?C>%c25#)~ z*+F-g3}`7_GR7hnKP7WW@58rXo=WweWn$(Ba;r-z{)H zmfrbJb=GORCK8f{F=^#w4fQs4;$n5om90$OB_bG!dd;&7RZ*{jrq4oY&$UCmn@?S6 zu2i!mcz();O7F3WG+Q#MZD5v&Fl*Sn$z^}HKR?vD2Yv);3ksuzAVK zGH%__A!D(emNMOm7oaTV)#DyF0|UP_5y-s3lwPdzufH-3iAV-y-e$5s3RZnkdZ@N` zWg^}@J2!Dp^XyhfK`FIg&s&(kv^KF*cay>wz0gH|D+TP@sMYy?C51!>|LjySywNki5NVp6%bU@|`zUgCP;g zfb7D)#0_WWv^DWC<3LO5-4phvP5M*_aYACq*qlLXUU5-S4sQQJ;1Pi} zWC+g1j2aUT^^=HXK<2rJ{Rz(*yuft3C_`&0bJhZiJgJGt)*l=f6pIM7c+MkDStnOl zn*BjqvB&^BJlDc#xLTE%olY8sYM{vTws@?1RizmY5`oNylmAHUf!Bm$Y|w{V{L^qJfvRkRpV1JkbV7w%`){SN( zP>hPOSbS>)3SU6En*8y%U{DZ&7T<-X7i-WhH>CJb_GGEtOC)Yf)FNHz|wZPz8 zM9Vm@+n$Vdrt&5~}<%Hpw0M{G4t1Z0Xu3Y_qLsC6>^$5E#4Q3kcZ5HE9ecWmda zF+L<>VgtTdmZq$e6DQTw*x5O)3sY(9Oe6?eV$3+b%Kv3t&fvs4Ej6;e(JW4@CXLS-P_2q@ zzN~ofxeL1D!U8g5AfW_gnP@@}9JNTey-ysi5@QvA#1XDpFOlo4i1fsdcI z|EpMazv78B3e`Xl6S#nK&f%|%pXk$}S|X5{O9pakYaKCkB6iwY5)ll0Q3aIAS-5}< zCru|d==SlTSwV9F5fmeb8FIkL`Tp6i-&V{?V^9lhX5_Ix*2g<^U9Z zq73GgvJKqs=oO1k?t5<TPd^VIUWoLNYR_>EGJN7*D6f&b+^B_vBq>ywg~e5#AMq zle3=azPMl2V&go=#LPo?aT1i^XEPHR;ecaQ>wGt8RMXT~0$m;U$9^ z;Vfg=mN`}DSI6-bZo6in4>GAB{RUExUsD;dW>BXA){#{i!-c#9CB2fm@ z`srd}@#)?5&Z@sOdo7JZHPBHjo0Jg6YB%%ts^-Zy-6R5;`4J)W2eoy7am%c#fj^yV z7(}3@Bn7{f&EW_qtM}bn_5Qer(#T-D;j4-A6{w9tW(p(OESXjKq%H5Cws-)s&7hTP|NgxrX#XW*0&m7yzNQPP>7%?%%7BA zteXqQ6!-eMNtzSMVDcvGOI;uW8!C+w?w=vH1{7uO)=5HJ4uI{h=wFxCh0mivfqw0wc`A6J`9O zT!J2`F_8}B|E^e)5oXAVI-xDtr50qYugd1TiBgye2Wm_*^WPUsGO$|OOf*p+rdZ0w zHdKQXEDbiXOq4@rqZyG&mJz@@CPcA38dK$vDi zl-JlL0xg#(!rEoh2mmf0gR!faoB@FDW`4MNi40eR2)d~uvo566kO6$apcdFnq2L&L zQo%n{ctTK<@lV~wl3_3J;=79c7c&(Y3fK2R32)hpHf2qWF{uTa7vt0GP6S%1vneOg zyt7TZ;P|PD|1`yjD+%lHT8(SdYhkJNk~%g@)zX|-$~zo zK@0PyQX-N8nTda_lV*FKF~y29sHGW7BsxM(+RQ3lhUS7XW>B*9m@dk3CT$9n9$60-@7ARq6F0{^vt4f1WK?GV%5+GHIRu& zqmaWSgDCi->vrKl$uys2PzwzGfsb+t*Fc%x?_NW3kU=0b!J>3->-xa3ff%#hNQ=HHT8DP8YD(+w*`OAXi zGE$g?1r+9Uu{HVPU+cSNYG7(%X+RCb6{}I7<;I6Z^u!+;h8*UvLEUdj_A_;t6sZN7 z`Ep$Mo3_+AkqBg_?va)>j%bd69bJLBaEikABIn3u|KA6gxX+P|e5M;&<(v)@b`2KOGVbEQ6T|30T zqv7$DkPp?K>i<6O_zY8e<)p%lQ+i@d|J+u?t<`R)Pcy3#e2Y2U|8VGV|J;}8L9Sm* z=eAu|FPPVWByR7YThwyXH{UJGPJRB8eqMk6!0R5*PVDTT+p$yXLb#~;*-zxA5c;qB zzJG3mtJFu|&Nl6dZ)atO9bVwf)z5YB(!tdndzPFWIx%j#fJDG112S)t+KRtA-Mk8U zF3QkaDo9Sm>#COW^Tch&35*ee%$u{)lx5_XoMkE^5y^ne%e|H{uV;Vz`A?KWHBjVr zA*eCegEVC+CzVaf zSS&KYW;P1Tcz0X-jK!iB7&=MD8!3<8-6JJO4F$4x6UIw1pWms2G1 zZMB|_#RHSfL*_e)Co9(Pz&AK6p+y8T^Q)v6;Lf)inJG;ok^xyHhr#EoSBzX_oJ1*9 z14SmSi6^H_eQYj^#hf|N;>-MW#!EF12MpSR)*wmYcLDbIdRbH0S0%-1C621jEiuhU znk&B-jwv;A5k5FtDG_)j12Vr~uukuPtC3kXq6}(*!S5wB1I>4(ZVZ-F)u8tD9f!8%zmpg3?s1X_|I6F0?^^EHFNs$@_LY<~S< zeY8^VE)9NGLQsB4fi6OO2 z3O0U;VV&$>Tpc(eA}Nq%qPBRlE(W#0NcqAenSJ+S>jNoB2uZ_`nOM#i3lwxNX-sNC z=GPvU(YdM4izh)r=ZaFOh3EW0#5(C!(k@^SftF;*EP(OkF_NKN1_w~6 z2AQ9iSSRJfj|!X+i87em@c(B}i(!TCe+&Y9{G+2;c?bc46H*|{#EkLew=sL77G+Qi z38+19-6rj@4DBx2o?T98vdH%$Jp+MWYS1TsHRl$Nv)tWK|QYoE~x zDWLNsN?WXB%BGn1m&T+PAp>lFplhAP7k`+M0WF1_#^_c2zSmNo z?YPjK*-7_OOZG|2*xBVO<3u8o0hynYTgIe2`gYg9e|iU}8Yuh{-BOObX0mB5i9qI8 z?b5krJkYa$#$u6SRwsT(Zz)+NXJwoYs0D}OlYZTSw@lm?%sE7$#Y+I`#d>V|7VBfQ zR@37=m_bMZo%a-MvDU1($vBb5nmTrFR>MmERKeITKG{qkR%e0_9j9+(r!Tg5FRr-B z6iOlwR_C_9t;5pXRUMYr-#ksJo#riyxuL=BI=(REHr{=oSQB2UnD^dwFv=Sm29XTN zDKmJi@$zi^$Y~6%WjFqyZ~-uF6Z?6)X--otBGBT(l3uL7`9m{0Ap>l#mexm)3HjzN zN?N(71`5|?OKI<|LFY5YA_6Uj9qGlI{Nt#M#c~XrPJuy>buwziR^vn(gA-~&PKnrJ zUe`Ste-diBPlap3@4ZJqwa@r)pNKCokTeXLL8UF$!N1>NDAJhJg3MUgGL~NOo2k1* zAT#XNmay@+&Mjr~=?`XfLJH`N^DU!a{SBt>(PB{x3~oOxW5x2(h5;nl%is@gg`_D< zIdat{8J&;;Hn)qG(W>X085z_9L+^D}kYiPUbGK<+2|E|J!BFGAJH1#B&Hu-}%=BpNLZp6y_hzOyMWu)UwX|_+jUob^K;gcZ*27klon?ztSsuu_7ad zM;M?mnW!z+ZM9DatwjV{JXuLE)?2G8MQhn&nNP$?0i8!V*2!9ZD@f<2rEPSQc^^iGc=EW4#kdgwK2Vd67!odr~C6K1eR?u;fS_S-QGgNEl8m zEXpfX6B{ivC9xA?g^!C~LdnQH6}2U~_4zN%uMlNW%RcX;E%BPzoI{>zQi;HaW+Mjw;E*`kh-LR9*HE!J2dHCIAi3P**Q%*4oxT!?Jy74o#7=pw6aOsAYnhnQ$>|N! sH~M_s^@AmSS5N<-ymF^+@%0e5_zVIqeR0p%7xzrhTGg_1UjO|60}G`>?nW%tp<09}M`#Ki{UGm@#n` zH66rcEV!O6>`$8*#zsg?lvHDoJyAioxWt6)gJ>iMgaw;v;vX``^W1yib1w}|nw;Kq ze!p|>J?H#7IM;Cbhw$-kdMrZ7JB{&NW8770j4L11;&1UeXPVayHz}mPTWHn2{ptqod?AON?>68*MFxGCr~O$F&o8gMCqJOCEa-5uJ3ChBzs~0qT0NUkRDEJ zBRsX-1By^BcXz@zcsqpGZ%8FGD_)GM%}N&b0cc7S|v9b z!46H1bwDw%1_ngq2x(h2e?v!jFL<#WIAaf9w3Cb z%|b|z%n_{<#PUZ9?IdVp>XY$}Z;OVsIUJ&rJ(pV9<1-z?UhZ#WhnDQBa=jSKs_@IA=QQ>z#`D=8ZYO?BU{ML{6(rw= zg2e}!f*SOTW+&5s(=#|{F@AaYVpPt&AI6DGidsZLAFn(!w&xA-~Q^~S^y4fc# z4aY$ZH^{c_WbK1CB|hm4&Ug$CqQ8p!`IDE=LLI0jm|R>3}tF**D0XfrH3iB{~d;TtWEkS-KVSA=iV{h>?>e_B=h`#-}rj-*bFr zSIwz8TNb!&%f*_RH2AsPI*VT*Y!4R_8^LXU&e0NK%Mj1uM4;U+!uV#bnO&H~Ruz() z{a-I^kAoPl{gDx6f#+`J!XTw^BTs7s z*CWS71}DHAqLED00b83tdC z*5tJh;G+|25WewizB<(BO?Dsxhv8a43v5R=k-J7P^s zTFoPZQ2KjC6^@E>$$G7ntamRShUOFQ;DDU#!rZ#BMU8ba>*={Nfe&B_jr2GX(vBJ& zEw{#&KPgR4gp9Hz3v(nnB2KbNTmPIcC$Y3sn8a30@wWwR)E$5 #include #include -#include +#include #include #include #include @@ -13,17 +13,17 @@ #define i_want_to_fly false // Simulated servo movement to test the servo movement :)) #define buzzer_turn false // Buzzer sounds as function of the turn command -#define no_init true // Skip init, for testing only purposes -#define rc_mode 2 // 0 = only roll, 1 = pitch and roll mixed, 2 = pitch and roll separated +#define no_init false // Skip init, for testing only purposes +#define rc_mode 1 // 0 = only roll, 1 = pitch and roll mixed, 2 = pitch and roll separated #define autopilot_mode 1 // Control linear or with "hands up" -#define drop false // R2Home's version, drop or motorised +#define drop true // R2Home's version, drop or motorised #define record_home false // only record autopilot #define dep_alt 100 // m above ground #define vup 1.5 // m/s #define vdown 2 // m/s #define gps_freq 5 // Hz #define nav_waypoint true // Doing the waypoint sequence before reaching home? -#define nav_home false // Should it go home after the waypoint sequence? +#define nav_home true // Should it go home after the waypoint sequence? #define sd_writing true // Should it write on the SD card or not? #define time_out 300 @@ -167,11 +167,11 @@ int count = 0; // SERVO / movingAvg st(5); -Servo steer; -Servo deploy; -Servo left; -Servo right; -Servo esc; +PWMServo steer; +PWMServo deploy; +PWMServo left; +PWMServo right; +PWMServo esc; float roll_man = 1500; float pitch_man = 1500; @@ -292,7 +292,7 @@ void setup() { strip.begin(); strip.show(); - strip.setBrightness(BRIGHTNESS); + strip.setBrightness(255); tone(buzzer, 523); delay(200); @@ -605,7 +605,6 @@ void datacmpt() { String g_text = String(channels[6]); String rc_text = a_text+","+b_text+","+c_text+","+d_text+","+e_text+","+f_text+","+g_text; - String servo_text; if (drop == true) { @@ -842,7 +841,7 @@ void flight_init() { dep_altitude = (dep_altitude+gps.altitude.meters()); - strip.setBrightness(50); + strip.setBrightness(255); setcam(1); if (record_home == false) { newfile(); } @@ -895,22 +894,22 @@ void ready_steady() { if (millis()-init_time>=1000) { - if (vspeed>vup) { flight_mode = 2; EasyBuzzer.beep(1000,100,50,2,500,1); strip.setBrightness(75); } - if (vspeedvup) { flight_mode = 2; EasyBuzzer.beep(1000,100,50,2,500,1); strip.setBrightness(255); } + if (vspeed-0.5) {flight_mode = 1; strip.setBrightness(50);} + if (vspeed>-0.5) {flight_mode = 1; strip.setBrightness(255);} if (merged_alt < dep_altitude) { flight_mode = 4; EasyBuzzer.beep(3000,100,50,5,500,1); strip.setBrightness(255); deployed = true; init_time = millis(); } } @@ -922,8 +921,8 @@ void flight_gliding() { if (((millis()-init_time) >= gliding_timer) or (vspeed > (vdown+1))) { wing_opened = true; last_errHome = errHome; - if (failSafe == true) {flight_mode = 5; strip.setBrightness(100);} - else {flight_mode = 6; strip.setBrightness(100);} + if (failSafe == true) {flight_mode = 5; strip.setBrightness(255);} + else {flight_mode = 6; strip.setBrightness(255);} } } @@ -948,7 +947,7 @@ void flight_gliding_manual() { //------------------- 7 -------------------// -void landed() { if ((baro_stab == false) or (gps_stab == false)) {flight_mode = 1; strip.setBrightness(50);} } +void landed() { if ((baro_stab == false) or (gps_stab == false)) {flight_mode = 1; strip.setBrightness(255);} } //------------------- 8 -------------------// @@ -995,14 +994,27 @@ void applycmd() { break; case 1: - servo_left = roll_man; - servo_right = 3000-roll_man; + servo_left = roll_man-500; + servo_right = 2500-roll_man; servo_left = servo_left+(pitch_man-1500); servo_right = servo_right+(pitch_man-1500); - servo_left = constrain(servo_left, servo_man_min, servo_man_max); - servo_right = constrain(servo_left, servo_man_min, servo_man_max); + servo_left = constrain(servo_left, servo_man_min, servo_man_max); + if (servo_left>(servo_man_min+10)) { + servo_left = map(servo_left, 1000, 2000, servo_left_start, 2000); + } + else { + servo_left = servo_left_max; + } + + servo_right = constrain(servo_right, servo_man_min, servo_man_max); + if (servo_right>(servo_man_min+10)) { + servo_right = map(servo_right, 1000, 2000, servo_right_start, 2000); + } + else { + servo_right = servo_right_max; + } break; case 2: @@ -1028,8 +1040,21 @@ void applycmd() { servo_left = servo_left+(pitch_man-1500); servo_right = servo_right+(pitch_man-1500); - servo_left = constrain(servo_left, servo_man_min, servo_man_max); - servo_right = constrain(servo_left, servo_man_min, servo_man_max); + servo_left = constrain(servo_left, servo_man_min, servo_man_max); + if (servo_left>(servo_man_min+10)) { + servo_left = map(servo_left, 1000, 2000, servo_left_start, 2000); + } + else { + servo_left = servo_left_max; + } + + servo_right = constrain(servo_right, servo_man_min, servo_man_max); + if (servo_right>(servo_man_min+10)) { + servo_right = map(servo_right, 1000, 2000, servo_right_start, 2000); + } + else { + servo_right = servo_right_max; + } break; case 2: @@ -1093,7 +1118,7 @@ void applycmd() { else { if (failSafe == true) { servo_deploy = 2000; } else { servo_deploy = map(channels[6], 50, 1950, 1000, 2000);} - } + } break; case 8: @@ -1124,9 +1149,9 @@ if (drop == true) { if ((millis()-tpwm)>=(1000/a)) { tpwm = millis(); - left.writeMicroseconds(servo_left); - right.writeMicroseconds(servo_right); - deploy.writeMicroseconds(servo_deploy); + left.write(map(servo_left, 1000, 2000, 0, 180)); + right.write(map(servo_right, 1000, 2000, 0, 180)); + deploy.write(map(servo_deploy, 1000, 2000, 0, 180)); } } @@ -1136,9 +1161,9 @@ else { if ((millis()-tpwm)>=(1000/a)) { tpwm = millis(); - left.writeMicroseconds(servo_left); - right.writeMicroseconds(servo_right); - esc.writeMicroseconds(servo_esc); + left.write(map(servo_left, 1000, 2000, 0, 180)); + right.write(map(servo_right, 1000, 2000, 0, 180)); + esc.write(map(servo_esc, 1000, 2000, 0, 180)); } } @@ -1208,7 +1233,7 @@ void setled(int a, int b, int c, int d, int e) { if ((millis()-lastled)>=e) { lastled = millis(); - colorWipe(strip.Color(b,a,c), 0); + colorWipe(strip.Color(a,b,c), 0); duration = d; timeled = millis(); }