satotsuのいろいろつくってみた日記

いろいろつくってみたあれこれの記録。

arduinoで相補PWMをだしてみる(再び)

タイマについて聞かれて、前のソースみたらちょっと使いづらかったので修正。

わかりやすく、スイッチング周波数とDuty入れるようにした。

ISR (TIMER1_OVF_vect)は空っぽでも、ないと変になるので注意。

#include <avr/io.h>
#include <avr/interrupt.h>

void PWM_init(uint16_t fs, float duty) {
  TCCR1A  = 0;
  TCCR1B  = 0;
  TCNT1   = 0;
  
  // 0:in, 1:out, DDRB,DDRD: DIO, DDRC: AnalogIn
  // timer0->PD6,5, timer1->PB1,2, timer2->PB3,PD3
  DDRB    = DDRB | B00000110;

  // TCCR1A: COM1A1,COM1A0,COM1B1,COM1B0,-,-,WGM11,WGM10
  // TCCR1B: ICNC1,ICES1,-,WGM13,WGM12,CS12,CS11,CS10
  // COM1x1,COM1x0:   10: OCR1/TOP, 11:1-(OCR1/TOP)
  // WGM13,12,11,10:  1000(updown)
  // CS12,11,10: 000:stop, 001:clk, 010:clk/8, 011:clk/64,
  //             100:clk/256, 101:clk/1024
  TCCR1A  = (TCCR1A & B00001100) | bit(COM1A1) | bit(COM1B1) | bit(COM1B0);
  TCCR1B  = (TCCR1B & B11100000) | bit(WGM13) | bit(CS10);

  // TCNT1: counter
  // TIMSK1: -,-,ICIE1,-,-,OCIE1B,OCIE1A,TOIE1
  TCNT1   = 0;
  TIMSK1  = bit(TOIE1);

  // fpwm = fclk(16MHz)/(2(updown)*N*TOP), TOPmax=2^16
  // N*TOP = 16MHz/(2*1kHz)=8000, N=1, TOP=8000
  ICR1    = 8000 / fs;
  OCR1A   = ICR1 * duty;
  OCR1B   = OCR1A + 8; // deadtime 0.5us -> 0.5us*16MHz=8
}

// TIMER1_COMPB_vect, TIMER1_COMPA_vect, TIMER1_OVF_vect
ISR (TIMER1_OVF_vect) {
  
}

void setup() {
  // put your setup code here, to run once:
  noInterrupts();  
  PWM_init(10, 0.8);
  interrupts();
}

void loop() {
  // put your main code here, to run repeatedly:
}

 

波形はこんな感じ。デッドタイムの500nsもちゃんと入ってる。

f:id:msatotsu:20180519082809p:plain

タミヤのカムプログラムロボット

前に欲しくって買えなかった、カムプログラムロボットが再販されてると聞いて。

 

確かに売ってた。ヨドバシドットコムにもあった。早速買った。

 

どーん。

f:id:msatotsu:20180517224402j:image

 

開けたらこんな感じ。

f:id:msatotsu:20180517224441j:image

 

ここでプラモだったことに気づいて、1日寝かす。(SSDの換装で疲れてた。。)

 

よし、作ろう。

f:id:msatotsu:20180517224556j:image

 

あのロボット系列なので、ギアボックスがでてくる。ちょっと面倒だけどがんばる。

f:id:msatotsu:20180517224650j:image

 

なんとなく形になってきた。モータは2つ。

f:id:msatotsu:20180517224823j:image

 

できたー。顔ついてる。かわいい。

アームもうごくよ。

f:id:msatotsu:20180517224903j:image

 

ここで作るときの注意点。(つまりミスったとこ。)

 

4.ギヤケース組み立て

ブッシュは長だよ。短い方は使わないよ。よく見てね。

 

6.ステアリングレッグの組み立て

ワッシャーは2mmだよ。3mmの方を使っちゃうとあとで泣くよ。

あとブーツ。Bなら使わずに作るよ。うっかりつけるとうまく動かなくなるよ。

 

最後のページのパーツリスト。

使わない部品が書いてあるから、途中気になったら見たほうがいい。

 

おまけ(別売りのリモコンつけてみた)

f:id:msatotsu:20180519101014j:image

 

さて、arduino載せないと。

 

HP Pavilion 15-p256TX のHDDをSSDに換装する

2015年2月に家族用に買ったHPのノートPC。

水色でCore i7(5500U)が入っててかっこいい。

 

f:id:msatotsu:20180516194318j:image

 

ただ如何せん遅い。

買ったときはそこそこ速かった気がするけど、Windows10入れたせいか、いろいろアプリいれたからか徐々に我慢できないくらい遅く。

 

タスクマネージャみると、大体ディスクアクセスが100%になってる。

ウイルス対策ソフト切っても、WindowsUpdate切ってもだめ。

 

ベンチはこんな感じ。1MB/s切ってるし。ひどい。

f:id:msatotsu:20180516193543p:plain

 

なので、もうSSDに替えてみた。gramもSSDでめっちゃ速いし。

買ったのはcrucialのMX500 CT500MX500SSD1/JP。だいぶ定番っぽい。

 

f:id:msatotsu:20180516194509j:image

 

事前にcrucialのwebからツールをダウンロードして、HDDからSSDにクローンしておく。

Acronis True Imageっていうやつ。

SSDは別途買っておいたUSBケースに入れてつなぐ。

 

実はこのクローン2回失敗した。リカバリー領域がクローンできなかった。

起動領域はクローンできてるっぽかったので、もう強行した。結果は今のところ問題ない。

 

では、早速分解していく。

まず見えるネジを全部外す。

長丸シールの下と、長四角ゴム足の下を忘れないように。

ネジを外すと、DVDドライブは引っ張るだけで抜ける。

f:id:msatotsu:20180516194551j:image

 

キーボードの下らへんからパキパキとフタを開けていく。

f:id:msatotsu:20180516194723j:image

 

開くとこんな感じ。

フレキがつながってるので注意。干渉しそうなのはこの時に外しておく。

ツメを起こすだけなので簡単。

f:id:msatotsu:20180516194820j:image

 

買ってきたcrucialのMX500と入れ替える。

f:id:msatotsu:20180516194921j:image

 

フタをしてネジを止めたら完成。

 

そしてこれが換装後のベンチ結果だ!

f:id:msatotsu:20180516193744p:plain

 

速っ!!

もうこれは別物みたい。起動もシャットダウンも何もかも速い。

これでストレスなく作業できる。SSD偉大だねー。

windows10でSplatoon2のドット打ち環境を構築する

 

前にmacでやったけど、gram買ったのでwindowsでも同じような環境を入れたい。

geek-satotsu.hatenablog.jp

 

ここを参考に、arduinoを元の状態に戻していく。

qiita.com

 

突然だけどWSLのubuntuでデバイス認識できなかった(後述)ので、windowsでやることにする。

まずここにあるwindows用のdfu-programmerをダウンロードする。

https://sourceforge.net/projects/dfu-programmer/?source=typ_redirect

 

atmega16u2のファームウェアを拾ってくる。

https://roboticsclub.org/redmine/projects/quadrotor/repository/revisions/master/raw/arduino-1.0/hardware/arduino/firmwares/arduino-usbserial/Arduino-usbserial-atmega16u2-Uno-Rev3.hex

 

arduinoにジャンパーを刺してから、USBをPCにつなぐ。

ジャンパーを抜く。USB近くの赤いジャンパーのとこね。

f:id:msatotsu:20180515205036j:image

 

windowsで不明なデバイスとして認識されるので、さっきダウンロードしたdfu-programmerに入ってるATmega16U2のドライバ(atmel_usb_dfu.inf)を入れる。

 

cmd.exeで、ファームを書き込む。

dfu-programmer.exe atmega16u2 erase

dfu-programmer.exe atmega16u2 flash Arduino-usbserial-atmega16u2-Uno-Rev3.hex

 

うまく書けたら、USBを抜き差しする。COMポートで認識される。

これで元に戻った。 

 

以下、ubuntuでやったけどデバイスが認識しなかった。一応めも。

たぶんWSLだとusbが認識しないんだと思う。

---------------------------------------------------------------------------------------------------

ubuntuはストアから入れたので省略。ものすごく簡単。

 

ubuntuを起動したら、まずはapt-getを最新にする。

updateは早いけど、upgradeはだいぶ時間かかるので、ぼーっと待つ。

apt-get update

apt-get dist-upgrade

 

まずはdfu-programmerを入れる。

sudo apt-get install dfu-programmer

 

ファームを書き込む。ここでデバイスが認識されていなくて詰む。lsusbでも何もいない。

sudo dfu-programmer atmega16u2 erase

sudo dfu-programmer atmega16u2 flash Arduino-usbserial-atmega16u2-Uno-Rev3.hex

sudo dfu-programmer atmega16u2 reset

 

うまくいけばあとは前と同じだけど、環境汚したくないので、以下WSLでやろうと思う。

qiita.com

 

iPhone 5sのバッテリー交換

さすがにお古であげたiPhone5s、バッテリーが全然持たないらしい。

 

f:id:msatotsu:20180512182031j:image

 

うん。めっちゃ減ってる。購入時の58%とか。

早速aliexpressでバッテリー買って交換する。

 

途中、パネルが全然外れないで吸盤ちぎれてしまったり。

バッテリーが両面テープからなかなか剥がれず、バッテリーがぐにゃぐにゃに曲がったり。

写真撮る気力なかった。一応めも。

 

結果は容量回復したので成功ということで。

 

f:id:msatotsu:20180512182619j:image

 

これは結構気持ちいい結果。実は最初からちょっと容量少ないかと思ってた。

 

時刻があまり進んでないのは電池抜けてたからで、実際は1時間以上かかった。

 

これは外したバッテリー。壊れた吸盤。壊れたヘラ。。

 

f:id:msatotsu:20180512182350j:image

 

あとは実際に体感でどれだけ使えるようになるかだな。

LG gramのSSD増設

ついに買っちゃったよ。LGのgram。

 

もうめっちゃ軽いし、バッテリーがもうアホかというほど保つし、処理速度もめっちゃ速い。

 

13Z980-GR55Jです。8genのi5コア。

詳細はこちら。

www.lg.com

 

セットアップ中。

 

f:id:msatotsu:20180428203316j:image

 

しばらくなんだかんだ開発環境とか入れてたら、最初の128GBじゃかなり心細くなってきた。。

そして買った。WDのm.2のSATA、512GB。WDS500G2B0B。

 

早速付け替えてみる。

 

f:id:msatotsu:20180428203341j:image

 

ここをこうして、こうして、こうじゃろ。

ゴム足はかなり取りづらい。

ネジ6ヶ所取ったら蓋を取る。吸盤があるとすごい楽。

 

中はこんな感じ。

RAMは購入時のオプションで4GB追加済み。なので、もう空きスロットなし。

8GBで十分だし、デュアルで速くなるのでおすすめですよ。

 

f:id:msatotsu:20180428203350j:image

 

ここに買ってきたSSDをぶっ刺す。

最初にネジ外すの忘れないように。ネジで固定したら完成。

 

f:id:msatotsu:20180428203355j:image

 

ドライブはフォーマットしないと見えないので注意。

コンピュータの管理から、GPTでシンプルフォーマットでフォーマットすればOK。

 

どうよ。めっちゃ増えた。

 

f:id:msatotsu:20180428203500j:image

 

 お約束のベンチ。

f:id:msatotsu:20180507224115p:plain

 

増設前はこれ。ちょっとだけ速くなってるみたい。

f:id:msatotsu:20180507224127p:plain

 

ヨーグルトメーカーで作るローストビーフ。準備編。

IYM-012安くて温度調節できるヨーグルトメーカー探したところ、アイリスオーヤマIYM-012が良さそう。さっそくAmazonで注文した。

 

www.irisohyama.co.jp

 

後で気づいたんだが、消費電力が30W。

500ccの肉でローストビーフ作るのに、肉の比熱=1と仮定して、25℃から55℃まで上げようとした場合、

500cc*30℃*4.2J/cal  / 30W = 2100 s = 35 min かかる計算になる。

1分あたり、1℃くらいしか上がらない。

実際は30W全部が吸収できるわけないし、せいぜい半分くらいだろうと思われる。

 

心配過ぎるので、本番前に水を500cc入れて試してみた。

65℃設定で、10分置きに温度測ったところ、2.5℃しかあがらない。マジか。。

25℃から始めたら、55℃に達するまでに2時間かかる。もうバカじゃないかと。

 

これは加熱用じゃなくて、保温用と考えたほうが良い。

(肉じゃなくて、本来のヨーグルト用途だと問題ないと思う。念のため。)