Kousei Ikeda/Blog

2016.05.28/Development

Screen Shot 2016-05-28 at 22.29.01

Fusion360入門引き続き。XY機構の設計をしてみてる。3Dプリンタではないから今回はZはない。

XY機構は、今回はじめて知ったんだけど色々種類があるようで、今回はCoreXYっていうやつにしてみてる。XY機構の作例を求めてさまよってる時に出会ってなんかよさそうっておもった。なんでCoreXYにしようと思ったかというと、単純に前と違う機構にしてみたかったってのもあるし。利点もあるようだし、構造もシンプルな気がする。タイミングベルトが長くなるから、そのあたりは問題も出てきたりするんだろなと思ってる。ファームウェアはもともと対応してるらしいしそのあたりは問題なし。ステッピングモーターも2つでよい。

あと、前に似たようなものを作った時はアルミフレームにリニアレールをつけて、そこにPOMのスライダーを入れてたんだけど、今回はフレームとレールを共用にできないかなと思ってる。
ちゃんとなるなら、リニアシャフト使うとか、リニアガイド使うとかかなと。どちらにしても別途、構造としてのフレームがいるように思う。違うサイズに作り変えようとしたとき、大きくしたい時などに、部品数が多いとお金が飛んでくなと思った。リニアシャフト高いし。リニアレールも高い。アルミフレームが1番安い。あとは、あんまわかってないけど、リニアシャフトが長くなるとアルミフレームに比べて太くしづらいし(太いのが高そうだし)、しなりそうだ。

精度を求めると、リニアシャフトのほうがいいんだろうなと思う。ただ今回は精度を全然求めてないということもあって、アルミフレーム上を樹脂つきベアリングでゴロゴロするのでなんとかならないかなと思っている。OpenBuildsのmini v wheelを使ってる人も多い模様。alibabaにも類似品あるみたいだしそれ試すのもアリかなと思いつつ。とりあえず、きっと組んでみたらうまく動かなかったりするんだと思うけどそれも経験てことで、やってみる。

アルミフレームの耐荷重については断面2次モーメントがなんちゃらっていう式と人生初の格闘をして、なんかそれっぽい数字で計算、、、してたら表見つけて計算いらんかったやんていう。

Fusion360ままだうまく使えてる気がしないというか、なんでこれとこれが同時に動かせないんだ!とか、ここに揃えたいのにどうやるんだ!とか、よくわからん。基礎おさらい半分、聞きたいこと質問できるの半分、な講習とか京都でやってくれたらいいのにな。(MTRLに期待)

あとは、大阪はビバホームがドーム前すぐあるのすごくうらやましい。京都は六地蔵にコーナンプロがあるけど市内から1時間。20分足すと、大阪のビバホームに着く遠さ。駅からも10分以上歩くし。京都はDIY不毛の地なのか、それともなんかいいとこあるのかな。

2016.05.29追記 : 厳密には純粋なCoreXYはもう少し複雑なベルトの取り回しを行うもので、これはH-botとも呼ばれる簡略型の構造だそう。(「DS.1000」のご紹介 – 3Dプリンタ/3D-CAD

2016.05.21/Development

Screen Shot 2016-05-21 at 08.03.13

MISUMIは色々3Dデータもダウンロードできるからありがたいのだけど、アイドラーピンのデータがなかったので練習がてらFusion360でモデリングしてみる。
ねじも簡単につくれるんだな〜すごいな〜〜。

2016.05.17/Development

2810d0e2-d4f3-4d6c-b7ee-e6d4cc235ffc

機構の設計に使いたくて、Fusion360をとりあえずインストールして、ゴニョゴニョ入門中。レンダラーがほっといてもここまでやってくれるのが素人にはすごいテンションあがる。面白いな〜。

2015.04.22/Development

unity

Unityさわってみよう2日目

- トランスフォームギズモトグルボタン
- Asset Store
- textureをダウンロードして適用
- Unityちゃん
- 3Dモデルをダウンロードして配置
- Animationパネル
- Halo
- Terrian
- 山を作る
- 草のテクスチャを設定する
- 木を作る
- 草原を作る
- デフォルトのキャラクターを設置する
- キーボードで歩く
- キーボードでジャンプする

一瞬で森の中で遊ぶ人間できた。すごい。
1e217e95bef82a9f154a7568efa3968b2

感想

参考にしたのがUnity4の記事だから若干変わっててこの機能どこいった、ってことある。

参考

「ゲーム開発初心者のためのUnity入門」最新記事一覧 – ITmedia Keywords

2015.04.15/Development

unity

Unityの基本をガっとやる。やったこと記録。

学んだこと

  • プロジェクト作成
  • シーン作成
  • 開発中の視点操作
  • カメラアングルの自動設定
  • プリミティブ図形の作り方
  • 色のつけ方
  • テクスチャのつけ方
  • スクリプトでのオブジェクトの移動、回転、伸縮のさせ方
  • 重力の付与
  • 衝突判定
  • バウンド
  • デバッグコンソールに出力
  • 動的なインスタンス生成と破棄
  • キー入力キャッチの実装
  • オブジェクトの入れ子
  • 空のオブジェクト作ってグルーピングする
  • カメラをオブジェクトに追随させる
  • シーン移動
  • スクリプトからプロパティをpublicにしてGUIでいじれるようにする
  • 特定方向の移動の制限

68dbc442ec157b86cc645de21f37de27

感想

  • 情報が多いのは学習コストを下げてくれる、素晴らしい
  • 実際よくできてる
  • とっかかりやるのはほんと初学者とかプログラミング未経験者でも楽しいと思う

参考

Unity入門 (全26回) – プログラミングならドットインストール

Tag :
2015.01.13/Development, Graphic

h800

1/10くらいになってやっと年賀状書いてたわけですが、作ろうと思った案を途中まで作ってイラレで並べるのが面倒になってSVG/JSで作りました。
フラクタル羊。ジェネラティブ年賀状。

手順はこんな感じ。

  1. 手書きラフ書いて
  2. スキャンしてイラレでパス化して適当に塗る
  3. SVGで保存
  4. JSでプログラム書いてフラクタル生成
  5. パラメータ調整していいかんじにしてSVGで保存
  6. イラレで取り込んで、色調整して、背景つけて、文字入れて、仕上げ

せっかくなんで若干いじって、生成過程を見れるようにしてみた。

デモ。アップもしてみた。ソースはきれくとかしてない。
http://ikekou.jp/projects/fractal-sheeps/

できたーとおもって印刷しようと思ったら家のプリンタ(年代モノ)がぶっこわれたので諦めてキンコーズで印刷してたんですけど、家のインクジェットプリンタでやるよりずっといい。まあそりゃそうだ。ただフチなしはできないらしいので、印刷して送ったやつは若干デザイン変えてる。

それでも、印刷位置を0.5ミリ左にお願いします、、、とか何回も面倒くさいこと(キンコーズでそんな細かい事言うなよって話だ)言ってもちゃんと親切に対応してくれたのでむっちゃありがたかった。キンコーズありがとう。

今年もなにとぞ、よろしくお願いいたします。
よく遊び、よく作る。2015年のテーマかな。
楽しいこと、今までと違うこと、もっといっぱいやってきたいなー。

2014.07.18/Development

gulp-2x

この前coffeeでjs書いたお仕事ではじめて使ってみた程度のgulpだけど
多くのことはしてないが導入の参考になればと思って書く。
gulpは気に入ったので次も多分使う。

そのときはjsだけ書く感じのお仕事だったから
htmlはプリプロセッサとかじゃないしcssはwatchすらしてない。
htmlはwatchだけしてlivereload。

coffeeはwatchしてconcatで1ファイルにまとめてコンパイル。
そのときはやってないのだけど、sourcemapとuglify。
isReleaseフラグとgulp-ifプラグインでstream中に分岐させてて
開発時は引数なしで呼び出し

gulp

リリース時はオプションつけて呼び出し

gulp --release

する。
・release=falseのときはsourcemap挿入、uglifyはしない。
・release=trueのときはsouremap挿入しない、uglifyはする。
という動きになる。gulp-if便利。

あとgulp-utilのbeep()はビープ音鳴らすだけ。でも便利 笑

あとあとwatchがエラー時に止まっちゃうからどうしたものかと思っていたら

on 'error', (event)->

でエラーをキャッチしてあげればそのままいける。uncaught errorのままだとまずいってことみたい。

途中までCodeKitでやっていたのだけど重すぎてgulpに乗り換え。gruntはどうもgruntfile書くのが面倒で、、、gulpのほうが性に会ってるみたい。

今回はcoffeelintしてなかったけど次は足す。

以下、gulpfile.coffee。

# modules
gulp = require 'gulp'
connect = require 'gulp-connect'
coffee = require 'gulp-coffee'
gutil = require 'gulp-util'
sourcemaps = require 'gulp-sourcemaps'
concat = require 'gulp-concat'
gulpif = require 'gulp-if'
uglify = require 'gulp-uglify'

# paths
root_dir = 'src/'
coffee_dir = root_dir+'content/_coffee/'
js_dir = root_dir+'content/js/'
html_files = root_dir+'**/*.html'
coffee_files = coffee_dir+'**/*.coffee'

# arguments
console.log 'env : ', gutil.env
isRelease = gutil.env.release || false
console.log 'isRelease : ', isRelease

# server
gulp.task 'connect', ->
    connect.server
        root: 'src'
        livereload: true
    return

# html
gulp.task 'html', ->
    gulp.src html_files
    .pipe connect.reload()
    return

# coffee
gulp.task 'coffee', ->
    gulp.src([
        coffee_dir+'common.coffee'
        coffee_dir+'page1.coffee'
        coffee_dir+'page2.coffee'
        coffee_dir+'page3.coffee'
        coffee_dir+'main.coffee'
    ])
    .pipe concat 'app.coffee'
    .pipe gulpif(not isRelease, sourcemaps.init())
    .pipe coffee()
    .on 'error', (event) ->
        gutil.log event
        gutil.beep()
        return
    .pipe gulpif(not isRelease, sourcemaps.write())
    .pipe gulpif(isRelease, uglify())
    .pipe gulp.dest(js_dir)
    .pipe connect.reload()
    return

# watch
gulp.task 'watch', ->
    gulp.watch [html_files], ['html']
    gulp.watch [coffee_files], ['coffee']
    return

# default
gulp.task 'default', [
    'connect'
    'watch'
]

gistにもおいた。
gulp https://gist.github.com/ikekou/b6b4d90d7a16931660d6

2014.07.07/Development

“Home Control”とか大げさなタイトルだけどIRKitの話でもなくiOS Homekitの話でもなくて、
使おうとおもって買ったもののタイミングを逃して使わず家に転がっていた
DMXディマーパックを使ってAlfredで電気製品をオンオフしてみたっていうだけの話だったりする。

1. やろうとしたこと

Alfred(Macの多機能ランチャー)から電気とかサーキュレーターとかをオンオフする。
“home-run”で電源オン。”home-stop”で電源オフする。

2. 準備したモノ

ELATION DP-415 (DMX Dimmer Pack)
ENTTEC DMX USB Pro (USB => DMX Converter)
Mac

3. 使ったソフトウェア

Alfred (Power pack)
Max/MSP
iTerm

4. 構成

Alfred => (UDP Socket) => Max/MSP => (DMX) => DMX USB Pro => (DMX) => DMX Dimmer Pack => 電気製品

5. セットアップ

DMX USB Proのドライバ入れたりする。細かくは忘れた。

6. Alfredでやったこと

AlfredでComnmandを叩くWorkflowを作る。run用とstop用を2つ。
スクリーンショット 2014-07-07 17.34.34

macに最初から入ってるcuコマンドを使って、AlfredからMaxの間はUDPで通信する。

cu -z -u 127.0.0.1 50001;exit

キックするだけだから値もナシで、-zにしてる。
あとAlfredでコマンド叩くとterminalが一枚立ち上がってそのままになるからexitで閉じる。
ってどっかに書いてあってそうしてみたんだけど閉じなくて、iTermなら閉じてくれたからAlfredから起動するTerminalソフトをiTermにした。
Terminalでもexitで閉じるようにきっとなんか設定があるんだとおもう。

7. Max/MSPでやったこと

ビルトインのコンポーネントだと”udpreceive”があるけど正しくOSCフォーマットでないとはじかれる。
今回の用途だととりあえずキックできればいいしコマンドラインでOSCをどうやって送ればいいかわからなかったから
普通にUDPを扱えるexternalのsadam.udpReceiverを使う。
50001番ポートがキックされたらrun、50002番ポートがキックされたらstopということにする。(ほんとは同じポートで受け取った値で分岐すればいいと思う)
dmxusbproのexternalは無料だと2チャンネルまで、有料だともっと使えるみたいだけど今回はとりあえず無料でよいのでそのまま。
getdevsしたあとopenのmessageにシリアルポート名を直接打ってる。ここなんかいい感じにしたい。
dmxusbproに入力するのは0が最小、255が最大だから、オンオフみたいだからそれで電源をオンオフする。
スクリーンショット 2014-07-07 17.52.22

8. DMX USB Pro ~ DMX Dimmer Pack ~ 電気製品の間でやったこと

ここはもう特になにもやってなくて
dmxusbproのexternalがDMXをDMX USB Proに送ってくれて、そっからDP-415に送ってくれて、そしたら調光してくれる。

できあがりは冒頭の動画。

調光だからほんとは段階的に制御できるんだけど、サーキュレーターは中間の回転速度で異音がするし、
PWMじゃないから(だよね?)LED電球パっとついてパっと消えるし、やめた。
何動かしたら面白いかなー。

おわり。

2014.06.02/Development

一部で流行の兆しのあるgulp.jsを試した。
gruntのjsonぽい感じでなくて手続き型で書けるらしい。つまり普通にプログラムで書くと。メソッドチェーンでつなげてく。みたい。

HelloWorldな目標設定として
*.coffeeを更新したらcoffeelintしてcoffeeしてuglifyしてjsディレクトリに書き出してlivereloadしてみる。
とはいえこの程度だとCodekit使うけど。(CodeKitでcoffeelintはできないけど)

初回セットアップ

$ sudo npm install -g gulp

プロジェクト毎セットアップ

$ npm init
$ npm install --save-dev gulp
$ npm install --save-dev gulp-coffeelint gulp-coffee gulp-uglify gulp-connect
$ touch gulpfile.coffee

gulpfile.coffee書く

gulp=require 'gulp'
coffee=require 'gulp-coffee'
coffeelint=require 'gulp-coffeelint'
uglify=require 'gulp-uglify'
connect=require 'gulp-connect'

gulp.task 'coffee',->
    gulp.src 'src/coffee/**/*.coffee'
        .pipe do coffeelint
        .pipe do coffeelint.reporter
        .pipe do coffee
        .pipe do uglify
        .pipe gulp.dest 'src/js/'
        .pipe do connect.reload
    return

gulp.task "connect", ->
    connect.server
        root: "src"
        livereload: true
    return

gulp.task "watch", ->
    gulp.watch ["src/content/coffee/**/*.coffee"], ['coffee']
    return

gulp.task "default", ["connect","watch"]

gulpでwatch開始

$ gulp

あとはgulp-connectがデフォルトポート8080だからlocalhost:8080をブラウザで開いてChromeExtensionのLiveReloadをオンにする(勝手になる?)。
タスクの流れの書き方(Streamて言うとか)が書きやすくて良い気がする。

ただまだこれだとcoffeelintでエラーの時でも後のタスクが実行されちゃうから、そのあたりもっと正しい書き方があるように思う。

2014.05.04/Development, Graphic, Lab

スクリーンショット 2014-05-04 03.47.33

Snap.svgてのを見かけて試してみた。
Raphaelにどうも似てるなと思ったらそもそも同じ人が作ってるらしい。
pathメソッドのRが、ASでは自前計算してたスムーズな連続カーブを描いてくれるからうれしい。
あと色系のメソッド便利。

View

>

Next page