【電子工作】倒立振子【Arduino】
目的
ロボットをとりあえず作って見て電子工作の知識をつける。
制御の知識を実際に使ってみて技術として身につける。
倒立振子参考資料
この2つの目的のためにまずは倒立振子なんてどうかなと思ってググってたら、すごい良い記事見つけた。
きっと自分の実力では半日では無理やろと思いながらもとりあえずこれを作ることにした。
メモ
・回路図
・村田製作所製ジャイロモジュールについて
ハイパスフィルターだったりローパスフィルターについてメモ。
きっと見る人が見たらすぐにわかるんだろうけど自分はわからない。
モジュールの端子④の電圧をV4とするとオペアンプに入力される電圧V+(ハイパスフィルタの出力)は次式で表される。
V+ = R1/(R1 + 1/(sC6)) × (V4 - Vref)
∴ V+ / (V4 - Vref) = R1/(R1 + 1/(sC6))
一方でオペアンプの出力電圧をVoutとしたとき、オペアンプに入力される電圧V-(ローパスフィルタの出力)は次式で表される。
V- = Vout - R3 × (1/(sC9))/(R3 + 1/(sC9)) × (V- - Vref)/R2
⇔
∴ V+ / (V4 - Vref) = R1/(R1 + 1/(sC6))
・マブチモータ(倒立振子)の仕様書
・モータドライバTA7291Pの仕様書
・モータドライバの使い方参考
・マブチモータ仕様
・圧電振動ジャイロモジュールについて
・シリアル通信について
【競プロ】p.24の例題【蟻本】
自分で解いたものメモ
#include <bits/stdc++.h> using namespace std; int main() { int L, n; cin >> L >> n; vector<int> x(n); for (int i = 0; i < n; i++) { cin >> x.at(i); } //最小値 int min_ans = 0; for (int i = 0; i < n; i++) { min_ans = max(min_ans, min(x.at(i), L-x.at(i))); } //最大値 int max_ans = 0; for (int i = 0; i < n; i++) { max_ans = max(max_ans, max(x.at(i), L-x.at(i))); } cout << "min = " << min_ans << endl; cout << "max = " << max_ans << endl; }
計算量はO(N)
【競プロ】p.22の例題【蟻本】
自分が解いたもののメモ:
#include <bits/stdc++.h> using namespace std; int main() { int n; cin >> n; vector<int> a(n); for (int i = 0; i < n; i++) { cin >> a.at(i); } sort(a.begin(), a.end()); reverse(a.begin(), a.end()); int ans = 0; bool judge = false; for (int i = 0; i < n-2; i++) { if (a.at(i) < a.at(i+1) + a.at(i+2)) { ans = a.at(i) + a.at(i+1) + a.at(i+2); judge = true; break; } } if (judge) { cout << ans << endl; } else { cout << 0 << endl; } }
STLのsortの計算量はO(N logN)らしいので、全体の計算量はO(N logN)
キリン解剖記 (ナツメ社サイエンス)
キリン解剖記 (ナツメ社サイエンス)という本を読んだ。
Twitterで流れてきて、ちょっと面白そうだなくらいの気持ちで本屋に行って手に取ったんやけど、 思っていた100倍面白くって、下手な自己啓発本を読むより100倍感情を揺さぶられ、自分の現状や将来について考えさせられた。
本を読むと伝わってくるのはキリンへの愛。
「世界のためにといった高尚な考えで研究者になったわけでなく、自分が好きなことをやっているだけ」という文章に痺れた。(文言はうろ覚え)
その文言の通り郡司さんは好奇心のまま本気でキリンと向き合い、様々な壁にもめげずに成果を挙げていく。
ドラマのようなストーリーと郡司さんのキャッチーな文体にどんどん引き込まれて気がついたら読み終わってた。
そーいえば自分も元々は、"ロボットで世界を幸せにするエンジニアになりたい"という夢を叶えようと思って、大学に入ったんだったと思い出した。
でも、気がついたら"この授業は単位取りやすそう"とか、"これくらいがんばったんだから、たいした成果ないけど卒業させてよ"みたいな思考に至っていた気がする。
そのままの流れで就職活動に至って、"この業界は安定してそうやな"とか"福利厚生のいい会社が一番やんな"とか"雰囲気が好き"みたいなところだけで、会社を選んでしまった気がする。
本当に自分がしたかったことには"きっと金にならない"とか"ベンチャー企業は不安定やし辞めとこ"とか適当に理由をつけて蓋をして。
会社の安定性や福利厚生はやっぱり大事やと思う。
お金は稼がないと生きていけないし、できる限り健康な毎日をおくりたい。 でも、それと同じくらい自分の夢も大事なんじゃないか?一度限りの人生なんやもん。
やっぱり自分はロボットエンジニアになりたい!
この本を読んでそう思うようになった。
本気で今後のキャリアを考えるようになった。
このブログを設立したのもこの本きっかけ。
目的は下記の2つがメイン。
あとは文章書きまくったら文書上手くなるんじゃないか思ってる。
他にも読んだ本とか映画とかの感想も書くかも。
郡司さんに負けないようにがんばるぞー!!!
ボルトのへたり係数と内外力比
ボルトのへたり係数と内外力の求め方がいつもごっちゃになるのでまとめておく。
内外力比 軸方向外力をボルトが受けると、ボルトが伸びて、その分だけ被締結物の圧縮が緩まる。
このときボルトの伸びと、被締結物の圧縮の緩まる量は等しい。
つまり、ボルトのバネ定数をKb、被締結物のバネ定数をKhとし、ボルト(被締結物)の変位をδとするとき、
F = (Kb + Kh)δ
となる。
すなわち、ボルトと被締結物の並列ばねである。
なお、内外力比とは並列ばねにおけるボルトの分担荷重と軸方向外力の比である。へたり係数
初期なじみや、ボルトと被締結物の線膨張係数差などで変位が生じると、ボルトが伸び、被締結物が圧縮が緩される。
ボルトに生じる引張荷重の増分と、被締結物に生じる圧縮荷重の増分は等しい。
つまり、ボルトのバネ定数をKb、被締結物のバネ定数をKhとし、ボルトの変位をδb、、被締結物の変位をδhとするとき、
ΔF = Kb×δb = Kt×δt
となる。
すなわち、ボルトと被締結物の直列ばねである。
なお、へたり係数とは直列ばねの合成バネ定数である。
浸炭焼き入れ
浸炭焼き入れについて調べてたらめっちゃわかりやすい記事があったのでメモ。
まとめるとこんな感じ。
浸炭焼き入れのメリットは内部の靭性を保ったまま部材表面を硬くすることが可能。
(靭性が低くなりすぎると割れやすくなって衝撃に弱くなる。)浸炭焼き入れは炭素含有量の小さい材料に使う。
(炭素含有量が多い材料は浸炭焼き入れのメリットが活かせない)炭素含有量の大きい材料は高周波焼き入れで部材表面のみ硬くする。
知らんかった・・・( ^ω^ )
修行がたりんな・・・