{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"オリジナルの作成:2015/11/23"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 15-8pinoを使ってみる\n",
"## 8pino(エイトピノ) \n",
"山手線ガジェットメーカーズで紹介されていた8pinoを遅ればせながら、 試してみました。当初、8pinoの創意工夫に気づかず、単なる小さなArduino と思っていましたが、 \n",
"[「8pino」ではじめるミニマム電子工作 ](https://www.kohgakusha.co.jp/books/detail/978-4-7775-1915-6)\n",
"(以下ミニマム本と書きます)で8pinoの開発環境や少ないピンで作品を作る著者のパワーに感動しました。\n",
"\n",
""
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## ミニマム本のお復習い\n",
"8pinoの情報は、8pinoのサイトで公開されています。\n",
"\n",
"- http://8pino.cc/\n",
"\n",
"日本語のマニュアルも用意されています。\n",
"\n",
"- http://bit.ly/8pino_pdf_jp\n",
"\n",
"Windows 8/8.1の場合、ドライバーのインストール方法が異なるようです。以下のサイトを参照してください。\n",
"\n",
"- http://mashigure.hateblo.jp/entry/2015/02/06/213634\n",
"\n",
"Mac OSXの場合、ドライバーのインストールは不要です。"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Arduino IDEのインストール\n",
"8pino用のArduino IDEは、通常のArduino IDEではなく、Adafruit Trinket用Arduino IDEを使用します。\n",
"\n",
"- http://bit.ly/arduino_trinket\n",
"\n",
"- [Mac Arduino 1.0.5 for Trinket (also for 8pino)](http://adafruit-download.s3.amazonaws.com/Adafruit%20Arduino%201.0.5%20-%20Mac%2011-8-13.zip)\n",
"- [Windows Arduino 1.0.5 for Trinket (also for 8pino)](http://adafruit-download.s3.amazonaws.com/Adafruit%20Arduino%201.05%20-%20Win%2011-11-13%20.zip)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 8pinoを動かしてみる\n",
"8pinoは、USB Microケーブルに直接さして、使います。 接続直後は、白いLEDが小刻みに点滅します。これがプログラム書き込み可能なタイミングを知らせています。 その後、8pinoに予め書き込まれているLEDチカチカが動き出します。\n",
"\n",
""
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### ブレッドボードに差す\n",
"次に8pinoをブレッドボードで使えるよう切り目で折り、8ピンソケットにハンダ付け します。\n",
"\n",
""
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### ピン配置\n",
"8pinoのピン配置は、パッケージにも書いてありますが、以下の表にまとめてみます。 ピン番号は、USBに差す突起の左上(以下の画像の右下#0)を1番とします。\n",
"\n",
" | ピン番号\t | Arduinoの番号\t | 機能 | \n",
" |---|---|---|\n",
" | 1\t | 0\t | PWM0, MOSI, SDA | \n",
" | 2\t | 1\t | PWM1, MISO, LED | \n",
" | 3\t | 2\t | A1, SCK, SCL | \n",
" | 4\t | -\t | VCC 3.3V/0.5A | \n",
" | 5\t | -\t | Reset | \n",
" | 6\t | 3\t | USB, A3 | \n",
" | 7\t | 4\t | PWM4, USB, A2 | \n",
" | 8\t | -\t | GND | \n",
"\n",
""
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### スケッチを書いてみよう\n",
"最初のスケッチは、LEDチカチカです。以下の手順でサンプルのBlinkを修正してください。\n",
"\n",
"- 8pino用Arduino IDEを起動\n",
"- ツール→マイコンボード→Adafruit Trinket 8MHzを選択\n",
"\n",
"\n",
"\n",
"- ツール→書込装置→USBtinyISPを選択\n",
"\n",
"\n",
"\n",
"- ファイル→スケッチの例→01Basic→Blinkを選択\n",
"\n",
"8pinoのLEDは、1に接続されていますので、ledの値は1になります。\n",
"\n",
"```C++\n",
"int led = 1;\n",
"```\n",
"\n",
"USBケーブルを8pinoに差して、LEDが小刻みに点滅間にファイル→マイコンに書き込むを選択してください。 書き込みが完了すると白色LEDが1秒間隔で点滅します。\n",
"\n",
""
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### タクトスイッチを使う\n",
"次にタクトスイッチをつないで、押したときにLEDが点灯するようにしてみます。\n",
"\n",
"以下の様に配線します。抵抗は10KΩを使用します。\n",
"\n",
"\n",
"\n",
"スケッチは、以下の様にします。タクトスイッチのデジタル入力は2(3番ピン)を使用します。\n",
"\n",
"```C++\n",
"int led_pin = 1; // GPIO #1 LED on board\n",
"int sw_pin = 2; // GPIO #2 SW\n",
"\n",
"void setup() {\n",
" pinMode(led_pin, OUTPUT);\n",
" pinMode(sw_pin, INPUT);\n",
"}\n",
"\n",
"void loop() {\n",
" if (digitalRead(sw_pin) == HIGH) {\n",
" digitalWrite(led_pin, HIGH);\n",
" delay(250);\n",
" digitalWrite(led_pin, LOW);\n",
" delay(250);\n",
" }\n",
"}\n",
"```\n",
"\n",
"書き込みが完了するとスイッチを押して動作を確かめましょう。\n",
"\n",
""
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 応用事例\n",
"Adafruitのサイトから8x8LEDマトリックスを使ってインベーダーゲームのキャラクタを 表示するスケッチを動かしてみました。\n",
"\n",
"- https://learn.adafruit.com/trinket-slash-gemma-space-invader-pendant/overview\n",
"\n",
"\n",
"\n",
"ミニマム本にならって、万能基板にも実装してみました。 残念ながら8x8LEDマトリックスが点灯すると電圧が低くなって途中で止まってしまいました。 (要チェックです)\n",
"\n",
""
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.13"
}
},
"nbformat": 4,
"nbformat_minor": 0
}