Ichigojamのインターフェース基盤を作りました。
こちらのIchigoJamは、楽しくIn/Outの制御ができるとっても素敵な、ワンボード。
74HC595汎用ICを使って、OUT4,OUT5,OUT6からの信号を受けて、7SEGのLEDを制御します。またシフトオーバーフローを利用して別の74HC595につないで ラッチを拡張する端子も付けました。
外部の接続は、USBシリアルの基板を直接させるようにしたコネクタに、TX RX +5 GNDを IchigoJamの基板にケーブルで接続しています。 こうすれば、すっきりと実験ができます。
自動起動用に BTNをスイッチでGNDとつなげるようにしていて、パソコンやキーボードを接続しないでも単独で動作できるようにしています。
基盤が同じ大きさなので、スペーサーで2段組みをしています。
In1~In7までの入力ピンと プルアップしたボタンをつないで、早押しゲームの審判機器を作成しました。
IchigoJam ファームアップデートしてみました。
Ichigojamのファームアップデートをやってみました。
接続の仕方や必要なファイル、手順は、IchigoJamのファームを書き換える - コンピュータを楽しもう!に書いていただいている方法で分かりやすくできました。ありがとうございます。
今回手元に、USBシリアル接続のグッズがあったので、簡単でした。
Ichigojamの電源を入れる前に、下記の通りジャンパー線で接続し、電源をいれたら RESET --- GND を外すという手順です。
USBシリアル IchigoJam TxD ----- RxD RxD ----- TxD GND ----- GND (CN5 5番) +5V ----- +5V (CN5 1番) ISP ----- GND RESET --- GND
ファームデータは、
ichigojam.net
こちらの最新版 IchigoJam ver 1.2.1 をダウンロードして、解凍しておきました。
書き込み用のツールもダウンロードして起動。 画面の項目は 下記のようにしました。
最初 エラーになってしまい 再確認したところ、 Eraseのチェックボックスを チェックし忘れていました。
対象のHEXが どのファイルを選べばよかったのかわからず、悩みましたが、
.hex ファイル名 ichigojam-xtai.hex
言語 日本語・英語
キーボード 日本語 JIS
外部クリスタル 自動判別
出力 (+シリアル) ビデオ信号
というので良いとのことなので、それを選択しました。
完了まで全体で10分ぐらいでした。
74HC595でラッチの実験
8本のLEDを基盤にはんだ付けして スイッチの実験をしています。
74hc595は 3つの信号から 簡単にビットの制御を通して 個別にLEDをつけたり消したりできます。3つの信号はichigojamから取り出し入力へ、出力をLEDに8本分へ接続してみました。
Twitterへの画像投稿プログラム(python)
RaspberryPiで自動投稿をしてみたくなり、カメラ画像などができないかなあと考えています。
まずは Twitterで投稿するプログラムを改良してみました。
CK, CS, AT, AS には Twitterから取得した各種のコードIDを記入してください。
#!/usr/bin/env python # coding: utf-8 import json from requests_oauthlib import OAuth1Session CK = '' # Consumer Key CS = '' # Consumer Secret AT = '' # Access Token AS = '' # Accesss Token Secert url_media = "https://upload.twitter.com/1.1/media/upload.json" url_text = "https://api.twitter.com/1.1/statuses/update.json" # OAuth認証 セッションを開始 twitter = OAuth1Session(CK, CS, AT, AS) # 画像投稿 files = {"media" : open('image.jpg', 'rb')} req_media = twitter.post(url_media, files = files) # レスポンスを確認 if req_media.status_code != 200: print ("画像アップデート失敗: %s", req_media.text) exit() # Media ID を取得 media_id = json.loads(req_media.text)['media_id'] print ("Media ID: %d" % media_id) # Media ID を付加してテキストを投稿 params = {'status': '画像投稿テスト', "media_ids": [media_id]} req_media = twitter.post(url_text, params = params) # 再びレスポンスを確認 if req_media.status_code != 200: print ("テキストアップデート失敗: %s", req_text.text) exit() print ("OK")
メモ引用 Twitterタイムラインを監視する
http://nwpct1.hatenablog.com/entry/2013/10/17/233339
タイムラインを監視する
これについては調べると↓の記事がとても参考になりました。
?tweepyがUser Streamsに対応していたこの記事に載っているタイムラインを監視するpythonのプログラムがとても綺麗に書かれていたので,とても読みやすかったです。タイムラインの取得はこのページのプログラムで解決しました。本当に感謝です。 上記のページに乗っていたプログラム↓を実行させてもらいます。
#!/usr/bin/env python #-*- coding:utf-8 -*- from tweepy.streaming import StreamListener, Stream from tweepy.auth import OAuthHandler from tweepy.api import API from datetime import timedelta def get_oauth(): # 以下4つのキー等は適宜取得して置き換えてください。 consumer_key = 'XXXXXXXXXXXXXXXXXXXXXX' consumer_secret = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' access_key = 'xxxxxxx-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' access_secret = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' auth = OAuthHandler(consumer_key, consumer_secret) auth.set_access_token(access_key, access_secret) return auth class AbstractedlyListener(StreamListener): """ Let's stare abstractedly at the User Streams ! """ def on_status(self, status): # Ubuntuの時は気づかなかったんだけど、Windowsで動作確認してたら # created_atはUTC(世界標準時)で返ってくるので日本時間にするために9時間プラスする。 status.created_at += timedelta(hours=9) print(u"{text}".format(text=status.text)) print(u"{name}({screen}) {created} via {src}\n".format( name=status.author.name, screen=status.author.screen_name, created=status.created_at, src=status.source)) if __name__ == '__main__': auth = get_oauth() stream = Stream(auth, AbstractedlyListener(), secure=True) stream.userstream()
開設
ハードウェアは過去の先人達の回路図をみて適当にはんだごてで部品を万能基板につけるぐらいで、スイッチで何かを動作させる程度の工作を楽しんでいます。 ソフトウェアは ちょっとした実用プログラムを手作りして、こちらも楽しんでいます。