2023年3月27日 (月)

戦車 ~ウエザリングペースト使ってみた~

 今回のお題は戦車・・・ですが、ハードオフで購入(110円)したのでカプセルトイなのかリーメントなのか、何か別のモノなのか素性は不明。
戦車に詳しくないので型式も不明です。
何か戦車良さそうと思っただけなので。

Image3_20230327105601

何時ものように、ダイソーの紙粘土で土台を作成してアクリル絵の具で着色

Image_20230327105601

今回は、クレオスの「Mr.ウェザリングペースト泥」を使用
Image4_20230327105601

凄いぞウェザリングペースト!! なんか土に見える
ダイソーで購入したドライフラワーを植樹して森っぽく・・・見えるかな?
Image1_20230327105601

森が・・・やっぱショボかった?
丈を短く切った方が良かったかも

Image2_20230327105601 

| | コメント (0)

2023年3月10日 (金)

スナフキンのキャンプ

今回の素材はコチラ

Image_20230310134101

 

ムーミンのリュック姿と情景的に美味き合わない気がするので、スナフキンだけにします。

Image3_20230310134201

土台に粘土を盛って着色

Image1_20230310134201

ダイソーの「ジオラマ情景」草と葉、石、マイクロストーンをトッピングして土台作成

Image2_20230310134201

スナフキンとテントを乗せて完成

Image4_20230310134201

スナフキンのコートも緑なので、緑率高くて、煽り気味の角度で見ないとスナフキンが情景に埋没して目立たない件

Image5_20230310134201

| | コメント (0)

2023年2月15日 (水)

チャーリーブラウンとルーシーのスケート

カプセルトイを素材にジオラマを作ってみました
Image1_20230215132401 

素材はコチラ「ならぶんです」PEANUTSバージョン

Image2_20230215132401

材料はコチラ

雪パウダー(これは、100均にはなくてNゲージ用の奴、ちょっとお高い)

UVレジン(ダイソー)とラメパウダー(Can★Do)だったと思う。

Image3_20230215132401

完成予想レイアウト

Image4_20230215132401

 

土台にレジン投入

大1本、小2本で500円分を使用・・・した割りに氷感が出なかった、紙粘土の土台で良かったかも
Image5_20230215132401 

 

雪パウダー投入

Image6

チャーリーブラウンとルーシーを配置して完成

Image7

| | コメント (0)

2023年2月14日 (火)

まさお君とボーちゃんの遠足

カプセルトイを素材にしてジオラマ(?)を作ってみました。
Image1_20230214151601

素材はコチラ
クレヨンしんちゃんのカプセルトイ 「ならぶんです3」と「もぐもぐパーティー」
Image3 

材料はこちら
ダイソーで到達した 紙粘土、ジオラマ情景パウダーと草と木、ビン(口と底が同じサイズのもの)
中学校の美術で使ったアクリル絵の具
Image4 

 

紙粘土で土台を作って、アクリル絵の具で着色
Image2_20230214151601 

ジオラマ情景用のパウダーをパラパラふりかけて出来上がり

・・・(;^ω^) 製作過程を記録するの忘れてた

Image5

初めてにしては上手くできた気がする・・・自画自賛

| | コメント (0)

2022年7月27日 (水)

M5Atom LITE/M5Stamp PICOのフルカラーシリアルLEDをライブラリなしで制御する

M5Atom LITE / M5Stamp PICOに付いている フルカラーシリアルLEDをライブラリなしで操作できたので、その方法です。
フルカラーシリアルLEDの仕様は▼のようにHIGH/LOWシグナルの長さで1Bitを表現、GRB各8ビット(計24Bit)を送信すれば色をせってできます。
仕様は単純ですが、問題は0.3μ秒の短いタイミングをどうやって計るかです。
M5Stampのライブラリを覗くと、アセンブリコードのループでタイミングをとっていました。

 

ArduinoIDEではタイマの最小単位は1μ秒なので、普通にやったのでは0.3μ秒は計れません。
ライブラリでやっているように無駄にループを回してタイミングをとるしかないのですが
コンパイラが無駄に賢くて、ループ内で値が変化しない、変化がループ外に波及しないコードは省略されてしまい、タイミング取りには使えません。
なので、最適化出来ない処理をループしてタイミングをとる必要があります。

Led

ArduinoUNOではシリアルLEDをSPI-MOSIに接続して、クロックを調整してタイミングを取る方法を編み出した人がいましたが
M5Atom LITE / M5Stamp PICOのシリアルLEDはSPIピンにはつながっていないのでこの方法は使えません。
そこで、digitalRead()にかかる時間でタイミングを取ってみました。
幸いな事にM5Atom LITE / M5Stamp PICOには読み取るのに丁度よいデバイス(ボタン)が付いています。
1000回繰り返して300μ秒±150μ秒に収まるようにdigitalRead()の回数を調整ます。
1000回で300μ秒なら1回あたり0.3μ秒だねって理屈です。

▼ 調整に使用したスケッチ


#define RGBPIN 27
#define BTNPIN 39
#define LEDPIN 25
int BTN = LOW ;

void setup() {
  Serial.begin(115200);
  while (!Serial) { delay(1);}

  pinMode(RGBPIN,OUTPUT) ;
  pinMode(LEDPIN,OUTPUT) ;
  pinMode(BTNPIN,INPUT) ;

  digitalWrite(RGBPIN,LOW) ;
  delayMicroseconds(80) ;

  Serial.println("--- STRAT");
  digitalWrite(LEDPIN,HIGH) ;

  unsigned long stratTime = micros( ) ;
  // -----
  for (int N=0;N<1000;N++) {
    digitalWrite(LEDPIN,HIGH) ;
    for (int L=0;L<3;L++) {
      BTN = digitalRead(BTNPIN);
    }
  }
  // -----
  unsigned long endTime = micros( ) - stratTime ;
  Serial.print("--- BIT 1 :");
  Serial.println(endTime);

  stratTime = micros( ) ;
  // -----
  for (int N=0;N<1000;N++) {
    digitalWrite(LEDPIN,HIGH) ;
      for (int L=0;L<2;L++) {
        BTN = digitalRead(BTNPIN);
      }
    }
  // -----
  endTime = micros( ) - stratTime ;
  Serial.print("--- BIT 0 HIGH :");
  Serial.println(endTime);

  stratTime = micros( ) ;
  // -----
  for (int N=0;N<1000;N++) {
  digitalWrite(LEDPIN,HIGH) ;
    for (int L=0;L<5;L++) {
      BTN = digitalRead(BTNPIN);
    }
  }
  // -----
  endTime = micros( ) - stratTime ;
  Serial.print("--- BIT 0 LOW :");
  Serial.println(endTime);

  Serial.println("--- END");
  digitalWrite(LEDPIN,LOW) ;
}

void loop() {
}


ボタン状態の読み込み回数で1.5μ秒間隔単位くらいの調整ができるので、0Bit、1Bitの時間調整を行います。
±1.5μ秒の余裕があるので、近い値に寄せれば大丈夫です。 ※実際にはもうちょっと余裕があるっぽい。
で、digitalRead()でタイミングを取ってビットデータを送信するスケッチが▼


#define RGBPIN 27
#define BTNPIN 39
int BTN = LOW ;

void sendBitData(uint32_t bitData) {
  for (uint32_t sendBit = 0x00800000;sendBit!=0;sendBit>>=1) {
    if ((bitData & sendBit) == 0 ) {
      digitalWrite(RGBPIN,HIGH);
      for (int L=0;L<2;L++) {
        BTN = digitalRead(BTNPIN);
      }
      digitalWrite(RGBPIN,LOW);
      for (int L=0;L<5;L++) {
        BTN = digitalRead(BTNPIN);
      }
    } else {
      digitalWrite(RGBPIN,HIGH);
      for (int L=0;L<3;L++) {
        BTN = digitalRead(BTNPIN);
      }
      digitalWrite(RGBPIN,LOW);
      for (int L=0;L<3;L++) {
        BTN = digitalRead(BTNPIN);
      }
    }
  }
}

void setup() {
  pinMode(RGBPIN,OUTPUT) ;
  pinMode(BTNPIN,INPUT) ;
  digitalWrite(RGBPIN,LOW);
  delayMicroseconds(80) ;
}

void loop() {
  sendBitData(0x00FF0000) ;
  delay(500) ;
  sendBitData(0x0000FF00) ;
  delay(500) ;
  sendBitData(0x000000FF) ;
  delay(500) ;
}


PicoledAtomled

| | コメント (0)

2022年5月26日 (木)

AM2301BのCRC

AM2301BのCRC
情報が少なくて割と困ったので書いときます
秋月で売ってる温湿度センサー AM2306B
スペックシートに詳しい情報が載ってなくて (。´・ω・)? 状態
コマンドリファレンスがないとかどうかしてる。

中でもCRCの算出方法はチョット悩んだのでサンプル載せときます。
AM2301Bの使い方の動画はYouTubeにあげます。


// AM2301BのCRC計算
// 入力: uint8_t readData[6] - センサーから読み取ったデータ6Byte
// 出力: uint8_t crc - CRC8-Dallas/Maxim (X8 + X5 + X4 + 1)
//
// 生成多項式 : 1 + x^4 + x^5 + x^8 => B100110001 => 0x31
// 左シフト
uint8_t crc = 0xFF; // CRC初期値 0xFF
for (int i = 0; i < 6 ; i++) {
    uint8_t b = readData[i];
    crc ^= b;
    for (int x = 0; x < 8; x++) {
        if (crc & 0x80) {
            crc <<= 1;
            crc ^= 0x31;
        } else {
            crc <<= 1;
        }
    }
}


Image

| | コメント (0)

2021年12月 6日 (月)

ArduinoUNOのピン名ラベル貼ってみた

公式ArduinoUNOは、ピン側面にピン番号が刻印されているのがシールドを使う時に地味に便利

Label1

なので、ラベルシールを作って互換機にもラベルシールを貼ってみました

インクジェットプリンタ用のラベルシートにレーザープリンタで印刷したのでチョットかすれてしまいまいましたが・・・

Label2

ピン名が一目で分かるの便利すぎてワロタ

Label3

手持ちの互換機全部に貼ろう・・・と、思ったけど、透明シートに黒印刷したから

黒いピンソケットには貼れない・・・orz

白いラベルシートにしておくんだった (´・ω・`)

| | コメント (0)

2021年10月 6日 (水)

人力パターンエディタ

温湿度センサーDTH11の使い方(1ーWire通信)の練習に温湿度計を作ってみたのですが…

Dth11

適当なサイズのフォントとアイコンのデータがなかったので、パターンエディタで作ろう…
にも、適当なパターンエディタがない (´・ω・`)
10個位なので、まぁ良いか…で、Excelでデザインして人力でビットパターンに変換

Font1Font2

一個一個は大した手間ではないのだけど、直しが入ると面倒くさい。
パターンエディタを何とかしないと。

| | コメント (0)

2021年9月18日 (土)

SPIの使い方が分からなくて弄りまわしてたら…どうしてこうなった…

SSD1306 SPI接続の使い方が分からなくて
あーでもない、こーでもないと弄りまわしてたら
何故かソフトウエアSPIができてしまった… ( ゚Д゚)

RESET- GP13
CS  - GP12
DC  - GP11
CLK - GP10
MOSI - GP9
ハードウエアSPI接続と同じ(多分)

Spi1

RESET- GP7
CS  - GP6
DC  - GP5
CLK - GP4
MOSI - GP3
適当に変更、これでもちゃんと動く (*'ω'*)

Spi2

コレはコレで良いと思うんだが…
… ハードウエアSPIの使い方が分からない (´・ω・`)

| | コメント (0)

2021年7月27日 (火)

2840円のUSBミニオシロスコープ買ってみた

OSC001 PCB SCOPE(USBミニオシロ/データロガー)
https://akizukidenshi.com/catalog/g/gK-11841/
を思わず買ってしまった。

2840円で2CHとか凄すぎ、USB接続で画面がキャプチャ出来るのもステキ
とか、勢いで買ってしまった。
高いものではないのでハズレでもそんなに痛くはない。

Osc001

買ってからGoogle先生に聞いてみると性能的には難ありだそうで
回路図が公開されているので見る人が見ると解像度的に「どうしてこうなった」な部分があるし、
データロガーとロジックアナライザ機能は実質使いものにならないレベルらしい。
ゆるく楽しむ分にはデジタル信号のHIGH/LOWが識別できれば良いので問題ではない。

オリンピックでロジスティクスが混乱していると言われていたがポチッた翌日に届いた、過去最速記録じゃあるまいか。
えっ?秋月だよねAmazonじゃないよね?とか2度見するレベル

ブレッドボードに直挿しで使えるのも便利だし意外ノイズも少なくて扱いやすい。

良いお買い物だった。

▲ArduinoのPWM出力を観測してみた。

| | コメント (0)

«3万5千円のキーボードとか頭おかしい