KiCadでArduinoシールドを作る ~テンプレート機能の紹介~

この記事はKiCad Advent Calendar 2015の23日目です。 22日めはnora28alfaさんのPCB treeの設計でした。 KiCad4系にはテンプレートからプロジェクトを生成する機能がサポートされています。 Arduinoシールドのテンプレートが同梱されており、これを使えば快…

KiCadでシングルボードコンピュータ作っている話

この記事はKiCad Advent Calendar 2015 15日目です。 14日目はtunguska112さんのKiCadのPython scripting機能を使ってみるでした。 開発途中もいいところなんですが書きます。完成してから書けって?間に合わなかったんだよ。 現在GC3というシングルボードPC…

OrCADをインストールしているとHOME環境変数が使われてしまうのでMSYS/Cygwinで困る

たぶん本ブログ最高にマニアックなネタです。 OrCADはインストール時にC:\SPB_Dataというフォルダを環境変数HOMEに設定します。 そのためHOME変数でホームディレクトリを識別しているMSYSとかCygwinでは非常に困ります。 MSYS/CygwinをインストールしたままO…

表面実装デバイスのハンダづけのために実体顕微鏡を買ってみた

ハンダ付けのため実体顕微鏡を買ってみました モノタロウのST-30R 実体顕微鏡 ST-30R-P出版社/メーカー: モノタロウメディア: 購入: 1人 クリック: 4回この商品を含むブログを見る 外観からしてVixenのOEMだろうと思っていたのですがどうも中国製っぽいです…

KiCadプロジェクトのgitignoreのテンプレート

KiCadはほぼすべてのファイルをテキストファイルで表現するため、基本的にはgitと相性がいい。 しかし結構な量のバックアップファイルを生成するうえに同一ディレクトリに配置するという妙な設計になっているため、 バックアップやログをコミットに含めたく…

自作タブレットPC計画をさらにアップデート GC3-Update2

つい最近アップデートしたばかりのGC3をさらにアップデート。 一つ前のアップデートは結局発注せず…まあこういうこともあるさ。 アップデートの詳細はこんな感じ。 水晶振動子を変更。大きすぎて邪魔だった水晶をようやくちゃんとした小さなものに変更。 GPI…

Webブラウザから操作するFPVロボットを作ってみる(1)

Webブラウザから操作可能なロボットを作ります。 ただ操作するだけではなくwebカメラを搭載し、その画像をリアルタイムに伝送してくれるロボットを作ってみることにします。 FPVとはFirst Person Viewつまり男の浪漫コックピット視点のこと 構成は以下の通り…

自作タブレットPC計画アップデートの詳細

GC3をアップデート。前回発注した基板はカーネルどころかブートローダにすら辿り着けなかったので次のプロトタイプを作ることにしました。開発はKiCadで行っています。 以下、詳細。 変更点 ピンヘッダだったuSDをソケットに変更。ソケットはアキバでもネッ…

Arduinoでリフロー炉を作る(5) - ひとまず完成 -

Arduinoでリフロー炉を作る計画ですがひとまず完成。 ようやく自作タブレット計画の基板をはんだづけできる(笑 ただしブレッドボード上にあるような感じなのでそのうちにちゃんと基板を引いてみたいと思います。 回路図をまとめたものがこちら えっこれだけ…

Arduinoでリフロー炉を作る(4) - PIDライブラリ とチューニング-

PIDライブラリ リフロー炉は普通PID制御を行います。 Arduino用PIDライブラリが公開されていたので今回はこれを利用させてもらうことにしました。 Arduino Playground - PIDLibrary このライブラリに添付されているExamples/RelayOutput.inoを改造したものを…

Arduinoでリフロー炉を作る(3) - 実験 -

熱電対のプローブを断線させてしまったようなので秋月で新しいものを買ってきました。400円なりー。 オーブン本体に手を入れる前に少し実験。 実験環境はこんな感じ。オーブンにどの程度の加温能力があるかを調べます。 実験の結果はこうなりました。横軸は…

Arduinoでリフロー炉を作る(2) - 部品の選定 -

昨日と今日でリフロー炉の部品を揃えました。 揃えたものがこれ オーブントースター オーブントースターはKoizumi製のKOS-1012/Wというものです。 全く何も考えずに安かったものを買っただけなのですが興味深いことにこのオーブンはヒーターとタイマーが独立…

Arduinoでリフロー炉を作る(1)

SMD部品の半田付けのためにリフロー炉を作ることにしました。 アメリカやヨーロッパではトースターを改造するのがポピュラーなようで改造キットまで普通に売っています。 日本だとホットプレートを利用したリフローも人気なようです。 実は私も当初ホットプ…

自作タブレットPC計画実に久々のアップデート

自作タブレットPC計画ですが実は部品を変更しました。それもコアとなるSoCを変えてしまいました。TI Sitara AM335xからAllWinner A13に変更です。当然ピンアサインどころかパッケージ自体が違うので配線もやり直し、基板の名前もGC2からGC3に変えました。 ■…

Apache CordovaでSwiftを使う - Cordova.swift始めました -

突然ですがCordova.swift始めました. Apache CordovaでSwiftを活用しようというプロジェクトです. Cordovaとは? Cordovaとはwebの技術(HTML, CSS, JavaScript)でアプリを作ることができるフレームワークです. この解説が一番わかりやすいかな 第1回 Phon…

Google Polymerで独自タグを使ってみた

近く各ブラウザで実装される予定のWeb Components. これはHTMLで楽にユーザインターフェイスを記述できる仕組み. HTMLのタグをコンポーネント化することで再利用性,メンテナンス性,開発効率を高める. 例えばヘッダーを作るとき今までだと <div id="header"> <ul> <li><a href="#"></a></li> .... みた</ul></div>…

アルゴリズムチャレンジ via Python - Array reverse編 -

配列を逆順にするコード array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] for i in range(0, len(array) / 2): array[i], array[len(array) - i - 1] = array[len(array) - i - 1], array[i] print(array) 配列の入れ替えの場合,配列の頭と末尾を処理するので処理…

Dockerを試してみた(1) - インストール編 -

Dockerとは? Dockerとはコンテナ型仮想化システム 特徴 ハイパーバイザを挟まない,超軽量 Immutable Infrastructure(状態を変えられない) なにか変更があるたびに新しいコンテナを立ち上げ,不要になった古いコンテナは破棄する. Linuxの機能を使ってい…

Swift日本語化プロジェクトがストップしているのを見てAppleに嘆願メールを送った話

Swift資料日本語化プロジェクトがストップしているのを見ていてもたってもいられなくてApple Developer Networkに嘆願メールを送ってしまった. このプロジェクトは非常に有益なのでどうか彼らに翻訳許可を与えて欲しいみたいなメール. メールの全文はこち…

KiCadで自作タブレットPCの設計にチャレンジして感じた4つのこと

タイトルの通りです. KiCadを使って自作タブレットPCの設計にチャレンジしています. https://github.com/masahirosuzuka/GameChanger 設計はほぼ完了したので感じたこと,思ったことを共有したいと思います. 今年のGugenはいただきかな(笑) (1)KiCadはオ…

アルゴリズムチャレンジ via Python - バブルソート編 -

最も原始的なソート 内側のfor文 j番の数字と次の数字を比較し,j番の数字の方が大きければ入れ替える.これが泡が昇る様子に見える. 外側のfor文 全ての数字を比較する. #!/bin/env python list = [8,7,6,5,4,3,2] print list for i in xrange(0, len(lis…

User Interface Markup Languageの提案 -HTMLを拡張してUI構築に適したマークアップ言語を作ろうぜ-

HTML + CSS + JavaScriptでUIの構築をするのはもはや一般的である.FirefoxOS,Windows8(のモダンUI),Ubuntu TouchなどHTML + CSS + JavaScriptをデフォルトのUIツールキットとして用いるOSは多い.ネイティブのUIを持つのはAndroidとiOSくらいなので逆に少…

railsにおけるデータベース間のリレーション

railsでデータベースのリレーションはMODEL.rbファイルに記述する. 1対1の場合所有しているモデルにhas_one,所属しているモデルにbelongs_toを設定する.設定するときは最初の一文字を小文字にする. リレーションの設定が完了したらコントローラ内でデー…

Settingleton (Setting + Singleton)

あまりデザインパターンにこだわるほうではないけど一つ多用しているパターンがある. それはシングルトンパターン. どう使うかというと設定値を保存しておくクラスをシングルトンにしておき,アプリの起動時にsqliteとかからロード,終了時に保存するとい…

Socialフレームワーク

SocialフレームワークとはiOSにビルドインされたFacebookとTwitter連携機能. jsonをやり取りするので非同期でないと処理がハングアップする. if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) { SLComposeViewController …

無線LAN経由でadbを使う

$adb tcpip 5555 $adb connect 192.168.XY.Z

Railsの*_urlと*_pathの違い

_pathは相対パスを _urlは絶対パスを返す 基本的には同じものと考えて問題ない

IntelliJ IDEAでPhoneGapアプリを開発するためのプラグインを作りました.

IntelliJ IDEAでPhoneGapアプリを開発するためのプラグインを作りました. これによりIntelliJの強力なコード補完やLiveEditをPhoneGapアプリ開発に利用出来るようになります. 開発はGithubで.

Railsでredirect_toでアクションを呼び出す

redirect_toでアクションを呼び出すことが出来る. 現在のコントローラのアクションを引数つきで呼び出す.引数は省略可能 redirect_to :action => :show, :id => 1 別のコントローラのアクションを呼び出す. redirct_to :controller => "users", :action =>…

UITableViewの使い方

ViewControllerをUITableViewDelegateとUITableViewDataSourceに準拠させておく viewDidLoad内でUITableViewのDelegateとDataSourceをselfに設定 以下のメソッドを実装 didSelectRowAtIndexはセルの選択時に呼び出される.segueを呼び出すなどの処理を行う.…

UIActionSheet

UIActionSheetを使うには, UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"Upload" delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:nil otherButtonTitles:@"DropBox", @"Evernote", nil]; [actionSheet showIn…

IntelliJ IDEAでInterfaceメソッドを一括実装する方法

JavaのclassでInterfaceを実装するとき,Interfaceのメソッドを一括で実装したい場合が多い. IntelliJ IDEAなら簡単に可能.eclipseでも可能かもしれないけど. Macの場合Command + i Windowsの場合Ctrl + i

Objective-Cで画面キャプチャ

UIGraphicsBeginImageContext(self.view.bounds.size); [self.view.layer renderInContext:UIGraphicsGetCurrentContext()]; UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); QuartzCore/QuartzCore.hのインポ…

Objective-Cで別スレッドで処理

バックグラウンドスレッドで処理を行いたい場合は [self performSelectorInBackground:@selector(method) withObject:nil]; を用いる.withObjectにはメソッドの引数を指定する. メインスレッド(画面の描画を行っているスレッド)上での遅延実行は [self per…

webアプリにACEエディタを埋め込む方法

ブラウザ上で動作するエディタにACEエディタがあります. これはCloud9IDEの一部でJavaScriptで書かれたエディタです. 準備としてGithubからACEのJavaScripファイルをダウンロードしてください. https://github.com/ajaxorg/ace-builds src-min-noconflict…

自作タブレットPC計画ここまで進んでいます

自作タブレットPC計画.正確には自作タブレットPCキット計画ですが現在ここまで進んでいます. 投稿日があれですが別にエイプリルフールじゃないです. 真ん中に見えるのがAM3359,Cortex-A8コアを搭載したMPUです,その隣がDDR3メモリ,400MHz駆動(データ…

Objective-Cで画像のリサイズ

画像トリミングについて imagePickerControllerで取得した画像をリサイズしてから使う方が何かと便利かも. -(void)imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary*)info ピッカーで画像選択後,info…

PhoneGap3のインストールと実行

PhoneGapを試してみたので覚え書き. http://phonegap.com/install/ PhoneGapに必要なもの. npm(node.js)環境 Ant Android SDK Api 19以上. Node Nodeはnvmが使いやすくていいかんじ インストール方法は公式のREADMEをみればわかる.下記コマンドは必ず全…

segueで条件分岐する方法

segueをボタンなどではなくViewから伸ばす. segueにidentifierを設定する.ここではtoChoosePictureという名前をつけた. [self performSegueWithIdentifier:@"toChoosePicture"sender:self]; を使い,遷移を実行する.データの受け渡しは - (void)prepareF…

プログラミング言語別プログラマーの呼び方

一種のジョークなんだけどプログラミング言語にはその言語を使う人の呼び名がある. これが結構苦笑いを誘発する.こんな言語もあってそれの信望者はこんな呼び方をされているよ.なんてのがあったらぜひコメントを. 言語 C C Programmer C++ C++ Programme…

Markdown

よく使うMDを.実際のところこれくらいしか使わない人も多いんじゃないかな? 見出し #h1見出し ##h2見出し ###h3見出し ####h4見出し 強調 *強調したい文字列* **強い強調をしたい文字列** リスト * 順番なし * インデント順番なし 1. 順番あり 1. インデン…

SiriにAndroidについてきいてみた.

SiriはAndroidのことを知らないようです. どういうことなの…

PythonでHTTPリクエスト - urllib編 -

この記事で紹介した方法よりこっちの方がやりやすいかも?って方法を見つけたので urllibの公式ドキュメント 単にページのHTMLをダウンロードしたい場合urllibを使った方が簡単そう.手順としては 1. urlを文字列で定義 2. urllib.urlopen関数でurlを開く. 3…

AVFoundationのセットアップ

AVFoundationを使う機会があり,そのなかでも特にセットアップがわかりにくかったのでメモに残しておく. 以下をコピペすればOKなようにしてある. - (void)setupAVCapture { NSError *error = nil; self.session = [[AVCaptureSession alloc] init]; if ([[…

PythonでHTTPリクエスト

PythonでHTTPリクエストをする方法は幾つもある.ありすぎて困った. しかし一般的にはhttplibを使うようだ. 単純にGETしたいだけなら HTTPConnection関数でコネクションを作成し,request関数で実行する.getresponse関数でレスポンスを取得. responseの…

アルゴリズムチャレンジ via Python (2) - Queue編 -

前回はStack編だったので今回はQueueを書いてみました. Queueは基本的にはStackと大差ないのですがStackが後入れ先だしなのに対し先入れ先出しです.待ち行列ともいいますね. 今回もclassを使います. class要件はこんな感じでしょうか? classは内部に配…

アルゴリズムチャレンジ via Python (1) - Stack編 -

アルゴリズムの勉強のために代表的なものを書いてみました.言語はPython. アルゴリズムの勉強 今回はお題には無いのですがStackを書いてみました. 実装方法は幾つもありそうですが今回はクラスを使います. Stack classの要件はこんな感じでしょうか? ク…

OneNoteとは?

Microsoftが突然OneNoteを無償化しました. Microsoftの公式OneNoteページ これまで一万円近かったアプリが無償化と聞いて驚いた人も多いかと思いますが肝心のOneNoteってなにさ?ってことを知っている人は余りいないのでは?私もぶっちゃけ名前と概要くらい…

Ubuntu13.10でwineが起動しなくなった

コマンドラインからwineにインストールしたwindowsアプリケーションを起動する方法

これ知ってる?中二病なオームの法則の覚え方

めっちゃ中二病なオームの法則の覚え方