NullなNuma

自由気ままに何か書く

VOXY(ZRR70)の尾灯の交換

尾灯が切れた

家のVOXY(ZRR70)の尾灯が切れてしまった
尾灯はヘッドライトをつけると後部の点灯するライトで
切れていると整備不良なので交換しました

説明書によるとディーラー行き

説明書を読むと尾灯の交換方法については説明がなく
尾灯は5Wというワット数だけ明記されていて
修理はディーラーに持ってきてね!と書いてありました
持っていったら部品代だけでなく工賃まで取られてしまうので
自分で直してみました

分解

ライトを取るのは簡単で
ライトユニットについている六角のボルトを2本外すだけ

外した後
f:id:nullnuma:20170918140949j:plain

外したライトユニット
f:id:nullnuma:20170918141043j:plain

外したライトユニットの裏側は黒いスポンジで覆われていました
f:id:nullnuma:20170918141124j:plain

スポンジを外すことで電球の部分にアクセスできます
f:id:nullnuma:20170918141152j:plain

尾灯は上から2番目の緑と白の線のライト
書いてある通り右に回すと外れて電球を取り出すことができました
後はホームセンターで買ってきた電球と交換して
逆の手順で元に戻せば完成!

交換後

ヘッドライトをつけると問題なく光るようになりました
特に難しい手順もなくただ外すだけなので
初心者だとしても簡単に交換できる部分でした

グラフィックポイ製作 (0)

今現在製作中であるグラフィックポイについて
これから書いていこうかなと思います

友人がポイというパフォーマンスを行っていることから
このプロジェクトは始まりました
(私はまだポイを行ったことがありません…完成したらやろうかなと考えている)

まずポイについて

ポイはジャグリングの種類の中の一種です

紐の片方に球や布などのテールをつけて両手にもって
回すことで身体の表現と空中に描かれる軌跡によって行うパフォーマンスです

グラフィックポイとは

http://poicommunity.com/shop/user_data/aboutgraphicpoi.php
ここで紹介されているようなものですが
球や布ではなくLEDをつけることでバーサライトのように
空中に文字やイラストを描くことで今まで以上のパフォーマンスを
行うことができるものです

なぜ作るのか

先程紹介したサイトでグラフィックポイが販売されているのですが
いかんせん高い
趣味であるとはいえ17万円を出せるかというと出せない…
買えないなら作ってしまえということで作ります

製作にあたり

私はハードウェア、
パフォーマンスでポイを使っている友人がソフトウェア
という担当で製作する予定です

ハードウェア

既に2,3ヶ月前から構想して既に基板を起こして
テストを行っています

ぼちぼち書いていければと思っています

グラフィックポイ製作 (0)
グラフィックポイ製作 (1)
グラフィックポイ製作 (2)
グラフィックポイ製作 (3)
グラフィックポイ製作 (4)
グラフィックポイ製作 (5)
グラフィックポイ製作 (6)
グラフィックポイ製作 (7)

C-FORCE

C-FORCE

最近話題になっていた「C-FORCE」

Nintendo Switchのドック代わりに使うことができる

HDMI出力のアダプターで、USBハブにもなるすぐれものです

(しかし私の家にはType-C接続できる機器はSwitchぐらいしかありません)

www.kickstarter.com

 クラウドファンディング

KICKSTARTERやIndiegogoで出資を募っていました

最初は「Switch-Con」という名前でしたが商標の関係らしく

「C-FORCE」を余儀なくされたみたいです

https://www.switch-con.com

私はKICKSTARTERで出資しましたが

EARLYBIRDだったので一足早く発送されてきました

製品

KICKSTARTERだけの特典らしくHDMIケーブルがついてきました

f:id:nullnuma:20170806213410j:plain

f:id:nullnuma:20170806213518j:plain

外見

f:id:nullnuma:20170806213537j:plainf:id:nullnuma:20170806213549j:plain

側面のコネクタ

USB3.1A x2

f:id:nullnuma:20170806213555j:plain

USB Type-C PD専用?,HDMIコネクタ

f:id:nullnuma:20170806213600j:plain

USB3.1 Type-C x2

f:id:nullnuma:20170806213605j:plain

接続してみた

f:id:nullnuma:20170806213614j:plain

 使ってみた

f:id:nullnuma:20170806213836j:plain

HDMIケーブルとSwitchに付属のACアダプターをつなぐと問題なく映像が出力されました

ACアダプターを接続しないと表示されないのはドックと同じ仕様でした

まとめ

 EARLYBIRDで出資したので$59,¥6720($1=¥113.915)でゲットすることができました

HDMI出力だけでなくUSBハブとしても使うことができるので満足です

 

リフロー炉製作(2)

前回はオーブントースターを改造したので
制御の部分を作ります

製作

簡単に扱えるArduinoを使います

使用した部品

  • MAX31855(温度計)
  • タクトスイッチ(スタート用)
  • 圧電スピーカー
  • OLEDディスプレイ
  • SSRキット

回路を組むとこんな感じ
SSRキット
f:id:nullnuma:20170727225813j:plain
Arduinoとその仲間たち
f:id:nullnuma:20170727225848j:plain

はんだペースト
Aliで輸入したけどちゃんとつかえたので当たりをひいた
f:id:nullnuma:20170727225937j:plain

プログラム

当初はPID制御で温度調節をしようと考えていたのですが
うまく動作しているのか怪しかったので
単純に設定温度を超えたかどうかでON/OFFを切り替えることにしました

プログラムはこんな感じですが(長ったらしいし載せなくてもいいんじゃないか)

#include <SPI.h>
#include "Adafruit_MAX31855.h"
#include <U8glib.h>
/*
   リフロー手順
   1.加熱ステージ1
   2.予熱ステージ
   3.加熱ステージ2
   4.リフローステージ
   5.冷却ステージ
*/

#define Wait    0
#define Heat1   1
#define Preheat 2
#define Heat2   3
#define Reflow  4
#define Cool    5

int Profile[6][2] = {
  {  0,  0},
  {140,  0},  //Heat1
  {160, 60},  //Preheat
  {225,  0},  //Heat2
  {230, 20},  //Reflow
  {   0, 0}   //Cool
};

//ピンアサイン
#define Pin_SSR     8
#define Pin_Buzzer  9

#define Pin_BTN_Start 6

#define Pin_MAXDO   3
#define Pin_MAXCS   4
#define Pin_MAXCLK  5

//LCD
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0 | U8G_I2C_OPT_NO_ACK | U8G_I2C_OPT_FAST);
//Temp
double TargetTemp, Temp;
int WindowSize = 5000;
unsigned long windowStartTime;
//K type thermocouple
Adafruit_MAX31855 thermocouple(Pin_MAXCLK, Pin_MAXCS, Pin_MAXDO);

byte state;
byte beforestate = 0;

byte temp[256];
byte temp_cnt;

byte TargetFlag = 0;
unsigned long HeatingTime;


void GetTemp() {
  double c = thermocouple.readCelsius();
  double inter = thermocouple.readInternal();
  if (!isnan(c)) {
    Temp = c;
    temp_cnt++;
    temp[temp_cnt] = (byte)(c/2);
  }else{
    Serial.println("error get temp");
  }
  return 0;
}

void SetTemp() {
  TargetTemp = Profile[state][0];
  windowStartTime = millis();
}
void ControlSSR() {
  if (0 < state && state < 5) {
    if(TargetTemp > Temp){
      digitalWrite(Pin_SSR, HIGH);
    } else {
      digitalWrite(Pin_SSR, LOW);
    }
  }
}

void DrawState() {
  String str_num = String(state,DEC);
  String str = String("State:" + str_num);
  u8g.drawStr( 0, 20, str.c_str());

  if(TargetFlag > 0){
    str_num = String(Profile[state][1]-(millis()/1000 - HeatingTime),DEC);
    str = String(str_num + "s");
    u8g.drawStr( 64, 20, str.c_str());
  }
  
  str_num = String(temp[temp_cnt] * 2,DEC);
  str = String("Temp :" + str_num);
  u8g.drawStr( 0, 40, str.c_str());
  
  str_num = String((Profile[state][0]));
  str = String("SetTemp :" + str_num);
  u8g.drawStr( 0, 60, str.c_str());

}
void DrawGraph() {
  //Required firstPage
  int i;
  for (i = 0; i < 256; i++) {
    u8g.drawPixel(255-i, 64-temp[(temp_cnt + i) % 256]/2);
  }
}
void RefreshLCD() {
  u8g.firstPage();
  do {
    switch (state) {
      case Wait:
        DrawState();
        break;
      case Heat1:
      case Preheat:
      case Heat2:
      case Reflow:
      case Cool:
        if (millis() / 2000 % 2) {
          DrawGraph();
        } else {
          DrawState();
        }
        break;
    }

  } while ( u8g.nextPage() );
}

void CalcHeat(){
  if(TargetFlag){
    //一定加熱
    if((millis()/1000 - HeatingTime) > Profile[state][1]){
      TargetFlag = 0;
      state++;
      SetTemp();
    }
  }else{
    if(Profile[state][0] < temp[temp_cnt]*2){
      TargetFlag = 1;
      HeatingTime = millis()/1000;
    }
  }
}

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  //ピンモード
  pinMode(Pin_SSR, OUTPUT);
  pinMode(Pin_BTN_Start, INPUT_PULLUP);
  //LCD
  u8g.setColorIndex(1);
  u8g.setFont(u8g_font_8x13r);
  state = 0;
}

void loop() {
  beforestate = state;
  GetTemp();
  switch (state) {
    case Wait:
      if (digitalRead(Pin_BTN_Start) == LOW) {
        //Start!
        state++;
        SetTemp();
        TargetFlag = 0;
        Serial.print("  Next Heat1 Stage");
        tone(Pin_Buzzer,1500,100);
      }
      break;
    case Heat1:
      CalcHeat();
      break;
    case Preheat:
      CalcHeat();
      break;
    case Heat2:
      CalcHeat();
      if(beforestate != state){
        tone(Pin_Buzzer,1000,200);
      }
      break;
    case Reflow:
      CalcHeat();
      if(beforestate != state){
        tone(Pin_Buzzer,1500,1000);
      }
      break;
    case Cool:
      if(beforestate != state){
        tone(Pin_Buzzer,1000,1000);
      }
      break;
  }
  ControlSSR();
  RefreshLCD();
  delay(100 - millis() % 100);
}

Let's リフロー!

はんだペーストを基板に載せてその上に部品を載せる
小さいパッドにはんだペーストを載せるのはなかなかきつい
f:id:nullnuma:20170727230051j:plain
そして作ったリフロー炉に入れれば
f:id:nullnuma:20170727230019j:plain
はいできあがり、光らない…。1個だけ光らない…。
f:id:nullnuma:20170727230157j:plain
LEDチップの端子と基板は導通が全てあるけど光らなかったので
もともとLEDチップが死んでいたのかなとか考えた

実装する前にちゃんと動作するか確かめるためのものが
必要だということがわかりました

次回はユニバーサル基板で実装しようと思います

ハイローズ(Hi-rose) オーブントースター HR-T121

ハイローズ(Hi-rose) オーブントースター HR-T121

K型熱電対温度センサモジュールキット(SPI接続)MAX31855使用 5V版

K型熱電対温度センサモジュールキット(SPI接続)MAX31855使用 5V版

ESP-WROOM-32の開発キットを購入

ESP-WROOM-32とは

一世代前のESP-WROOM-02ではWi-Fiの通信ができるマイコンでなんと550円!

コレでさえ破格なのにプラスBluetoothの通信までできて
700円というのがESP-WROOM-32


今回はこちらを購入しました
akizukidenshi.com
秋月電子通商で販売されているモジュールで
とりあえず触るにはおすすめな感じのやつです

ドライバを入れる

まずは既に入っているファームウェアでATコマンドを叩きたい

microUSBケーブルで接続するも
挿しただけではmacOSでは認識してくれませんでした
このボードに搭載されているシリアル変換のチップは
よくあるFTDI社のではなくSillicon Labs社のCP2102でした
f:id:nullnuma:20170716164254p:plain
メーカーのサイトを探してドライバを導入


jp.silabs.com
ここの「Macintosh OSX」用のファイルをダウンロードして
インストールすれば無事認識されました

ATコマンドではなくsscコマンド

いままではATコマンドを利用していたが
今回はsscコマンドを使わなければいけないみたいです

今の状態はこのコマンドで確認できます

op -Q

起動時はモード2でAPモードでした
モードは
1:STAモード
2:APモード
3:STA+APモード
の3種類あります

op -S -o 1
sta -S
sta -C -s <SSID> -p <PASS>

子機モードにする
周辺のAPを探す
APに接続する

これで無事にAPに接続することができました
今後いろいろ使って行きたと思います

パソコンが起動しない

6、7年前に作った自作PCが突然or起動して数秒から数十秒で電源が落ちる現象に見舞われた

 

とりあえずチェック

これだけ使ってるしそろそろ寿命かなと思いつつ

  • 余ってた電源をつないでみても直らない
  • 熱暴走かなと思ってグリスを塗り直すも直らない
  • クーラーの前で動かしてもダメ
  • BIOSの設定クリアしてもダメ

 

友人に尋ねる

色々試したがダメだったので友人に尋ねてヒントを得た

電源スイッチが壊れて挙動が不安定になった

 

解決

んなバカなと思いつつ電源スイッチ外してショートで起動させると問題なく動く

テスターで測るとなぜか押されてないのに6kΩほどの抵抗値を示す

 

ということで電源が落ちる理由は

電源スイッチの不良

そんなの誰が気付くんだ…って感じの故障でした

 

持つべきものは友