スポンサーサイト

一定期間更新がないため広告を表示しています

スポンサードリンク | - | | - | - |

ボタン判定

#include "Arduboy.h"

// make an instance of arduboy used for many functions
Arduboy arduboy;

 

// This function runs once in your game.
// use it for anything that needs to be set only once in your game.
void setup() {
  // initiate arduboy instance
  arduboy.begin();

  // here we set the framerate to 15, we do not need to run at
  // default 60 and it saves us battery life
  arduboy.setFrameRate(15);
}


// our main game loop, this runs once every cycle/frame.
// this is where our game logic goes.
void loop() {
  // pause render until it's time for the next frame
  if (!(arduboy.nextFrame()))
    return;

  // first we clear our screen to black
  arduboy.clear();

  // we set our cursor 5 pixels to the right and 10 down from the top
  // (positions start at 0, 0) 
  arduboy.setCursor(4, 9);

  // then we print to screen what is in the Quotation marks ""
  if( arduboy.pressed(A_BUTTON) == true ) 
  {
    arduboy.print(F("A!"));
  }
  else if(arduboy.pressed(B_BUTTON) == true)
  {
    arduboy.print("B!");
  }
  else arduboy.print("xxx");
    

  // then we finaly we tell the arduboy to display what we just wrote to the display
  arduboy.display();
}

 

ジャジャガッチ | Arduboy | 07:20 | comments(0) | trackbacks(0) |

雛形

サンプルファイル見て、雛形用意した。

 

#include "Arduboy.h"

// make an instance of arduboy used for many functions
Arduboy arduboy;

// This function runs once in your game.
// use it for anything that needs to be set only once in your game.
void setup() {
  // initiate arduboy instance
  arduboy.begin();

}

 

void loop() {
  // pause render until it's time for the next frame
  if (!(arduboy.nextFrame()))
    return;

  // first we clear our screen to black
  arduboy.clear();

 

 //ここにロジック書く////////////////////////////

 

  // then we finaly we tell the arduboy to display what we just wrote to the display
  arduboy.display();
}

ジャジャガッチ | Arduboy | 22:24 | comments(0) | trackbacks(0) |

Arduboy買いました

久しぶりに電子部品を買いに行った。子供のおもちゃを直すために。

かなり久しぶりにこういう店に来たので、テンション上がっていろいろ買ってしまった。

 

それは・・・、Arduboy!

調べてみると、Arduinoベースで作られているゲームボーイのような携帯ゲームらしい。

面白いのは、自分でゲームを作れること!

最初からインストールされているゲームはバージョン等によって異なるらしいが、僕の場合はシューティングゲームが入っていた。

 

 

見た目も中々かっこいい!

このサンプル、結構よく出来ていて、自機のパワーアップ等も実装されている。

 

とりあえずサンプルプログラムを書き込むために、Arduboy用のライブラリをzip形式でダウンロード、IDEでライブラリを追加後、Hello worldというサンプルを書き込んでみた。

 

 

しばらく楽しめそうだ。

ジャジャガッチ | Arduboy | 21:16 | comments(0) | trackbacks(0) |

Arduino始めました

昨年からなんだけど、Arduino始めました。

きっかけは、PICマイコンをusb制御しようと思ったときに、コンパイラの種類とかライブラリのバージョンによってコンパイルできたり出来なかったり安定しなくて不満が出たこと。

特にコスト面、サイズ面の制約もなかったので、試しに、ということでArduino。

 

一応知らない人のためにArduinoとは何ぞやということを説明しておく。

Arduinoは有名なマイコンボードで、USB接続することでピンの0 / 1を制御出切る。

ただ、ものすごくお手軽。

ハードウェア的にはUSBでPCと接続すればそれでok。それだけでプログラムの書き込み、電源供給が出来る。

ソフトウェアも非常に簡単。

例えばLチカ(LEDチカチカ)ならば

 

void setup() {
  // put your setup code here, to run once:
pinMode(2, OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
digitalWrite(2, HIGH);   // LEDをオン
  delay(1000);                  // 1秒待つ
  digitalWrite(2, LOW);    // LEDをオフ
  delay(1000);
}

 

だけ。

関数もそれほど多くなく、日本語リファレンスもあるので容易にやりたいことを実現できる。

3000円くらいで買えるし、超オススメ。もう当分PICは触らない。

もちろん、きっちり最適化したいときはPICじゃないと無理な場合はあるから、そこは用途に応じて使い分けましょう。

 

ジャジャガッチ | Arduino | 23:14 | comments(0) | trackbacks(0) |

回転磁場(三相モータ)

回転磁場をグラフィカルに理解するため

 

https://www.geogebra.org/m/dcg3qscp

 

を作った。

ジャジャガッチ | その他 | 20:44 | comments(0) | trackbacks(0) |

3Dプリンタ

実は、半年くらい前に3Dプリンタ購入した。

会社では2〜3年前くらいから使っていたのだが、急に欲しくなって。

いろいろ悩んで選定したのが、FLASHFORGE社のFinderという機種。6万円。

もっと安いものもたくさんあるのだが、レビューを読んでいると、冒険したくないのなら5万円くらいは出さないと無理そう。

結論から言えば大正解だった。

ステージの水平出しも簡単。会社で使っている機種は他社の10万円くらいもののだが、Finderの方がデキがよい。

半年くらい部屋のオブジェになっていたのだが、最近ちょっと作りたいものがあってフル稼働。

毎晩3Dプリンタの音を聞きながら寝てます。

 

 

ジャジャガッチ | その他 | 22:19 | comments(0) | trackbacks(0) |

Design Spark Mechanical

3DCADを乗り換えた。

これまではPTC Creo Elements。

初めて使った3DCADで、特に問題なく使えていたのだが、少し前から72時間おきのアクティベーションが必須となってしまった。

ちょっとモデル作るか、と思い立ってからのアクティベーション手続きはかなり面倒。

後継の3DCADは30日試用版しかないし、他のを探してみた。

 

Fusion360はかなり評判がいいが、会社で使うのは有償ライセンスが必要っぽい。

会社ではかなりお高い3DCADのライセンスがあるので、わざわざFusion360のライセンスを購入するのは無理。

 

そこでDesign Spark Mechanical。

商用利用も無償で可能らしい。

試しに使ってみた。↓Φ30で直方体をくりぬいてる。なかなか使いやすい。

Creo Elementsより僕には使いやすいかも。

ジャジャガッチ | コンピュータ | 22:58 | comments(0) | trackbacks(0) |

フーリエ級数で矩形波

なんてことはない、矩形をフーリエ級数展開してみた。

周期dの関数をフーリエ展開する。

 

0/1の矩形波は

となる。N=±5までの範囲とN=±50までの範囲で比べてみた。

 

#include <iostream>
#include <vector>
#include <cmath>
#include <complex>
const double PI = 3.14159265358979323846;
using namespace std;
int main(void) {

    double d = 1;
    auto a = [&](int n)
    {
        if (n == 0) return 0.5;
        else return 1. / PI / (double)n * sin(n*PI / 2.);
    };

    for (double x = -2; x<2; x += 0.01)
    {
        complex<double> val = 0;
        for (int n = -10; n<=10; n++)
        {
            val += a(n) * exp(2 * PI*n*x / d*complex<double>(0, 1));
        }
        std::cout << x << " " << val.real() << std::endl;

    }

}

ジャジャガッチ | C/C++ | 23:03 | comments(0) | trackbacks(0) |

jwcad 自動作図(2)パラメータ

自動作図の際にパラメータを渡したいことがあるだろう。例えば具体的な寸法など。

どうすればいいのかな、と思ったがバッチファイルで実行するexeファイルでパラメータを入力させればよい。

例えば次のような感じ。

 

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main() {
    double a=1;
    scanf("%lf",&a);
    if (FILE *fp = fopen("JWC_TEMP.TXT", "w")) {
        fprintf(fp, "0 0 %f 0¥n",a);
        fprintf(fp, "%f 0 %f %f¥n",a,a,a);
        fprintf(fp, "%f %f 0 %f¥n",a,a,a);
        fprintf(fp, "0 %f 0 0¥n",a);
        fclose(fp);
    }
}

ジャジャガッチ | C/C++ | 22:56 | comments(0) | trackbacks(0) |

jwcad 自動作図

2次元cadソフトはjwcadを使っている。

以前から作図の自動化が出来ないかと思っていて、今日ふと少し検討してみようと思い立った。

最初はdxfファイルを直接C++で書き出せないかと考えたのだが、dxfファイルのフォーマットはかなりカオスらしくて断念。

そこでもう少し調べてみるとjwcadで外部変形というワードを発見。

jwcadではこの機能を使って作図の自動化が出来るらしい!

 

というわけでやってみた。

外部変形を実現するためには、ある形式のバッチファイルを実行し、バッチファイル内で図形情報を記録したjwc_temp.txtを書き出すプログラムを実行すればよいらしい。

 

次のような感じ。

@echo off
REM #jww
REM #h0

REM #cd
REM #e
test.exe

 

test.exeのコードは例えば次のような感じ。

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main() {
    if (FILE *fp = fopen("JWC_TEMP.TXT", "w")) {
        fprintf(fp, "0 0 1 0¥n");
        fprintf(fp, "1 0 1 1¥n");
        fprintf(fp, "1 1 0 1¥n");
        fprintf(fp, "0 1 0 0¥n");
        fclose(fp);
    }
}

 

0 0 1 0は座標(0,0)から(1,0)まで線分を描く。

四角形を記述するコマンドはないらしい。

jwc_temp.txtで検索すればコマンド一覧が出てくるのでそれを参照して書けばok。

夢が広がる!

 

ジャジャガッチ | C/C++ | 22:08 | comments(0) | trackbacks(0) |
2/59PAGES | << >> |

06
--
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
--
>>
<<
--
PR
RECOMMEND
RECENT COMMENT
MOBILE
qrcode
OTHERS
Since 2013/09/17
LATEST ENTRY
CATEGORY
ARCHIVE
LINKS
PROFILE
SEARCH