SSブログ

3.5mmジャックとプラグ [パーツ]

うちのSONYのテレビにはRCAコネクタが付いていません。
4極 (TRRS;Tip Ring Ring Sleeve)ケーブルが別途必要。
bravia_rca.png
ヘルプガイド BD_DVDレコーダーをつなぐ
https://helpguide.sony.net/tv/hjp1/v1/ja/04-02_01.html

音声・マイクの4極には「CTIA」(iPhoneなど現在の主流?)と「OMTP」など一応規格はある様子。
TRRSの順で、、
・Audio(L)-Audio(R)-GND-Mic  CTIA
・Audio(L)-Audio(R)-Mic-GND  OMTP

音声・ビデオの4極はカオスのようで決まったものがないみたい。
trrs_lvgr.pngTRRSの順で、、
・Audio(L)-Video-GND-Audio(R)  □[ VCR ]=
     SONY(BRAVIA)、Panasonic(VIERA, Strada)、SHARP(AQUOS)、JVC(Everio)
・Audio(L)-Audio(R)-GND-Video  □[CTIA?]=
     Pioneer(carrozzeria)、ALPINE、Raspberry Pi、TCL??
・Audio(L)-Audio(R)-Video-GND  □■[OMTP?]=
     海外製品?
     (Bearmax・AVOX)?
・Audio(R)-Audio(L)-GND-Video  □■[____]=
     iPod Video? TCL??
・Video-Audio(L)-Audio(R)-GND  ■[____]=
     海外製品?SAMSUNG TV??
     (REALLIFE JAPAN(AiVN)・VERSOS・TMY・arwin・HYFIDO・GREEN HOUSE)?
・Video-Audio(L)-Audio(R)-GND(long) (15mmではなく18mm) [____]=
     TOSHIBA/Hisense(REGZA)?     

PanCakeシールド作成では、RCAコネクタをユニバーサル基板に取り付けるのに苦労しました。
3.5mmジャックならユニバーサル基板にも乗っかるいいのがあったので代用しようと思ったのだけど。

φ3.5mm ステレオジャック 基板用 ブレッドボード対応 スイッチ付 黒 _ PJ-317-B
https://eleshop.jp/shop/g/gJ25311/

こんなものを作って接続テストしてみました。
trrs_testplug.jpg

SONY形式で行くなら、ちょうどAudio(R)は使わないので捨ててこんな感じ。
trs_jack1.jpg

別のジャックだと根本が金属で TRRSの最後のRとSがショートしてしまうけど、SONY形式なら使わないAudio(R)とGNDがショートするだけなので問題なさそう。
trs_jack2.jpg


nice!(0)  コメント(0) 

IchigoCakeの説明書を小冊子に印刷する。 [ツール]

IchigoCakeの説明書をこんな感じで印刷して小冊子にしてみました。
ij_book.jpg
最近というほど最近ではないですが、近ごろは多くのプリンタが両面印刷できるようです。

PDFは標準だとMicrosoft Edgeで開いてしまうのですが、Adobe Acrobat Readerで開くと印刷時に以下のダイアログが出るので、
ij_pdf_setting.png
・ページサイズ処理で「小冊子」を選択
・小冊子の印刷方法「両面で印刷」
・綴じ方「左」(漫画や国語の教科書なら右)
とします。

「中綴じホチキス」というものがあればいいのですが、うちにはないので、ホチキスを180度開いて、段ボールなどの柔らかいものの上で針を打ち、自分で針先を折り曲げて完成。

IchigoCake
http://ichigocake.shizentai.jp/
IchigoCake for ゲームクリエイター - IchigoJam
http://ichigocake.shizentai.jp/IchigoCake_jam.pdf
IchigoCake for ゲームクリエイター - IchigoLatte
http://ichigocake.shizentai.jp/IchigoCake_latte.pdf


マックス MAX ホチキス ホッチキス タテヨコ ホッチくる 15枚とじ ブルー HD-10V/B

マックス MAX ホチキス ホッチキス タテヨコ ホッチくる 15枚とじ ブルー HD-10V/B

  • 出版社/メーカー: マックス(MAX)
  • 発売日: 2003/08/25
  • メディア: オフィス用品

タグ:IchigoCake PDF
nice!(0)  コメント(0) 

Arduinoで「りんごをさっちゃん」スケッチ編 [Arduino]

「IchigoJam」は「こどもパソコン」ということで、サンプルプログラムの「りんごをさっちゃん」をArduino用に書き直すのは容易なことだと考えていました。
しかしサンプルプログラムにはコメントが1行目の「LINGO WO SACCHAN」しかなく、変数もBASIC版だと1文字しかなく、小学生がこのプログラムをみて勉強するのは厳しくないか?と思いました。
ということで、プログラムを読み解きながら、コメントをふんだんに付けてみました。
そのまえに、PanCakeを使うにあたってのとりあえず思いついた注意点をまとめてみます。

・PanCakeが起動するまで少し待つ
  起動前にシリアルデータを送っても処理してもらえない
  とりあえず1000ミリ秒待てば間違いなさそう(たぶん、もう少し短くてもいい)

・Arduinoのほうが高速
  IchigoJamはBASICでインタープリター
  Arduinoはコンパイルしたスケッチ
  サンプルプログラムの移植そのままだと速すぎる

・PanCakeに送る数値は2桁の16進数で
  数値データを2桁の16進数(2文字)にして送る
  sprintfで書式を作り数値を代入した文字列をつくり、それを送信するとか
char buf[96];
sprintf(buf, "PANCAKE SPRITE MOVE 00 %02X %02X", bx, 35);
Serial.println(buf);

  かなり適当なマクロを作るとか
// Convert to 2-digit hexadecimal number
#define F02X(d)  ((String)"0123456789ABCDEF"[(d)>>4 & 0x0f] \
                 +(String)"0123456789ABCDEF"[(d)    & 0x0f] ) 
    あるいは、
#define F02X(d)  (String((d)/16,HEX)+String((d)%16,HEX))

・数値は整数
  javascriptでは割り算の答えは(割り切れなければ)小数で出てくるけど、IchigoLatteではC言語の整数型と同様に小数点以下切り捨ての整数で返ってくる

こんな感じ。
lws.jpg

// LINGO WO SACCHAN for Arduino + PanCake
#define F02X(d)  ((String)"0123456789ABCDEF"[(d)>>4 & 0x0f] \
                 +(String)"0123456789ABCDEF"[(d)    & 0x0f] )   // 2-digit hexadecimal number form
uint8_t sx, f;                      // SACCHAN position, direciton (flip)
uint8_t bx;                         // bascket position
uint8_t rx, ry, rr;                 // apple position(x, y), rotation
uint8_t score, speed;

void setup() {
  pinMode(11, INPUT_PULLUP);        // SW [Left]
  pinMode(12, INPUT_PULLUP);        // SW [Right]
  sx = 36;  f = 0;  bx = sx + 7;    // initialize SACCHAN and bascket position, direciton (flip)
  rx = random(72); ry = 0; rr = 0;  // initialize apple position(x, y), rotation
  score = 0;  speed = 1;            // initialize score and speed
  delay(3000);                      // Wait for Pancake to stabilize
  Serial.begin(115200);             // initialize serial communications at 115200 bps
  Serial.println(F("PANCAKE RESET"));
  Serial.println(F("PANCAKE MUSIC SCORE 00 00 81 $C>C<EG"));
  Serial.println(F("PANCAKE MUSIC SCORE 01 00 80 RRRRR$RRRRRRRRCCDE~~~~EFED~~~~DEDC~~~~"));
  Serial.println(F("PANCAKE MUSIC PLAY 01"));
  Serial.println(F("PANCAKE SPRITE START 01"));
  Serial.println(F("PANCAKE SPRITE CREATE 00 5D"));   // 00:bascket (5D)
  Serial.println(F("PANCAKE SPRITE CREATE 01 1F"));   // 01:apple   (1F)
  Serial.println(F("PANCAKE SPRITE CREATE 02 0B"));   // 02:SACCHAN (0B)
  Serial.println(F("PANCAKE SPRITE CREATE 03 A6"));   // 03:number 0(A6)
  Serial.println(F("PANCAKE SPRITE MOVE 03 00 00"));  //    (tens place)
  Serial.println(F("PANCAKE SPRITE CREATE 04 A6"));   // 04:number 0
  Serial.println(F("PANCAKE SPRITE MOVE 04 08 00"));  //    (ones place)
}

void loop() {
  Serial.println("PANCAKE SPRITE MOVE 00 " + F02X(bx) + " 23" );    // 0x23=35(horizon)
  Serial.println("PANCAKE SPRITE FLIP 00 " + F02X(f)          );
  Serial.println("PANCAKE SPRITE MOVE 02 " + F02X(sx) + " 23" );
  Serial.println("PANCAKE SPRITE FLIP 02 " + F02X(f)          );
  Serial.println("PANCAKE SPRITE MOVE 01 " + F02X(rx) + " " + F02X(ry) );
  Serial.println("PANCAKE SPRITE ROTATE 01 " + F02X(rr)       );
  Serial.println("PANCAKE SPRITE CREATE 03 " + F02X(0xa6 + score / 10) );
  Serial.println("PANCAKE SPRITE CREATE 04 " + F02X(0xa6 + score % 10) );
  rr = (rr + 1) % 4;                // rotate apple
  ry = ry + random(speed + 1);      // falling apple
  if(35 < ry) {                     // When the apple reaches the horizon
    if((bx-4<rx)*(rx<bx+4)) {       // If the apple is in the basket ..
      score++;
      Serial.println(F("PANCAKE MUSIC SCORE 03 01 22 >>CE>C"));
    }
    if((sx-4<rx)*(rx<sx+4)) {       // If the apple hits SACCHAN ..
      Serial.println(F("PANCAKE SPRITE CREATE 02 08"));
      Serial.println(F("PANCAKE MUSIC PLAY 00"));
      Serial.println(F("PANCAKE MUSIC SCORE 03 01 40 <F~ED~<B>C~~~"));
      setup();                      // game over and restart
      return;
    }
    rx = random(72);  ry = 0;       // next apple
    speed = (score + 10) / 10;      // Speed up
  }
  delay(100);
  if( digitalRead(11) == LOW ) {  sx--; f=1;  bx=sx-7;  }   // move left
  if( digitalRead(12) == LOW ) {  sx++; f=0;  bx=sx+7;  }   // move right
}




PanCake
http://pancake.shizentai.jp/

IchigoCake
http://ichigocake.shizentai.jp/
タグ:pancake
nice!(0)  コメント(0) 

Arduinoで「りんごをさっちゃん」ハードウェア編 [Arduino]

PanCake Shieldをつかって、IchigoJam+Pancake (または IchigoCake)のサンプルプログラムである「りんごをさっちゃん」をArduinoに移植してみようと思います。
PanCake Shieldへのデータ入力選択ジャンパーピンをUno上のUSB-serial変換器からの入力ではなく、ATmega328からの入力に切り替えます。
pancake_s_jumper2.jpg
これで、スケッチからPanCakeを操作できます。

ゲームの操作については、IchigoJamはもともとPS/2キーボードをつなぐ前提で作られているのでキーボードでの操作ができますが、Arduinoにはそれがないのでコントローラーが必要です。
中古のゲーム機用コントローラーを使うかとも思ったのですが、ジャンク箱を探すと子供が学校で使った理科実験のおもちゃのコントローラーがありました。左右の操作に加えてもう1つボダンがついているというもの。分解すると意外と複雑だったのですが、必要なのはスイッチ3つ分だけなので、内部の配線をしなおして単純なスイッチにしてしまいました。
d11-13sw.jpg

電流と電磁石 フットサル・ロボ II
https://www.daiwa-e.com/contents/seihin/seihin_r5-01_main.php

Arduino Unoの11番,12番,13番,GNDのならびでスイッチにしてみたのですが、これが大失敗!
11番を右ボタン、12番を左ボダン、13番をやり直しボタンに割り当てましたが、13番はLEDにつながっていることをすっかり忘れていました。
pinMode(13, INPUT_PULLUP) にしても、LEDがつながっているためスイッチの状態に関わらず常にLOWになってしまいスイッチとしては使えませんでした。
ただ「りんごをさっちゃん」には必要ないのでとりあえずこのままで。
タグ:pancake
nice!(0)  コメント(0) 

PanCakeのフォークとナイフ [Arduino]

パンケーキの両脇のフォークとナイフがうまく表示されていなかったけど、キャプチャデバイスがしょぼいからかなと思ってました。
しかし画面が全然でないときもあったりしたので、もしかしたらはんだづけ不良かも、、。
基板の裏面を見てもよくわからなかったのですが、とりあえずはんだを盛ってみました。
すると、フォークとナイフがちゃんと出るようになりました。
しょぼかったのはキャプチャデバイスではなく、自分のはんだづけ技術でした。

pancake_s_i00.png
 ↓ ↓ ↓
pancake_s_i00_2.png
タグ:ビデオ pancake
nice!(0)  コメント(0) 

PanCake Shield にデータを送る [Arduino]

Arduino Uno のUSB-シリアル変換から、直接 PanCake を操作してみます。
pancake_s_jumper.jpg
こんなふうにジャンパーピンをつなぐと、シリアルモニターからの文字列を直接送ることができます。
pancake_s_serial.png
改行コードは「LF」で、通信速度は「115200 bps」。
例えば「PANCAKE IMAGE 01」と送ると、、
pancake_s_i00.png
 ↓
pancake_s_i01.png
となります。
タグ:pancake ビデオ
nice!(0)  コメント(0) 

PanCake Shield を作ってみた。 [Arduino]

Arduinoをつかってビデオ信号を作るのは、

TVout Library
https://playground.arduino.cc/Main/TVout/

というものを使うのがいいようだけど、古いもののよう。
そこで、こどもパソコン「IchigoJam」のアドオンボードというか、マルチメディアボードの「PanCake」というものがありまして、

PanCake
http://pancake.shizentai.jp/

これが、シリアル通信により制御できるとのこと。
じゃあ、Arduinoでも制御できそうということでやってみた。

とりあえず、「PanCake」を購入。
 ・プリント基板キット
 ・組み立て済 完成品
 ・ブレッドボードキット
とあるのですが、完成品だとArduinoとPanCakeとをつなぐ簡単なシールドが必要。ブレッドボード版だと完全にシールドを自作しないといけない。迷っていたので、どちらにもいくことができるプリント基板キットを購入。

PanCakeプリント基板キット(サウンドグラフィックボード) 組立キット(モジュール) 秋月電子通商-電子部品・ネット通販
https://akizukidenshi.com/catalog/g/gK-09686/

ディスコンマークが付いていて、在庫限りで取扱い終了、、。
でも、頑張ると決めたので、シールドつくることにした。

pancakeshield_1a.png
PasSのパーツもいくつか作ってみた。
信号レベルが3.3Vなので、2.2KΩと3.3kΩで分圧しています。

pancakeshield_2.jpg
スペースが少ないのでICソケットの下にも抵抗を配置。

pancakeshield_4.jpg
USB type-Bのコネクタとぎりぎり接しない感じ。(ねんのため絶縁テープで保護を。)
RCAコネクタの固定が難儀でした。

pancakeshield_3.jpg
完成!

いきなりテレビにつないでテレビが壊れたらいやなので、USBビデオキャプチャユニットを使用。
pancakeshield_5.png
バージョン1.0だと思っていたけど、バージョン1.2だった。

nice!(0)  コメント(0) 

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。