2016-01-01から1年間の記事一覧

支離滅裂2016

恒例の作業用BGMリスト作成。 目覚めよ、ルーマニア人! (ルーマニア国歌 ポップver.) いつか空に届いて (ガンダム0080 / 椎名恵) 赤壁〜大江東去〜 (レッドクリフ / alan) 夢のゆくえ (のび太のドラビアンナイト / 白鳥英美子) ロシア連邦国歌 ポップver. (…

CocoaPodsの導入

CocoaPodsとは? XcodeでのiOS/Macアプリ開発をアシストしてくれるライブラリ管理ツール。 コマンドラインで使用する。 インストール OS X El Capitan以降ではroot権限でもシステム領域へのアクセスが制限されるのでインストール先を指定してインストールす…

PSoCのAPI関数を関数ポインタでエレガントに

PSoCのライブラリはクラスじゃないのがつくづくイラっとするけど、関数ポインタを使ってテーブル化したりクラスもどき構造体を作る手はあるな。 テーブル化 typedef uint16 (*UART_GetByte)(void); UART_GetByte uart_GetByte[] = { UART_1_GetByte, UART_2_…

InetAddressUtils

Androidプログラミングのメモ。 org.apache.http.conn.util.InetAddressUtilsは、API-23以降では使えなくなりました。 IPアドレスがIPv4であるか否かを、下記のようにして判定していた箇所は、 if(InetAddressUtils.isIPv4Address(inetAddress.getHostAddres…

Xcodeでプロジェクトの名前を変更

メモ。 プロジェクトのフォルダを丸ごとコピーして名前を変更。 Xcodeで開く。 Project Navigatorでプロジェクト名を変更。 プロジェクトの[General]の[Bundle Identifier]を変更。 [Manage Schemes]でSchemeを変更。 ソースファイルのフォルダ名を変更。 プ…

Ogaki Mini Maker Faire

12/3(土)〜4(日)に、大垣のソフトピアジャパンで開催されたOgaki Mini Maker Faireに出展してきました。 われわれ奈良キカイケンは、おもちゃをハックしてワイヤレスでスマホなどにつなげるというテーマで、いろいろ作品を展示しました。制御ボードのGPduino…

ESP8266でタイマ割り込み

Arduinoでタイマ割り込みを使おうとすると、CPUアーキテクチャごとにやり方が違って不便に感じる。もっとも、Arduonoでタイマ割り込みなど使おうというのは筋が悪いのかもしれないが。 ESP8266の場合 // ミリ秒をクロック数に換算 (@80MHz) #define MSEC2CLO…

PSoCでI2C読み出し

PSoCでセンサICなどからデータを読み出す場合を考える。 以下では、I2Cブロックを I2C_1 という名前にしたものとする。 (PSoC Creatorめ! なんでC++でクラス化しないの?) まず、読み出し完了まで同期待ちしてもよいなら次のようになる。 // 複数バイト読み…

PSoC Creatorのプロジェクトのバージョン管理

PSoC Creatorのプロジェクトでバージョン管理すべきファイルと除外していいファイルは、以下の通り。(たぶん) バージョン管理すべきファイル ワークスペース名.cywrk プロジェクト名.cydsn/TopDesign/ プロジェクト名.cydsn/プロジェクト名.cyprj プロジェ…

Android Studioでアプリのバージョン情報指定

Moduleのbuild.gradleに記述する。 versionCodeは整数値、versionNameは文字列を設定する。 【例】 apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion "23.0.2" defaultConfig { applicationId "net.lipoyang.gppr…

Androidアプリでゲームパッドのイベントを取る

ミニ四駆ラジコンのプロポアプリを作って痛感したのは、タッチパネルUIだとスティックの感触がないから画面から目を離して操作しづらい、ということです。これはラジコンやロボットのコントローラとしては致命的です。というわけで、ゲームパッドを使えるよ…

ESP8266のSTAモードでUDP通信

昨日はAPモードでのUDP通信を実験した。 しかし、APモードだとネットに接続できなくなるのが不便である。そこでSTAモードも試してみる。ただしSTAモードの場合、IPアドレスはWiFiルータからDHCPで割り振られることが一般的なので、IPアドレスではアクセスし…

ESP8266のAPモードでUDP通信

ESP8266のWiFi機能はAPモード(親機)とSTAモード(子機)、およびAP+STAモードがある。 まずは、APモードでPCとUDP通信してみた。 ESP8266側のスケッチ #include <ESP8266WiFi.h> // WiFi #include <WiFiUDP.h> // UDP // SSIDとパスワード const char *ssid = "esp8266"; const char *pas</wifiudp.h></esp8266wifi.h>…

ESP8266をArduinoとして使う

いまさらだが自分用まとめ ESP8266とは? 安い技適済みWiFiモジュール (のコアとなるチップ) みんなが使ってるのはESP-WROOM-02 (秋月で550円) なぜかみんなESP-WROOM-02のことをESP8266と呼んでる ファームウェアを書き換えられる ATコマンドで制御できるフ…

Maker Faire Tokyo 2016

8/6〜8/7に開催されたMaker Faire Tokyo 2016に、京都電創庵のメンバーとして出展してきました。出展者側なので満足に見学する時間がありませんでしたが、ロボット関係でいくつかご紹介。 やっぱりみんなタチコマ大好きですね。karakuri productsさんの1/2タ…

Windows10のシステムフォントの変更

Windows10のシステムフォントは従来のメイリオに代わって游ゴシックになりました。游ゴシックは悪いフォントではありませんが、どちらかというと「本文組で使えるゴシック体」です。小ぶりでフトコロの小さい書体なので、OSのシステムフォントにはどうかなと…

BLE NanoのSerialクラスのバグ回避

BLE Nanoをmbedで使う場合、シリアルポート(TXD=D1, RXD=D0)を使うとD2とD3のポートが機能しなくなるという不具合があります。たとえば、D3にLEDをとりつけて下記のプログラムを実行するとLEDが点滅するはずですが、実際には点滅してくれません。 #include "…

iOSアプリ公開手順メモ

Androidアプリに比べて手続きが面倒なので手順をメモ。 前提 アプリは開発済み Apple ID は持ってる(私用とは別の開発用IDが吉?) 登録処理には Safari を使うこと (Chromeだと正常動作しない) 概要 Apple Developer Programに登録 (ショバ代を払う) Certifi…

スクリーンショットの撮り方

ふだん使わないMacやiOSのことはすぐに忘れてしまうので、いざというときにイラッとする。Windows 画面全体:PrtSc (ただしキーボードによってPrtScがFn+何かだったり) ウィンドウ:Alt+PrtSc クリップボードに画像がコピーされるのでペイントなどに貼りつけ…

Macで隠しファイルを表示する

ターミナル(Finder>アプリケーション>ユーティリティ)で、下記を実行 defaults write com.apple.finder AppleShowAllFiles TRUE非表示に戻すには、 defaults write com.apple.finder AppleShowAllFiles FALSE

パワポにソースコードを貼り付ける

以下のいずれかの方法で、ソースをお好みにハイライト表示させる。 Eclipse や VisualStudioでソースを開く Gists にソースコードをコピペし、ファイルの拡張子で言語を指定 パワポに「元の書式を保持」でコピペする。

歩くミニ四駆をWebからコントロール

Webブラウザからインターネット経由で歩くミニ四駆をコントロールできるようにしてみました。 Web系・クラウド系はまったくの未経験なので、お手軽に使えるともっぱらの噂のMilkcocoaを使うことにしました。GPduinoにはBLEしか通信機能がないので、Android端…

NT京都2016

NT京都2016に出展しました 2016年3月20日に京都西院の春日幼稚園・春日神社境内で開催されたNT京都2016に出展してきました。 奈良キカイケンのブース われわれ奈良キカイケンは、スマホでコントロールできるロボットのおもちゃやミニ四駆ラジコンを展示しま…

Androidアプリ開発メモ

プロジェクトの作成 Blank Activity アクションバーにメニューが付いてる。古臭い。 Empty Activity 空っぽのアクティビティ。こっちを使う。 ボタン Activity を implements OnClickListener にする onCreate()で、Button button1 = (Button)findViewById(R…

Google PlayへのAndroidアプリのリリース

手順メモ。 事前準備 Google Play Developer への登録する。25ドルかかる。 Googleアカウントの作成 (まあ、たいてい既に持ってることと思う。) Google Play Developerアカウントの作成 apkパッケージ作成 Android Studio のメニューから [ビルド] > [Genera…

CLIラッパの作り方

ネイティブコードのHogeCクラスを含むライブラリHogeC.libを、C#で利用するためのCLIラッパライブラリHogeSharp.dllの作り方をメモします。 プロジェクトの作成 [ファイル]>[新しいプロジェクト]>[テンプレート]>[Visual C++]>[CLR]>[クラスライブラリ]で新…

GPduino Rev3

NT京都で頒布するGPduino Rev3です。といっても、諸事情により今回頒布できるのは6枚だけです。 回路図 CADデータ(Eagle) 部品表 プリセットファーム Android版プロポアプリ Windows版サーボ調整アプリ 通信仕様

GPduino Rev3 コントローラ通信仕様

Rev2からの変更点 Rev2の通信仕様との相違点は、 サーボ制御コマンドの変更(サーボのチャンネル数が1チャンネルから3チャンネルに増えたため) サーボ調整コマンドの変更(〃) サーボ調整コマンドの変更(EEPROM書き換えを最小限にするため、調整と保存を…

相補フィルタ

6軸センサ(ジャイロ3軸+加速度3軸)で姿勢を推定する場合、ジャイロのみでも加速度のみでも姿勢角の推定はできますが、それぞれ一長一短があります。 ジャイロによる推定 角速度の積分で姿勢角を推定する。 長所:自身の並進運動の影響を受けない。 短所:積…