2022年10月18日火曜日

グラフィックボードのコア(GPU)を計算に使うマシンはLenovo (2)

グラボのGPUを計算に使うやつを試してみたいのですが、Geforceとか持ってないのでIntelの内蔵グラフィックスコアで試そうと思ったのですが、Core世代の5番目以降じゃないとtoolが対応してませんでした.わたしが持ってるマシンは第4世代なので使えません.
 5 Broadwell
 6 Skylake、Apollo Lake
 7 Kaby Lake
 8 Coffee Lake、Whiskey Lake
 9 Comet Lake
 10 Ice Lake
世間の最新は13世代が発売されたばかりです.

そこで第6世代マシンをヤフオクで買いました.Skylakeなんですかね? Lenovoは不人気みたいで安かったです.税送料込み¥6300
Lenovo ThinkCentre M700、Core i5-6400、8GB、500GB、DVD、OSなし

↓中身はこんな.CPU FANは特殊な形状です.フロントにもFANがあり、しかし電源はFANレスという構成.綺麗なofficeだったのか、あまり通電してなかったのか、内部はそんなに汚れてませんでした.
↓メモリは不統一の4GB 2枚挿し
↓リアパネル.シリアル端子はまだ分かるとして、驚愕のパラレル端子付き.今時こんな古い物を目にするとは.HDMIじゃなくてDisplay-portでした.
↓フロントの一部.特記事項なし.
↓光DISKとHDDをバラすのにネジは不要.よく考えられている筐体です.配線も整然としていて好感が持てます.増設HDDのベイは無いですね.PCI-expは3つかな?
↓ネジを使わずにここまでバラせます.やるなぁレノボ.

とりあえず、Ubuntsuをインストしました.
いろいろと設定せないかんので稼働にはまだ時間を要します.

1へ   3へ

かしこ

2022年10月17日月曜日

興行収入watch ONEPIECE 171億円 増加ペースは3.2億円

はいっ、今週も興行収入watchのお時間がやって参りました.

ONE PIECEの成績は、そろそろ頭打ち傾向が鮮明になってきました.累計171億円、伸びは3.2億円でした.総合順位は11位で据え置きです.

予想よりもやや下振れしました.予想はkeepしておきます.
 10月3日   予想163億  実績162.5
 10月11日 予想168億  実績167.8
 10月17日 予想172億  実績171
 10月24日 予想174億 (+2)
 10月31日 予想175億 (+1)
最終興収は180億円で終了と予想.

来週はハリポタを抜いて10位に食い込めるかどうかに注目です.

がんばれONE PIECE!

かしこ

ノムネン新装オープン

新装オープンといえばパチ屋みたいですがパチ屋ではなくて、家の近所の飲み屋ノムネンです。

今夜がオープン日。

お客さん多数につき内装写真は控えます。飲み中のテーブル。

工事中に予想した間取り図でだいたい合ってましたが、奥の客席はなんとカラオケルームになってます。カウンタ10席、テーブル12席。

ボトルキープはやってないみたいよ。

かしこ

半導体に竜巻、今週の岸田、クリミアに籠城

いろいろとアタマ痛いことが多いですね.

Bloombergから、「半導体に嵐の予感」との記事です.2008年のリーマンショック以来の急速な下方修正だそうです.あれだけ品不足の好景気が続けば不況の谷もさぞ深かろうよ.嵐なんかで済むわけないじゃん、竜巻でしょう.

今週の岸田さん、、、
 ・国民年金支払い期間60歳から65歳へ延長
 ・こっそりといろいろ増税
 ・支持率最低を更新(スガさんの末期より悪いんだとか?)
 ・インフレ対策無し
これはあまりにも酷い.よくもここまで果敢に逆噴射できるもんです.逆噴射の自覚すらないほどバカなんですな.いやはや想像を遥かに超えました.鳩山がマトモに思えてきたぞ、ぐぇ~
というか、財務省さんにご注進だけど、いくら岸田が財務省の言いなりだからってこんなに押し込んだら全部チャラになりまっせ.もっと岸田をセーブした方が財務省の身のためじゃないの? 財務省にしてはずいぶんと拙速で愚かだな.
ところで自民党さんはこれどうすんの? とくに政調会長さーん(汗)

ウクライナの戦況は、ウクライナがロシアの占領地域へジリジリと進出しているようです.間もなくやって来る冬の季節をウクライナとロシアのどちらが味方につけるか、今行われているのはそれを巡っての戦闘ですが、「補給線さえ切断できれば目先OKよ」というウクライナ側に利があるように感じられます.
対するロシアは冬のクリミアで籠城になるわけで、キツいだろうなぁ.かつてのロシアは、冬を味方につけて防衛する戦法だったと思うのですが、あいにくウクライナ人は同族なので冬の闘い方を知っていて、今回の戦争ではロシア軍が出先で冬に滅ぼされる番のように思います.
ロシアが30万人動員した時は、占領軍として治安維持に携わる面子を増強するんだろうなぁと思ったものでしたが、実際はそうじゃなくて、モロに前線に投入というキツさには驚きました.でこれから凍死か餓死が待っています.いやぁロシアに生まれなくて良かったわー

この動画の6:50から、フレアを放出する攻撃ヘリにミサイルが的中する場面を見れます.2機堕ちます.綺麗だなぁ.

えいめん

3Dプリンタ フィラメント接合器開発(4)V6 hotendヒーター制御

皆さんこんにちは.
「パルフェ」を買ったんだけど18禁バージョンでなくて落胆しているヒラサカです.付録のタペストリーもらったからまぁいいか・・・・

さて、フィラメントを接合しよう!

ArduinoでV6 hotendの温度制御をしました.作業風景はこんな不安定です.ご安全に!

↓target 100℃で走らせてこんな出来栄えです.ださっ! 5℃ぐらい振動してる.
MarlinのPID制御はもっと収束性がGOODですから、負け組確定でぇす.
フィラメントを接合するだけだからこれでもいいいや.
いや~、温度制御って初めてやったんですけど、思ったよりもエグいんですね.
 理由1) 加熱だけしか制御できない(冷却は自然冷却)
 理由2)loop応答が10秒ぐらいある(遅いloopはダルい)
こんなloopは嫌いだなぁ.やっぱloop応答はuSecオーダーがいいよね.

ヒーター開発はこれでオシマイなので、次はメカニカルな開発へと移行します.うまくできるかは不明です.

以下にArduino sourceを記します.

3へ   5へ

かしこ

ーーーー
#include <TimerOne.h>  タイマライブラリ

ヒーター目標温度
#define TEMP_TARGET 100 // heater target temp. [degree]
ヒーターduty初期設定
#define HEATER_DUTY_START 50 // initial heater duty [%]

サーミスタ抵抗→温度変換テーブル (長いので省略.連載2回目を参照)
volatile const float t[] PROGMEM ={-30,-29,-28,-27,-26,-25,-24,-23,...
volatile const float r[] PROGMEM ={1733.2,1630.408,1534.477,....

int duty = HEATER_DUTY_START; // initial duty %

void setup() {
  Serial.begin(9600); COMシリアル9600bps
  pinMode(LED_BUILTIN, OUTPUT); LEDチカチカポート
  Timer1.initialize(200000); // uSec 0.2秒周期で12Vをチョッパする
タイマ1duty設定のおまじない
  Timer1.pwm(9, duty / 100.0 * 1023.0); // pin9 or pin10, duty=N/1024
タイマ1のコールバック関数設定
  Timer1.attachInterrupt(cb_tim1);
  Serial.print("heater control initial duty ");
  Serial.println(duty);
}

// call back function of timer1
int p=0;
void cb_tim1() {
  if(p==0) p=1; LEDチカチカしてるだけなので空っぽでもOK
  else     p=0; 
  digitalWrite(LED_BUILTIN, p);
}

void loop() { メインループ
  int sensorValue = analogRead(A0); サーミスタポートをADCする(12bit)
  float voltage = sensorValue * (5.0 / 1023.0); 電圧に変換する、5V full scale
  Serial.print("ADC : ");
  Serial.print(sensorValue);
  Serial.print(" voltage: ");
  Serial.print(voltage);
  // voltage = 5.0 * rth / ( rth + 4700 )
  // voltage rth + voltage 4700 = 5 rth
  // 4700 voltage = ( 5.0 - voltage) rth
  // 4700 voltage / ( 5.0 - voltage ) = rth
  float rth; // thermistor kohm 電圧をサーミスタ抵抗kΩに変換
  rth = 4700.0 * voltage / ( 5.0 - voltage ) / 1000.0 ; // kohm
  Serial.print(" [V] termistor: ");
  Serial.print(rth);
  Serial.print(" [kohm]");

  // R vs T table
  // convert rth to temperature
  int i;
  for(i=0;i<320;i++){ kΩを温度に変換する
    float rtable = pgm_read_float_near(r+i);
    if(rtable<rth) break;
    else  i++;
  }
  float ttable = pgm_read_float_near(t+i); // temp.
  Serial.print(" temp: ");
  Serial.print((int)ttable);
  Serial.print(" [deg]");

  // heater control ヒーター制御
やってることは、かなり不真面目です.
 ・目標温度に達したらヒーターOFF
 ・目標温度までの乖離が10℃より大きいならヒーターON
 ・目標温度までの乖離が10℃以下ならヒーター50%ON
  if(ttable < TEMP_TARGET) {
    if(TEMP_TARGET - ttable > 10) duty = 100;
    else duty = 50;
  }
  else duty = 0; // heater cut off

ヒーター更新
  Timer1.pwm(9, duty / 100.0 * 1023.0); // update heater duty

  Serial.print(" heater duty: ");
  Serial.print(duty);
  Serial.println(" [%]");

loop応答が10秒もあるのでヒーター更新は1秒毎で十分かなと
  delay(1000);    // wait for N mSec
}

2022年10月15日土曜日

中国への半導体禁輸

ドル円は149にタッチしましたかな? 意外に速いピッチですなぁ.

岸田は防衛費のために増税します.本音は岸田家の誉れのために増税です.岸田しね.

ーーーー
USが、中国への半導体禁輸でかな~りアグレッシブなことをやります.中国は早速反発
その内容は、記憶ですが14nmよりも先端的な半導体を中国禁輸.禁輸時期はわずかに半年後.

これはなかなか厳しいです.他国も追随するでしょう.

先端的な半導体を中国へ入れられなくなると、スマホはもう作れません.huaweiが撃墜されたらxiaomiがのし上がってきましたけど、xiaomiも中国域内生産はもう無理です.もちろんiPhoneも生産不能.FOXCONNはインドとかバングラで作るのかなぁ?

クルマもエンジン制御は作れるけど、カーナビなどIT系の装備は停まるでしょう.自動車生産も事実上停まるんじゃないですか.日系自動車会社だけでなく、ベンツやBMWも巻き添えです.

先端半導体が停まるなら、中国で生産できる電気製品は、電源、エンジン制御、モーター制御 みたいな古いプロセスの半導体から成るものだけになります.

わたしとしても他人事とは思えません、、、
かつてわたしがソニーに勤めてたころ、中国でテープストリーマを生産していましたが、先端半導体禁輸なんつうお触書が出された日には事業部は恐慌状態でしょうね.半年後に工場を他国に移すなどとは、JOKEにもほどがある.
単に工場を移すだけなら半年あれば可能でしょう.しかし、現在の工場は単に生産するだけじゃなくて、品質管理システムの監査が大変なんです.ISO9000等の国際規格だけでなく、納品先の品質管理システムにも則る必要があります.その監査日程を考慮すると半年じゃ無理じゃないかな.
あと、中国から生産財を海外へ持ち出すのに規制があった気がする.

中国で生産している企業は冷や汗ダラダラ流してるんじゃないかと.

スマホやクルマだけでなく、TVやパソコンも今後どうなるかわからんですよ.在庫払底で価格高騰もあり得ます.
冷蔵庫、エアコン、ウォシュレットは中国生産できると思うけど、表示デバイスにスマホのLCDを使ってたりする高価格製品は停まるかもしれない.

買うなら今のうち.

えいめん

3Dプリンタ フィラメント接合器開発(3)ヒーター動かした

フィラメント接合器をつくろう!

FETでチョッパーしてヒーターを温めることが出来ました.

↓現物はこれです.コードの先端のアルミブロックにヒーターとサーミスタがついてます.制御にはArduino Nanoを使っています.
↓回路はこれです.FETは秋月電子で買いました.EKI04036というN-MOS.50Aぐらい流せるみたいよ.3.3Vでgate駆動するのでVthが2.5VぐらいのFETです.ヒーターはON時に3Aぐらい流れます.12V3Aなので36Wのヒーターなのでしょう.
ヒーター電源は12V.
ArduinoでFETをON/OFFして12Vをチョッパします.
ArduinoのFET制御ピンはD9です.タイマー1のPWMがD9に出てきます.
(サーミスタはArduino ADCのA0へ接続しますが、今回は使いません)

タイマーのPWMとは、タイマーのカウンタがある値以上ならHIGHになる仕組みです.「ある値」を上下させるとdutyを変えられ、ヒーターを制御できます.CPUはdutyをセットするだけで、ON/OFFはタイマのハードウエアに自走させときます.らくちんです.

↓Arduinoソースはこれです.まだLOOP制御してません.

#include <TimerOne.h>   ←タイマライブラリ

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
タイマの設定が3つ.
タイマ周期0.2秒.ヒーターON/OFF周期が0.2秒.
  Timer1.initialize(200000); // uSec
PWM出力ポートD9、duty=100/1024  この100がヒーター強度になる
  Timer1.pwm(9, 100); // pin9 or pin10, duty=N/1024
タイマ割り込みのコールバック関数名cb_tim1
  Timer1.attachInterrupt(cb_tim1);
}

タイマのコールバック関数.LEDチカチカさせてるだけなので空っぽでもOK.
int p=0;
void cb_tim1() {
  if(p==0) p=1;
  else     p=0; 
  digitalWrite(LED_BUILTIN, p);
}

PWMはタイマーに自走させてるため、メインループは何も仕事しなくてOK.
あとでLOOPを組み込むのはここだが今は空っぽ.
void loop() { }

2へ   4へ

かしこ

「夫婦以上、恋人未満」 人生いろいろ実習いろいろ

某アニメの高校には「夫婦実習」というカリキュラムがあります.
ランダムに選ばれた男女生徒が同棲して夫婦の練習をするのです.
壺で有名な統一教会も真っ青なナイスな授業と言えなくもないが、それもパートナー次第ですなぁ.現実は厳しいと思うよ.アニメのような展開はとてもとても望むべくもあるまい.
↓夫婦実習するならこの人とがいい.(ハサウェイ)

↓授業ですから成績がつけられるわけで、カメラで監視されています.こんな風に、結婚して10年経った夫婦みたいな態度でいると成績が下がります.
↓このような新婚夫婦みたいな仲良しだと高い成績になれます.
それだけじゃありません.
成績上位10組は学校公認でswappingさせてもらえるという超絶設定があります.

しかしたかが「新婚夫婦実習」じゃあまり役に立たないですね.
もっといろんな設定で夫婦体験しないと実りある実習になれないと思います.
たとえば、このくらいのシチュエーションは高校生のうちに体験したらいいでしょう.
・六本木ヒルズ住みで、外車が3台あってパーティーとゴルフ三昧の夫婦
・西川口の1Kアパートで月収10万円の夫婦
・ご主人が失業して住宅ローンを返済できなくなった夫婦
・妊活してるけど子供ができない夫婦
・NYへ逃亡して弁護士試験に受からない夫
・連れ子が元彼女だった夫婦
・革命でギロチンの露と消える夫婦
・ごみ屋敷
・多頭飼育崩壊

↓ロマンスシーンで丸いオーブが飛ぶ演出を見たのは30年ぶりだろうか.CV大西沙織でーす.お世話になってまーす.

かしこ

2022年10月14日金曜日

「リメイク うる星やつら」面白くねぇ

終わったな・・・早送りで飛ばし見だけで終わった・・・
押井守を出せ! 平野文を出せ! 永井一郎を出せ! あと島津冴子もな.
あたるのCVは割と似てた.

そんな嘆きが止まらない「リメイクうる星」はやっぱダメだな.ちっとも面白くない.

このつまらなさは、いまさら赤塚不二夫の漫画を読んでもちっとも笑えないのに似ている.

↓こういうのがちっとも笑えない.

石油の雨が降らなかったのはどうしてなのだろう?

メガネは出ねぇし.

えいめん

3Dプリンタ フィラメント接合器開発(2)Adruino PROGMEMなんだかなー

フィラメント接合器をつくろう!
↓フィラメントの切れ端がもったいない.

V6 hotendを流用してフィラメントを溶かすヒーターを作ります.温度制御はarduinoでやります.MEGA2560なんつう高価なPCBを使う気はないです.

サーミスタで温度を測定するArduino programが今回のお題です.

回路は、サーミスタを4700Ωで5Vプルアップし、ArduinoのADC A0へ接続するだけ.これはRamps1.4と同じ回路です.
サーミスタは、NTC 3590 100kと通称されるもので、25℃で100kΩです.こちらのpdfに-30~289℃までの温度vs抵抗値テーブルがあるので、そのテーブル全部をsourceに記述して温度表示に使います.

温度vs抵抗値テーブルのsource codeの最初だけコピペするとこんなかんじ.
volatile const float t[] PROGMEM ={-30,-29,-28,-27,-26,-25,-24,-23,...
volatile const float r[] PROGMEM ={1733.2,1630.408,1534.477,1444.903,...

このPROGMEMが曲者でした.

このテーブルの総サイズは5kBぐらいあるかと思うので、ArduinoのATMEGA328とかいうCPUの2kBしかないSRAMには展開できません.それゆえ「FLASHに置け」という意味のコンパイラオプションがPROGMEMです.

ここまでは別に問題は無かったのですが、参照時に問題あり.
r[i]みたく参照しても化けてて動きません.
Arduino IDEの処理系のバグかと思ってVS codeに変えても動きません.

解決しました.
PROGMEMに置いた例えばfloatを参照する場合は、こうしなくちゃいけないんだってさ.
 float rtable = pgm_read_float_near(r+i);
なんだよめんどくさい.
変数を置くセグメントがあっちかこっちかというだけじゃないの?
なのにさ、どうして参照するのにpgm_read_float_near(r+i)ってしなくちゃいけないのかねぇ?
しかも、r+iみたくポインタ引数じゃないとダメで、r[i]のような配列指定だとダメ.
まるでEEPROMの取扱いじゃんかといいたい.

そんなかったるい壁がありましたが、温度測定は無事出来ました.ライターで炙ったら温度上昇しましたし.

次はヒーターの制御へ.
これからFET買いに秋月電子へいきまーす.(手持ちでいいFETが無かった)

1へ    3へ

ーーーー
参考までに、温度測定のソースコードを貼っておくね.VS codeのsourceだけど、Arduino IDEでも動くと思うけど、知らんけど...

#include <Arduino.h>

volatile const float t[] PROGMEM ={-30,-29,-28,-27,-26,-25,-24,-23,-22,-21,-20,-19,-18,-17,-16,-15,-14,-13,-12,-11,-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289};

volatile const float r[] PROGMEM ={1733.2,1630.408,1534.477,1444.903,1361.22,1283,1209.327,1140.424,1075.949,1015.588,959.05,906.0117,856.2883,809.6506,765.8865,724.8,685.6507,648.8929,614.3649,581.9169,551.41,522.6908,495.6674,470.2286,446.2714,423.7,402.056,381.6658,362.4488,344.3301,327.24,311.0397,295.7506,281.3157,267.682,254.8,242.5827,231.0321,220.108,209.7724,199.99,190.5578,181.6319,173.1822,165.1804,157.6,150.4253,143.6234,137.1726,131.0528,125.245,119.6582,114.3559,109.3221,104.5415,100,95.8191,91.8392,88.0494,84.4395,81,77.6238,74.4091,71.3472,68.4301,65.65,62.9838,60.442,58.0181,55.706,53.5,51.3708,49.3391,47.3998,45.5483,43.78,42.0555,40.4092,38.8369,37.335,35.8999,34.616,33.3855,32.2059,31.0748,29.99,28.9053,27.866,26.87,25.9153,25,24.1099,23.2565,22.4381,21.6531,20.9,20.1741,19.4774,18.8087,18.1666,17.55,16.9459,16.3659,15.8089,15.2739,14.76,14.2813,13.8206,13.3774,12.9507,12.54,12.1347,11.7447,11.3694,11.008,10.66,10.3243,10.001,9.6895,9.3893,9.1,8.8171,8.5444,8.2816,8.0283,7.784,7.5538,7.3316,7.1172,6.91,6.71,6.5265,6.349,6.1772,6.0109,5.85,5.6832,5.5221,5.3663,5.2156,5.07,4.9291,4.7928,4.661,4.5334,4.41,4.2906,4.1751,4.0632,3.9549,3.85,3.741,3.6357,3.5338,3.4353,3.34,3.255,3.1726,3.0927,3.0152,2.94,2.8634,2.7893,2.7173,2.6476,2.58,2.5144,2.4507,2.389,2.3291,2.271,2.2135,2.1577,2.1035,2.051,2,1.9513,1.904,1.858,1.8134,1.77,1.7319,1.6947,1.6586,1.6233,1.589,1.552,1.516,1.4811,1.4471,1.414,1.3812,1.3494,1.3184,1.2883,1.259,1.2301,1.2019,1.1745,1.1479,1.122,1.0956,1.0699,1.0449,1.0206,0.997,0.9757,0.955,0.9348,0.9151,0.896,0.875,0.8547,0.8349,0.8157,0.797,0.7806,0.7646,0.749,0.7338,0.719,0.7029,0.6873,0.6721,0.6574,0.643,0.6302,0.6177,0.6055,0.5936,0.582,0.5717,0.5617,0.5519,0.5423,0.533,0.5225,0.5122,0.5022,0.4925,0.483,0.4733,0.4639,0.4547,0.4457,0.437,0.4284,0.42,0.4118,0.4038,0.396,0.3884,0.381,0.3739,0.3668,0.36,0.3533,0.3467,0.3403,0.3341,0.328,0.322,0.3161,0.3104,0.3048,0.2993,0.294,0.2888,0.2836,0.2786,0.2737,0.2689,0.2642,0.2596,0.2551,0.2507,0.2464,0.2422,0.238,0.234,0.23,0.2262,0.2223,0.2186,0.215,0.2114,0.2079,0.2045,0.2011,0.1978,0.1946,0.1914,0.1883,0.1853,0.1823,0.1794,0.1765,0.1737,0.171,0.1683,0.1656,0.163,0.1604,0.1579,0.1555,0.1531,0.1507,0.1484,0.1461,0.1439,0.1417,0.1396,0.1375,0.1354,0.1334,0.1314,0.1295,0.1275,0.1257,0.1238};

void setup() {
  Serial.begin(9600); // display to COM port
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  int sensorValue = analogRead(A0); // ADC port is A0
  float voltage = sensorValue * (5.0 / 1023.0); // 10bit ADC, max 5V
  Serial.println(voltage);
  Serial.println(sensorValue);
  // voltage = 5 * rth / ( rth + 4700)
  // voltage rth + voltage 4700 = 5 rth
  // 4700 voltage = (5-voltage) rth
  // 4700 voltage / ( 5 - voltage ) = rth
  float rth; // thermistor kohm
  rth = 4700 * voltage / ( 5 - voltage ) / 1000 ; // kohm
  Serial.println(rth);
  int i;
  for(i=0;i<320;i++){
    float rtable = pgm_read_float_near(r+i);
    if(rtable<rth) break;
    else  i++;
  }
  float ttable = pgm_read_float_near(t+i);
  Serial.println(ttable); // display temperature

  digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on
  delay(100);         // wait for mSec
  digitalWrite(LED_BUILTIN, LOW);    // turn the LED off 
  delay(500);         // wait for mSec
}

2022年10月13日木曜日

3Dプリンタ フィラメント接合器開発(1)

皆さんこんにちは.根無し草の3Dプリンタ使い、ヒラサカです.

行先不明の技術開発の連載開始でぇす.

まずは3Dプリンタあるあるから.

↓見よ、このコマ切れのフィラメントを! 折れ易いフィラメントだったりすると、端切れフィラメントがたくさんできます.これって接合して使えないのかなぁと常々思っています.

↓フィラメント接合治具の市販品は存在します.穴にフィラメントを通してライターで炙る仕組みです.ライターじゃ安定した接合が出来そうに思えません.

↓そこで自作してみようと思います.難しいのは温度管理ですから、温度管理したいのならhotendを丸ごとヒーターとして流用しちゃえばいいじゃんと考えます.

というわけで最初にやるのは、arduinoでhotendの温度コントロールをすることです.
hotendには、12V3Aぐらいのヒータと、NTC 3950 100kというサーミスタがついています.12VをFETでチョッパ制御して200度ぐらいに調節します.

to be continued.


ーーーー
サーミスタのpdfから、温度vs抵抗値のテーブルをCの配列にしました.近似式じゃなくてtableで実装します.-30℃~289℃までの温度に対応するtableです.
const float t[]={-30,-29,-28,-27,-26,-25,-24,-23,-22,-21,-20,-19,-18,-17,-16,-15,-14,-13,-12,-11,-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289};
const float r[]={1733.2,1630.408,1534.477,1444.903,1361.22,1283,1209.327,1140.424,1075.949,1015.588,959.05,906.0117,856.2883,809.6506,765.8865,724.8,685.6507,648.8929,614.3649,581.9169,551.41,522.6908,495.6674,470.2286,446.2714,423.7,402.056,381.6658,362.4488,344.3301,327.24,311.0397,295.7506,281.3157,267.682,254.8,242.5827,231.0321,220.108,209.7724,199.99,190.5578,181.6319,173.1822,165.1804,157.6,150.4253,143.6234,137.1726,131.0528,125.245,119.6582,114.3559,109.3221,104.5415,100,95.8191,91.8392,88.0494,84.4395,81,77.6238,74.4091,71.3472,68.4301,65.65,62.9838,60.442,58.0181,55.706,53.5,51.3708,49.3391,47.3998,45.5483,43.78,42.0555,40.4092,38.8369,37.335,35.8999,34.616,33.3855,32.2059,31.0748,29.99,28.9053,27.866,26.87,25.9153,25,24.1099,23.2565,22.4381,21.6531,20.9,20.1741,19.4774,18.8087,18.1666,17.55,16.9459,16.3659,15.8089,15.2739,14.76,14.2813,13.8206,13.3774,12.9507,12.54,12.1347,11.7447,11.3694,11.008,10.66,10.3243,10.001,9.6895,9.3893,9.1,8.8171,8.5444,8.2816,8.0283,7.784,7.5538,7.3316,7.1172,6.91,6.71,6.5265,6.349,6.1772,6.0109,5.85,5.6832,5.5221,5.3663,5.2156,5.07,4.9291,4.7928,4.661,4.5334,4.41,4.2906,4.1751,4.0632,3.9549,3.85,3.741,3.6357,3.5338,3.4353,3.34,3.255,3.1726,3.0927,3.0152,2.94,2.8634,2.7893,2.7173,2.6476,2.58,2.5144,2.4507,2.389,2.3291,2.271,2.2135,2.1577,2.1035,2.051,2,1.9513,1.904,1.858,1.8134,1.77,1.7319,1.6947,1.6586,1.6233,1.589,1.552,1.516,1.4811,1.4471,1.414,1.3812,1.3494,1.3184,1.2883,1.259,1.2301,1.2019,1.1745,1.1479,1.122,1.0956,1.0699,1.0449,1.0206,0.997,0.9757,0.955,0.9348,0.9151,0.896,0.875,0.8547,0.8349,0.8157,0.797,0.7806,0.7646,0.749,0.7338,0.719,0.7029,0.6873,0.6721,0.6574,0.643,0.6302,0.6177,0.6055,0.5936,0.582,0.5717,0.5617,0.5519,0.5423,0.533,0.5225,0.5122,0.5022,0.4925,0.483,0.4733,0.4639,0.4547,0.4457,0.437,0.4284,0.42,0.4118,0.4038,0.396,0.3884,0.381,0.3739,0.3668,0.36,0.3533,0.3467,0.3403,0.3341,0.328,0.322,0.3161,0.3104,0.3048,0.2993,0.294,0.2888,0.2836,0.2786,0.2737,0.2689,0.2642,0.2596,0.2551,0.2507,0.2464,0.2422,0.238,0.234,0.23,0.2262,0.2223,0.2186,0.215,0.2114,0.2079,0.2045,0.2011,0.1978,0.1946,0.1914,0.1883,0.1853,0.1823,0.1794,0.1765,0.1737,0.171,0.1683,0.1656,0.163,0.1604,0.1579,0.1555,0.1531,0.1507,0.1484,0.1461,0.1439,0.1417,0.1396,0.1375,0.1354,0.1334,0.1314,0.1295,0.1275,0.1257,0.1238};

WHITE ALBUM2コラボカフェ@新宿

newtype新宿というところでWA2のコラボカフェ開催中なので、雨降りですが見学してるとこ。PS3版の発売10周年だそうです。

店内にポスターやイラスト多数。写真撮影自由。
ちょい高価なメニューを頼むとグッズを貰える。というシステム。

↓ファーストスターてりやきバーガーと、ドリンクはAnswer。貰ったクリアスタンドはとても小さいです。
ファーストスターって劇中の何だったか思い出せない。

クリアスタンドは、千晶、飯塚、弟さんを貰いました。

ーーーー
3丁目の互助カフェ(バー)へ行こうとしたら閉まってる。看板はある。前回はコロナの前だったからなぁ。心配だー
しかたないのでエールのパイントをガッと飲んで帰るわ。

あでゅ〜

「恋愛フロップス」呆れたテンプレだが悪くない

「恋愛フロップス」が予想の斜め上だったので書いておこうじゃないか.

ガッツリとテンプレだ.

といいつつテンプレではないが、バナナトースターはナイスな発明品.
↓出会いがしらのラッキースケベ.この女子は転校生.テンプレだよ.
いちごパンツに違いないと思ったがパンツはなぜか脱げちゃったらしい.キャラは中学生時代の伊理戸結女.
結女転生
↓電車で謎の寝ぼけ女にしなだれかかられるテンプレ.この女子は新任教師で中国人なのでCVは茅野愛衣を起用(うそ).学校でチャイナ服は視線誘導でどうかと思うし、切れ込みが上すぎです、先生.
↓駅の階段上からドイツ人転校生が落ちてきてラッキースケベなテンプレ.
↓通学路の新宿の公園でUS人転校生・・・こいつはさほどテンプレじゃない.
↓同じ公園で犬に犯される男子.さすがにこれはテンプレとは言えない.ブルガリア人転校生.スポーツ苦手.
↓目的の高校は都庁にしか見えないが「聖キクアヌス学園」とは留学生から敬遠されそうな名称.日本人でも敬遠したくなるかもしれない.
↓遅刻して教室に着くと、主人公はハルヒの席(テンプレ).登校時に逢った5名の女子がなぜかクラスにいて、ハルヒは包囲陣形.
↓Bパート.「このすけべー」とビンタされたらしきテンプレ.
↓ノーパン逆光の伊理戸結女に告られてto be continued.
この勢いを持続できるか?

かしこ

2022年10月12日水曜日

おれんちあのNURO光

au光がクレイジーなくらい高価格なのでぶっちぎってNUROに乗り換えて1年と少し.

NUROの回線があまりにも遅くてpacket loss出まくりというのが近頃話題になってましたが、幸い我が家では遅くなったと感じた事はありません.

www.speedtest.net で今測ったらこんな数字です.光モデムに有線直結したwin10マシンにて.時刻は22時ごろ.

集団訴訟やるぞと客に言われてsonyが重い腰を上げたようで、調べたら異常にトラフィックが多い法人契約者が居てそいつのせいだったというのがsonyの言い分.

本当かな? トラフィックの粗密なんかプロバイダ業者なら常時監視しているだろうから、わざわざ調べて発見するほどの事じゃないと思うんだがね.NUROは監視してないのかな? なんだかなー

ーーーー
我が家でnetを使うのは3人いますが、3人ともwifiが嫌いです.
desktop PCならLAN cableを挿せばいいですが、薄型ノートPCとかMac BookみたいなLAN端子が無いマシンには、わざわざUSB-LANを挿してまでwifiを忌避する姿勢.
wifiのAPは4台稼働してるのでスマホはwifi接続で使ってますけどね.

かしこ

グラフィックボードのコア(GPU)を計算に使うあれ (1)

皆さんこんにちは、流浪の信号処理屋、ヒラサカです.

グラフィックボードのコア(GPU)を計算に使うGPGPUについて、interface誌の特集を読んでいます.2022年8月号.

GPUプログラミングとは、APIライブラリを使ってcodingするのだろうと思っていたのですがそうではなく、CかC++で書いたsourceを、シングルCPU向けにコンパイルするか、マルチCPU向けにコンパイルするかを、コンパイルオプションで切り替えるというお手軽さへと向かっているそうです.なんと便利なんでしょう.

グラボには何個ぐらいのCPUが載っているのかというと、なんと数1000個だそうです.
積和演算の1000回ループがあるとして、
 for(i=0;i<1000;i++) s += a[i] * b[i];
この掛け算を1000個のCPUにforkさせるのをGPUのコンパイラがやってくれるというイメージ.確かに高速になりそうです.

a[i]やb[i]はグラボ上の高速DDRか、できればGPUキャッシュに積んでおかないと速度が出ませんから、積和演算をkickする前にメインCPUのDRAM上からPCI-expを通してa[i]b[i]をグラボに転送しなくちゃいけませんが、これが結構なボトルネックになるそうです.

GPUがどんなhardwareなのかについてわたしの予想では、「命令一発で、NxN行列の掛け算、逆行列、固有値 などを吐き出してくれるもの」なのかなーと思ってたんですけど、夢を見過ぎでした.
GPUのhardwareは「積和演算器が数千個」てな代物です.したがって掛け算や逆行列はGPUのcodeで実現するみたいです.

自分の環境でGPUを計算に使うなら、IntelのGPUです.なぜならGeforceとか持ってないから.
Intel GPUを動かすにはC for Metalを使うようです.
なのですが、対応CPUに制限があります.第5世代Broadwell以降じゃないとC for Metalが動きません.残念ながらわたしの手元で動いているマシンは、AMD、Celeron、第2世代、第4世代などであり、使えるマシンが一つもありゃしねぇ.ぎゃふん

IntelのCPUって6500とか10210とかわけわかんない数字がついてますけど、先頭文字が世代を表しているみたいですね.つまり6500は第6世代、12100は第12世代.
i3-12100なんか4coreで、オレのi7-4790(第4世代)よりもbenchmarkが2倍だっつう信じられんセカイだもう.

アキバで安い中古PCを探そうかね?


詰み~

2022年10月11日火曜日

「ぼっち・ざ・ろっく」 まぁそれなりだけど.....

「ぼっち・ざ・ろっく」はそれなりにウケるんじゃないかな.

わたしの心の琴線はピクリとも反応しませんでしたけどね~

ヒロインは内向的JKなので誰とも話せず、友達もいません.外見は美形のようですが.独りで3年間もギター練習してたので上手く弾けるようになったけど、誰かと一緒に演奏できるわけもなく、いつも独りぼっち.公園で見知らぬバンドのピンチヒッターとして誘われます.

↓放映前の番宣で下北沢のライブハウスが映り、まさか背景を実写でやる系の作品なのかとビビッたけれど、ちゃんと背景画でした.下北沢が舞台のアニメって記憶に無いです.芝居のメッカだけどアニメの舞台としては違和感があります.なんで下北がアニメで町おこししてるのかね?
番宣の写真
アニメ背景画

↓演奏に自信を持てないヒロインが、ゴミ箱に入って反省するシーン.この画面レイアウトにどういう意味があるのだろうか? なんで手前のキャラが主人公を隠しているの? アニメって画面レイアウトを100%設計できるのでこういう事故は起きないはずなんだけどなぁ.... マジでどうしたの?
↓見上げレイアウトなど、第一話の画面はそれなりに凝っています.しかし背景画が写真ぽすぎてキャラが浮いて見えるなぁ.
↓バンドアニメの演奏シーンはお金をかける見せ場.でも第1話ではあまり演奏しませんでした.見せ場は今後なのでしょう.

OP/EDと挿入曲はウリなんでしょう、きっと.

がんばれー、いろんな意味でー

かしこ