アトム-サイト
[ アトム-サイト ] - 管理人さんのページです。
feed-icon RSS2.0   feed-icon Atom
綿菓子
管理人さんのブログ 2009-08-19 15:41:30
綿菓子

ホームセンターで無料配布されていた工作本に、簡単な『綿菓子機』の作り方が載っていたので真似てみました。
アルミ缶の中心がブレない様に棒で止め、モーターに直結ですね(傘の骨がいいって書いてありましたが、自分は真鍮の棒でやりました)。
アルミ缶の下から4cmくらいまで、いっぱい画鋲で穴を空けておきます。

コレを下から熱しながら、ザラメを入れて回すと綿菓子が出来るらしいです。
結局、成功してないんですけどね!
…というのも、家にザラメなくって(普通の砂糖ではダメっぽい)。
あと、熱するのを蝋燭でやったんですが、火が弱過ぎです(缶の回転の風ですぐ消えてしまいます)。
さらに、棒とモーターの接点がすぐ外れたり(半田ゴテで付けたんですが…)。

なかなかうまくいかないもんです…。

コメント(0)


玩具修理
管理人さんのブログ 2009-08-03 10:19:37
玩具修理

普通に動かしていただけなのに、ラジコン洗車のキャタピラが切れてしまったとの事。
キャタピラない戦車って動かないのね(モーターで動いてる車軸が回るだけ…)。

「部品取り寄せる程でもないか」と思い、自分で修理です。
まずは、輪ゴムを半田ゴテで溶かし(パテ代わり)て くっ付けようとしたが、こげた臭いばかりでうまく引っ付かない。
仕方なく、糸で縫ってみました。
なんか他の部分もすぐに切れやすそうなキャタピラです。
修理完了。
縫うなんて原始的なやり方だけど、キチンと動く様になりました。

コメント(0)


水道管の蛇口
管理人さんのブログ 2009-05-20 08:18:07
水道管の蛇口

お湯と水の蛇口が別々にあるだけだったので、自分で取り換え。

風呂は温度調節付きのにして、シャワーも快適に使えるようにした。
ホームセンターに行くとわかるが、意外と高額。
自分の中のポイントは「シャワーホースが下向き」なのと「安い」事。
ちなみにコイツは7000円くらいだったかな。
追記:取り替えから2年経過。蛇口に水道管の錆びが詰まって水量が弱くなりました。分解掃除してあげて復活!

台所は食洗機用に分配。
電気屋で食洗機を買うと工事代はタダだが部品代は取られるという事で自分でやってしまったが、パーツ数点の合計額が5000円くらいで結局あまり変わらなかったな。

洗濯機はネジ止めをやめて、洗濯機専用蛇口として交換。

やり方は、こういうテープを7~8回巻いて閉めるだけ。
コツは、「お湯」「水」混合の場合は最後の1回転がどこまで回るのかを見極めて決して戻さないという所。
緩めたらテープ巻きなおしからやり直し。

まぁ多少漏れたとしても、たかが少量の水って事で…。

コメント(0)


センサー付ライト
管理人さんのブログ 2009-04-23 08:40:02
センサー付ライト

トイレにセンサーを付けて、自動でライトがつく様にした(スイッチのある白い壁が汚れるので…)。
明るさセンサーもついてるので、夜だけキチンと反応する。

これ、ホームセンターの商品改造(白熱球ソケット用センサーなんてどこにも売ってない)。
コンセントの線を無くした感じのコンセント(オス)部分を作って、「白熱球ソケット→コンセント(メス)」パーツは売っているので、そこに差し込むと完成。

作業中、スイッチ切ったつもりでやってたら実は電流流れてて、家のヒューズ飛ばして驚いたなぁ~(ドライバーが焦げたよ)。

~~~~

3年前、上記の様な白熱灯用の自作センサーを作ったのだが、今ではホームセンターに普通に商品として売ってますね。

コメント(0)


石組み水槽
管理人さんのブログ 2009-02-13 13:40:05
石組み水槽

デカい水槽を買ったので、どうしたら見栄え良くなるのか調べてみた。

どうやら水草水槽というジャンルがあるらしい。
雑誌には『グランプリ』『金賞』『銀賞』…とか、コンテストまでやっていたり…。
石組みや流木を使った綺麗な写真を見て「これだ!」とは思ったが、このデカい水槽で水草をうまく育てる自信は無い(そんな余裕のある生活もしてないので、世話してる時間も無いし…)。

…という事で、『グラスマット(人工芝の草版)』を使ってやる事に決定。
ホームセンターで1枚400円程度で売ってるのを12枚購入。
石は拾い物です。
土台のブロックの上に、それっぽく石を配置。

グラスマット同士をとめるのは『結束バンド』を使います。
ダイソーで、170本入りが100円で買えます(ホームセンターだと、結構なお値段します)。
後日、大きなホームセンターに行ったら、園芸コーナーに緑色のちょうどいい結束バンドが売ってました(100本148円とそこそこお得)。

完成(ここまで2日かかってます)。
いよいよ水入れます(ドキドキッ)。
大成功!
水入れると、風景が屈折したりと、さらに綺麗ですね。
金魚達も広くて幸せそう…。
実はこの直後、何を思ったのか子供が小さい水槽用に買った『五色砂』の底砂をコチラに入れてしまって台無し
拾わせたが拾いきれるはずもなく、砂利なので吸い出せず…。
綺麗だったのは、2時間だけでした。

結局、水抜いて、全てを引っ張り出して、やっと底砂が取り出せる状態。
ハイ、水槽空になりました。
最初っからやり直しです(2日間の作業をパーにされて、さすがにメゲましたよ)。

~~~~

…というわけで、3時間位集中して再組み立てしました。
石の配置で芝を貼り合わせてあるので、元通りの配置にしなければならない。
撮ってあった写真を見ながら、何とか復元(ヤレヤレ…)。
元通りになりました…。

ライティングは青いカラーレフランプ(¥1400)。
2灯式センサーライト(¥2000)の電球の一方をコンセントに変えて、延長コード(工事用ランプみたいなやつ、¥980)で水槽の上に引っ張ってきてます。
人が来るとセンサーに反応してライトアップされるという仕組みです。
写真ではよく分からないですが、それっぽい雰囲気出てますよ。

~~~~

カラーレフランプ。
屋外だからなのか、表面の青いフィルムが剥がれ落ちて普通のランプになってしまいました。
しっかり剥がれてしまえばまだいいんですが、全部は剥がれないのでとてもみっともないですね(古いカラオケ屋の外にある様な野暮ったい感じになってしまってます)。

コメント(0)


段ボールロボ
管理人さんのブログ 2008-12-08 23:01:55
段ボールロボ

ジーさんが当てた景品(ゴルフ3位でデジタルTV!)の空き箱を利用して、子供達が何やら作ってました。

段ボールのロボットらしいですね。
頭・手・足が出る様に、カッターで5箇所に穴を空けてました。
子供って、大きな段ボールが好きだよなぁ(自分もそうだったな)。
裏には、絵が描いてありました。
年末年始の『楽しい空想』と『めでたい風景』?
ウキウキする様な、なかなか面白い絵ですなぁ~。

コメント(0)


コケ取り棒
管理人さんのブログ 2008-10-23 21:05:37
コケ取り棒

デカいガラス水槽用にコケ取り棒を自作。
お風呂洗い用のブラシが折れ、うまい具合にアルミ棒が余っていたので再利用。
先端にホームセンターで買ってきた金属部品(70円)を付け、これまた余ってた三角定規を結束バンドで留めました。
使ってみた感じ、コケ うまく取れますね。
アクリル水槽じゃないので、力いっぱいガリガリできるし…(シリコン部分だけは避けてますが…)。
ただ、深い部分になると、テコの原理も使えないのでうまく力が入らないですね。
もう少し棒が長くてもいいんですが、まぁ再利用で作った物なので良しとします。

ガラス面のコケはこの棒でいいとして、水槽の中に付いた茶ゴケはどうすればいいやら…。
『ミナミヌマエビ』20匹は入れてありますが、全く役立たずです(隠れてしまって姿さえ見せません)。
水作りが完成すれば、茶ゴケは自然と消えるらしいけど、どうなんだろう?

~~~~

茶ゴケが生えたままの状態から変わらない(まだ3週間目なのでこれからかな?)ので『ミナミヌマエビ100匹』を入れてみました。
これで、コケが無くなればいいんですが…。

コメント(0)


ガラスフィルム
管理人さんのブログ 2008-09-29 08:33:33
ガラスフィルム

デカい水槽購入。
屋外で使うと藻が発生したりグリーンウォーターになってしまったり(見た目が悪い)するので、少しでも光量を減らす為『ガラスフィルム』を貼る事にした(フィルムを貼った内側のガラスに付く苔も目立たなくなるはず…)。
貼るのは背面と一方の側面です。
フィルムは、ペットショップにもありますが、車用品店の方が安いですね。
今回、2m x 60cm のを買いました。

背面は面積が広いので、まずは側面から…。

ガラス面を洗って、ゴムへらで綺麗にします。
とにかく、埃を挟まない様に…(フィルムも静電気ですぐ埃が付くので、水を流して洗います)。
中性洗剤を数滴入れた水を、貼るガラス面にスプレー。
そこそこヌメッとしていないと、すぐ貼り付いて微妙な位置決めが出来ません。
後は、頑張ってゴムへらで気泡を抜きます(擦る面を中性洗剤でヌメヌメにしないとフィルムにキズが付いてしまう)。
側面完成。
綺麗に貼れました。
気泡がほんの少しだけ残っちゃったのですが、まぁDIYなのでOKです(水槽の中から見ると、そこだけキラッと反射するので目立っちゃうんですが…)。

次は背面、1200mm x 600mm のデカさ。
うまく貼れるのか?!?

~~~~

デカい面も、うまく貼れました。
中性洗剤の量を少し増やしたら、簡単に気泡が出て側面より苦労しなかったですね。
デカい水槽に魚を移し変えたので、小さい水槽の背面にも余ったガラスフィルムを貼っておきました。
ここまでくると慣れたもので、面積も小さいのでスプレー無し(片付けた後だったので…)手で洗剤広げてやりましたね(それでも問題無しでした)。

コメント(0)


自転車小屋 再び
管理人さんのブログ 2008-06-23 11:37:05
自転車小屋 再び

去年作った小屋が、増築の際のエコキュート置き場にとって変わられて解体させられていた(最初の話では小屋の中に設置するって言ってたのになぁ)。
バラバラになったラティスが放置されてたので、あらためて小屋を作り始めてみた。
今回は小屋というのかな、一辺の壁と屋根です。
壁を組み上げて、屋根の骨組みを作り始めた時点で今日は終了。時間かかりそぉだなぁ(前は転職活動中だったので余裕あったが、働いてると作業時間なかなかとれないからな)。

追記1
今日は子供のサッカーの試合があったので、帰ってきた3時から再開。でも5時には暗くなってしまい作業時間はほんの僅か。
屋根の骨組み半分くらいってとこかな。
先は長いな。

追記2
朝、30分くらいずつかけて、屋根の骨組みを終了させた。
次は波板の屋根だな。

追記3
ポリカーボネートの波板買ってきた。
最近のパターンとしては、昼間に頭の中で構想を練って、夕飯前にホームセンターで足りない材料を買って、朝の30分作業、という感じである。
今朝は買ってきたポリカ波板7枚重ねて穴あけ。
電動ドリルとか持ってないので、右腕がキツい。電動ドリルなんて高い買い物ではないので、何度か買おうと思ったが未だに未購入。「切断」と違って「穴あけ」は何とかなっちゃうもんだからなぁ~。今回も穴はあと6つ。結局買わないままだろぉな。

このポリカ波板、太陽面の裏表があるのだが…。
ふと大工が組み立てた車庫をみると、シールが張ったまま、…で、文字が見える、え?何故?!?
見ると「こちらの面を日光に当てないで」と書いてある。シール貼ってある方が太陽面だと思い込んで、穴あけも波の上にしてるのに…と思い、買ってきたのを確認したら「シール側が太陽面」となってました。メーカーによってシール貼ってある場所は違うのね(穴12コも空けた後だったので、焦った)。

追記4
波板の穴あけ終了。ドリルの歯が甘くなったのかな、手間取った。
…で、いよいよ装着。4波分重ね合わせて、2枚仮止めしてみた。
いい感じだ~!もぉひと踏ん張りで完成だ!

追記5
完成しました。これで広々としたとこに、自転車を置ける様になった。
雨はラティスの隙間から少し入る程度だろぉな(前もそぉだったから…)。まぁ、自転車置くんだったら、問題ないだろう。

Amazonで『ラティス』を検索するとこんな感じ(ココをクリック)。

コメント(0)


玄関網戸
管理人さんのブログ 2008-06-13 07:45:56
玄関網戸

田舎なので、暑くなってくると玄関は開けっ放しである。
夕方になってくると蚊が家に入るので、玄関に網戸を付けようという事になった。
DIYの出番である。

ホームセンターでチラシをもらってきて、取り付け高さを計測(幅は自由度があるのでOK)。
高さ174cm。
チラシの製品に数センチ足りなくて、一番近くのホームセンターには合うサイズのが無かった。

…なので休日、浜松のカインズホームまで行って寸法に合う製品を買ってきました。

・支柱1本 6800円(片方は木枠ではなかったので…)
・クローザよけ部品 2480円
・網戸本体 5980円
合計:15260円

網戸より支柱の方が高いってのが納得いかないなぁ(支柱なんてただの棒なのに…)。
基本的に材料を金ノコ(ハサミ)で切って、組み立てていくだけ…。
説明書通りに組み立てれば、出来ていきます。
パッと見、綺麗に組みあがってます(良く見ると角とか手作りっぽさがあるんですが…)。
縦に立っているのが、6800円もした支柱です(アルミ製だから高いのか?)。

一箇所、切る方向を間違えました(隠れて見えない部分なので、よかったですが…)。
3日間の出勤前の作業で完成。
ドアノブ部分に開閉時に軽く引っかかるですが、網戸の開け閉め時にはドアは開いてるはずなのでOKという事で…(下の写真の状態は無いだろうという事)。
コレで夜、蚊に刺される事もなくなるでしょう。

~~~~

微妙に網戸の縦が長かったので、取り付けてある状態で5mm程短くしました。
網戸自体がぶら下がって下にほんの少しだけ隙間があるのがベスト(切る前は少しだけ下レールに触れていた)。
寸法通りやっていても、取り付け後の微調整ってのは必要なものです。

コメント(0)


御影石
管理人さんのブログ 2008-05-29 08:14:21
御影石

雨が降ると、表の玄関から裏の駐車場までの間に水溜りが出来てしまう。
なんとかしようと、何度かホームセンターへ通って色々物色。

・砂利
  だいたい800円/20kg。
  今も砂利が少し入っているのだが、普通の砂と混じってしまっている。
  下地を作るには範囲的に相当重労働。
  …という事で、却下。

・枕木
  一番小さいサイズでも1500円。
  数十年経つと腐る(らしい?)。
  同じサイズなら御影石は半額。

…で、出た結論が『御影石』。
大きさは飛石っぽくしたかったので、300mm×300mm。
1枚398円でした(自分のDIYは安い事が重要)。
12枚買ってきました!
さすがに12枚ともなると、車が沈みます。

穴を掘って設置。
実際並べてみたが、「直線」「等間隔」で並べる事はできるのだが個々を「水平」にするのは難しい。
時間ある時に、1つずつ傾きを修正しなきゃ…。

~~~~

出社前の1時間くらいで修正してきた。
結局、ほとんどの石の下を掘り直して再設置した感じ。
…でも、やっぱり水平を出すのって難しいな(前作った自転車小屋も微妙に傾いていたし…)。
この辺がプロとの違いなんだろうなぁ。
素人にはこれが限界!微妙な凸凹が残る…。

~~~~

限界と言いつつ、土曜日また微調整してました。
ついでに、倍の大きさの御影石をホームセンターで2個買ってきて、折れ曲がった先の通路に配置。
倍の60cm×30cmの石の方が水平を出しやすく、しかも安い。
値段は1枚650円(30cm×30cmは1枚400円)。
スペースの取り方とかあるので単純比較は出来ないが、デカい方がDIYにはいい事に後になって気付いた。

まぁ、これで完成です。

…で、今日の大雨、作業した所を通ったが、水溜りの中に配置した石が沈んでいた(何の為に頑張ったんだかなぁ~)。

~~~~

あれから何度か雨が降り、置石の意味が無いのを痛感したのでやり直し(水溜りの中に石があっても仕方ない)。
2cmくらい それぞれ浮かせました。
これで次の雨でどうなるかですね。


雨、降りました。
キチンと水溜まりの上になってます。
これでやっと本来の飛び石の役目を果たせれたわけだが、前回の作業でまた個々の石が傾いている…。
気になるので、修正、そのうちやります。

コメント(0)


管理人さんのブログ 2008-03-24 08:33:25
庭

ウチの庭には車が停まっている。
敷いてある砂利が凸凹…。
なんとかしたいなぁ~とデカいホームセンターを物色していたらこんなコーナーがあったので写真に撮っておいた。
こういうのはプロの仕事なんだろうな(凄い綺麗でカッコいい)。
DIYでやろうとすると、変な感じになっちゃいそうだ…。

コメント(0)


インターホン → TVドアホン
管理人さんのブログ 2008-02-29 08:41:22
インターホン → TVドアホン

冬場は部屋のドアが閉まっているので、廊下にあるインターホンのチャイムが聞こえない(何度鳴らしても出てこないので帰った人もいるくらい…)。
「何とかして」とちょっと前に頼まれていた。…で、土日にそこそこ時間が空いたのでDIYしてみた。

廊下のチャイムの音を大きくするだけではツマラナイ(音が大きいインターホンに付け替えるだけなので…)。
世の中物騒になってきたし、押し売り対策もできる(バーちゃんも解雇されて常に家に居る事になるし…)…という事で、TVドアホンに付け替える事にした。

ホームセンターに行ってみると…。
パナソニック製の商品しかなかった(まぁそこは信頼できるメーカーという事でOK!)。
アマゾン(ココをクリック!)だとこの辺りか。
でも、高い!6万?!?子機とかメモリ機能とかいらない。普通に会話できればいいので、一番安い15800円のを購入。
内容物としては「玄関先のスイッチカメラ子機」と「部屋用モニター」。
今までのインターホンをそのまま付け替えればいい…と説明にあったが、室内チャイムは廊下の高い位置。…なので、配線し直しです(既存の配線の配置を変えつつ、部屋への配線新設)。

屋根裏上がりました。
天井って柔らかい板なので、当然体重かければ穴があく。元の配線はその板の向こう…。
天井板には触れない様に狭い空間で寝そべって配線直し完了(赤いレーザー光の上で作業するスパイの様で苦労しました)。

次、電源。
工事資格が必要なんだが、まぁ自分の家なのでいいでしょ(いつも十分過ぎる程安全には気を使ってやってます)。
線をたぐって100V探して分配。

次に下に戻って結線。
できました(…と簡単に書いてはいるが、登ったり降りたりを10回以上は繰り返したな)。
チャンと動いてます。

後は元あった廊下のチャイムを増設用スピーカーとするだけ。
余分な基盤を乗り除いてスピーカーのみにして、屋根裏に配線した線に繋いで完了。
室内モニターと元の廊下のスピーカーの2箇所で「ピンポ~ン」と鳴ります。

玄関のカメラがもうチョイ左向きになって欲しいってのがあるな(中のパーツ削ってやればいいのかな)。今度やってみます。

~~~~

カメラの角度拡大をやってみました。
15度までの調整は普通にできる設計なのだが、やはりそれ以上となると中のいろんな所を削りまくらねばならなかった。
まぁそれでも+10度程度かな?左に必ず映ってた壁が隅に映る様になった程度で限界だったが、実際にモニターに映った映像を見ると十分な範囲であった。
据え替え終了!

コメント(0)


スピーカーのプラスマイナス
管理人さんのブログ 2008-01-07 21:16:55
スピーカーのプラスマイナス

車にリアスピーカーを取り付けているわけだが、見た目ではプラスマイナスが分からない。
銅線の色もどっちかが黒ってわけでもないし困った。
デミオの時はコネクタがピッタリだったので繋げただけだしなぁ。
で、調べてみました。

乾電池繋げてボコっと盛り上がる向きが正解らしい。
やってみました。
確かに上がる方向と下がる方向がある。
これでスピーカーのプラスマイナスの向きは分かった。
次は車側のプラスマイナスを調べてつなげるんだが、ここで朝の作業時間終了。
地道に進めてます。

~~~~

雨降ってたんですが、朝作業しました。
スピーカーを圧着端子で取り付け、昨日夜なべして作ったハーネス(やっぱり言い方合ってた)を繋げて、キースイッチON!

あれれ、電源入らないよ…。
もしかしてアースコード?と思い、鉄枠に接触させたら動きました。
前付いてたカーオーディオは、車側コネクタの黒線をそのまま取り込んでいたから、この黒線がアースだと思ってたけどどうやら違うみたい(オーディオの外カバー自体をアースにしてあるのかな?ま、いいや)。
…で、あらためてスイッチON。

取り付けたリアスピーカー鳴ってるなぁ~と、ついでに4つのスピーカーチェック。
おぃおぃ、左前鳴ってないよ。
またまた外してハーネスをテスターでチェック。
左前スピーカー配線通電してました。

なんだよ、もしかして元々左前は音出てなかったのか?と、車の所有者のバーちゃんに聞くも「知らん」との事(まぁそぉだろぉな…)。

で、今日の朝作業はここでタイムアップ。
次は、左前スピーカーまでの配線チェックから…(予定外の作業だわ)。

コメント(0)


エアコン取付け
管理人さんのブログ 2007-12-17 09:26:22
エアコン取付け

2階へ自分で取り付けました。
フレームを買ってきて、屋根の上へ組み立てて、室外機を載せる。
写真は撮ってないけど室内機の壁への取り付けも。
壁に7cmの穴あけ。当然外に貫通するから、トタン外壁を金鋸で切ったり、管通したり…。
一番の問題はフロンガス。環境に影響のない新型ガスらしいから漏れてもOKって事でエアパージ方式に決定(これが自分でやる決め手になった)。ちゃんと真空抜きしないと室外機が調子悪くなるって意見もあるけど、そもそも真空機械もってないし、まぁこういう物を自分でやる時点で自己責任である。
室外機にたまってるフロンを細い管のバルブ5秒あけでパイプに入れる。バルブを締めたら次は太い方のムシを押してシューという音が無くなりそうなタイミングまでエアを抜く。最後に両方のバルブをあける。…のがエアパージ。
ま、あれやこれやで設置完了。キチンと冷房も効いてくれてよかったよかった。

コメント(0)


電子部品
管理人さんのブログ 2007-12-16 20:33:40
電子部品

浜松行ったついでに『マルツ』という店に寄ってみた。
以前、2足歩行ロボを自作してたころ秋葉原の電子部品屋によく行っていたが、浜松にもこの手の店があるとは驚き。
欲しいパーツが全てあるわけではないだろうが、かなりの品揃えであった。
電子工作はもうやってないので利用する事はないだろうが、近場でのこういう店は無くならないで欲しいものである。

コメント(0)


カーステ設置
管理人さんのブログ 2007-05-26 10:10:02
カーステ設置

今日は休日出勤だが、出勤する前の空き時間でカーステ設置作業終了させてきた。
昨日の問題点、結局左前スピーカー自身が壊れていた(スピーカーなんて、音が鳴らなくなる様な壊れ方しない物だと思ってたけどねぇ~)。
廃車予定のデミオのフロントドア内張り外して持ってきたスピーカーをキューブへ移植。問題なく鳴るのを確認してインパネやら全て元に戻して完了。
カーステと言うか、DVD+CD+ラジオです。
コード類もインパネの内側を通したので、かなりスッキリしてる。

コメント(0)


車 リアスピーカー
管理人さんのブログ 2007-05-23 08:37:26
車 リアスピーカー

朝、時間に余裕がある(早めに行く会社を普通にして)ので、やっておきたい車のリアスピーカー移植作業を始めた。

ドアの内張りを外すわけだが、デミオはネジ2本。はまってるビスを外して全体を上に持ち上げれば簡単に取れます。
以前取り付けたリアスピーカーを外して元に戻せば終了。
両側でも作業時間15分くらいなもの。

次、移植先のキューブ。
こっちはネジ3本でした。2本が分からない…。
肘掛部分を上に思いっきり引っ張るとパカッとネジ2本があらわれます(宝探しみたいな物だな…)。
後、キューブは、ドアノブの枠だけを外さないとダメ。力いっぱいやらないと外れないしうまい具合に力をいれないとダメ。自分は、細い部分が割れてしまいました(まぁDIYなので、そんなのは仕方ない)。
やっとこさ外した所で時間切れ。
まぁ目標のコネクタを見れるとこまで行ったからOKである。

コメント(2)


日産キューブ インパネ
管理人さんのブログ 2007-05-21 20:12:03
日産キューブ インパネ

カーオーディオの載せ代え始めました。
決まった配線同士を合わせて後ははめ込めばいい物なので、こういう作業は毎回自分でやっている。
今回は夏で廃車にする「デミオ」からバーちゃんカー「初代キューブ」への移植。キューブには何だか立派なオーディオが付いているが使わない物には価値は無い(と思っている)ので取っ払って捨ててしまおう。

前面パネルを取っ払ってみた。
デミオだとここから先は引っこ抜けば取れる(カチンと爪が引っかかってるだけ)んだが、枠とネジの関係から推測するとどうやらもう一工夫あるっぽい。
前面のインパネ取り外せばわかりそうなので、ネジを探すと「灰皿の下」と「エアコンパネルの上」の計4つのネジで固定されていた。
少々力入れたら取れました(こういう状況でパキンと何かが折れる事も多いが、今回は無事であった)。
ここまでくれば、ネジ緩めて外すだけ。

とりあえず、デミオのオーディオを外して付け替えたが、結線はまだなので機能せず。オートバックスへ行ってハーネス(…というのかな?アーケードゲーム機はそぉ言ってたけど)のキューブ用コネクタを買ってこなければ…。
それと、リアスピーカ(これもドアの内装を外してどうなってるか確認だ)。

続きは、平日は出来ないので暫く間が空くな(今週末土日も空いてないなぁ、残念)。

コメント(2)


ネジ購入
管理人さんのブログ 2007-05-21 17:40:48
ネジ購入

たくさんネジ等を買ってきた。
ホームセンター行ったのも久々だったなぁ。
これで何が出来るかは、内緒(出来ないかもなぁ)。

追記
出来なかった…。
ホントは違反なんだけど、たまぁ~に自転車2人乗りしたい状況があって足場を付けたかったんだが…。
後輪の軸がクイックレリーズなもんで単純なパーツ取り付けだけでは済まずアレコレやったが片方だけしか付かなかった。
ま、二人乗りはあきらめるか…。

コメント(0)


道具
管理人さんのブログ 2007-05-21 11:28:01
道具

持っている工具はこんな感じ。
電動のは糸鋸があるくらい(しかもあまり使わない)で、ほとんど手作業。
意外とこれくらいで何でも何とかなるものである。

コメント(0)


二足歩行
管理人さんのブログ 2007-03-26 17:45:47

何年か前、趣味で2足歩行への興味がわき、電子工作を少々…。
パーツ探しに秋葉原へよく行ったもんだ。

操作しているのが、サーボモーター4つバージョン。
デジタルICと抵抗・コンデンサやらを組み合わせただけの初号機。
弐号機を倒しているところ

左がCPLDで、右がFPGA。
VHDLを書いてオリジナルチップを作り、PCでのサーボモーター制御とかして楽しんでいた。

…で、プログラムがこれ。
初期の屈伸くらいまではCPLDでやってました。
CPLD版(12個のサーボモータを屈伸する様にしてたはず)
CPLDでは収まらなくなったので、途中からFPGAに切り替え。
FPGA版(PCのRS232Cから信号送っての各サーボモーター制御)
勝手に使っていいです(使用後、ここに色々コメントしてくれるという条件にします)。

弐号機の機体がこれ↓
サーボモーター12個バージョン。


当時作ったVHDLを貼り付けておこう。
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_SIGNED.ALL;

-- Uncomment the following lines to use the declarations that are
-- provided for instantiating Xilinx primitive components.
--library UNISIM;
--use UNISIM.VComponents.all;


entity Robot is


port (
CLK : in std_logic;
RESET : in std_logic;
LEDRedOut : out std_logic;
LEDGreenOut : out std_logic;
RS232CIn : in std_logic;
RS232COut : out std_logic;
--12個のサーボ出力
PWM : out std_logic_vector(11 downto 0) );
--memo:(outの物はセンシビリティリストに追加できない為、signalで別途用意する必要あり)

end Robot;


architecture Behavioral of Robot is


signal TotalCounter : std_logic_vector(24 downto 0) := (others => '0'); --1秒の周期には3byteくらい必要

signal PWMServo00 : std_logic_vector(17 downto 0); -- := "000101011001100110"; --1.5msになったらPWMを0Vにする1.5ms*14.7456MHz = 22118(5666h)
signal PWMServo01 : std_logic_vector(17 downto 0); -- := "000101011001100110"; --1.5msになったらPWMを0Vにする1.5ms*14.7456MHz = 22118(5666h)
signal PWMServo02 : std_logic_vector(17 downto 0); -- := "000101011001100110"; --1.5msになったらPWMを0Vにする1.5ms*14.7456MHz = 22118(5666h)
signal PWMServo03 : std_logic_vector(17 downto 0); -- := "000101011001100110"; --1.5msになったらPWMを0Vにする1.5ms*14.7456MHz = 22118(5666h)
signal PWMServo04 : std_logic_vector(17 downto 0); -- := "000101011001100110"; --1.5msになったらPWMを0Vにする1.5ms*14.7456MHz = 22118(5666h)
signal PWMServo05 : std_logic_vector(17 downto 0); -- := "000101011001100110"; --1.5msになったらPWMを0Vにする1.5ms*14.7456MHz = 22118(5666h)
signal PWMServo06 : std_logic_vector(17 downto 0); -- := "000101011001100110"; --1.5msになったらPWMを0Vにする1.5ms*14.7456MHz = 22118(5666h)
signal PWMServo07 : std_logic_vector(17 downto 0); -- := "000101011001100110"; --1.5msになったらPWMを0Vにする1.5ms*14.7456MHz = 22118(5666h)
signal PWMServo08 : std_logic_vector(17 downto 0); -- := "000101011001100110"; --1.5msになったらPWMを0Vにする1.5ms*14.7456MHz = 22118(5666h)
signal PWMServo09 : std_logic_vector(17 downto 0); -- := "000101011001100110"; --1.5msになったらPWMを0Vにする1.5ms*14.7456MHz = 22118(5666h)
signal PWMServo10 : std_logic_vector(17 downto 0); -- := "000101011001100110"; --1.5msになったらPWMを0Vにする1.5ms*14.7456MHz = 22118(5666h)
signal PWMServo11 : std_logic_vector(17 downto 0); -- := "000101011001100110"; --1.5msになったらPWMを0Vにする1.5ms*14.7456MHz = 22118(5666h)
signal PWMTotalCounterCopy : std_logic_vector(17 downto 0); --符号付き比較の為のコピー(最上位0セット用)
signal PWMServoCalcCopy00 : std_logic_vector(17 downto 0); --計算桁合わせ用
signal PWMServoCalcCopy01 : std_logic_vector(17 downto 0); --計算桁合わせ用
signal PWMServoCalcCopy02 : std_logic_vector(17 downto 0); --計算桁合わせ用
signal PWMServoCalcCopy03 : std_logic_vector(17 downto 0); --計算桁合わせ用
signal PWMServoCalcCopy04 : std_logic_vector(17 downto 0); --計算桁合わせ用
signal PWMServoCalcCopy05 : std_logic_vector(17 downto 0); --計算桁合わせ用
signal PWMServoCalcCopy06 : std_logic_vector(17 downto 0); --計算桁合わせ用
signal PWMServoCalcCopy07 : std_logic_vector(17 downto 0); --計算桁合わせ用
signal PWMServoCalcCopy08 : std_logic_vector(17 downto 0); --計算桁合わせ用
signal PWMServoCalcCopy09 : std_logic_vector(17 downto 0); --計算桁合わせ用
signal PWMServoCalcCopy10 : std_logic_vector(17 downto 0); --計算桁合わせ用
signal PWMServoCalcCopy11 : std_logic_vector(17 downto 0); --計算桁合わせ用

signal LEDCounterCopy0 : std_logic_vector(12 downto 0); --符号付き比較の為のコピー(最上位0セット用)
signal LEDCounterCopy1 : std_logic_vector(12 downto 0); --符号付き比較の為のコピー(最上位0セット用)

signal RS232CReadStartFlag : std_logic := '0';
signal RS232CWriteStartFlag : std_logic := '0';
signal RS232CReadTimingCounter : std_logic_vector(11 downto 0) := (others => '0'); --10bit分(1byte)の転送には11桁(符号で+1bit)くらい必要(14.7456MHz)/(115200bps/10bit)=1280(0x500<0x7ff) )
signal RS232CWriteTimingCounter : std_logic_vector(11 downto 0) := (others => '0'); --10bit分(1byte)の転送には11桁(符号で+1bit)くらい必要(14.7456MHz)/(115200bps/10bit)=1280(0x500<0x7ff) )
signal RS232CReadByteBuffer : std_logic_vector(7 downto 0) := (others => '0');
signal RS232CWriteByteBuffer : std_logic_vector(7 downto 0) := (others => '0');
signal RS232CReadStackByteBuffer00 : std_logic_vector(7 downto 0) := (others => '0'); --読み込んだ値はここにストックする
signal RS232CReadStackByteBuffer01 : std_logic_vector(7 downto 0) := (others => '0'); --読み込んだ値はここにストックする
signal RS232CReadStackByteBuffer02 : std_logic_vector(7 downto 0) := (others => '0'); --読み込んだ値はここにストックする
signal RS232CReadStackByteBuffer03 : std_logic_vector(7 downto 0) := (others => '0'); --読み込んだ値はここにストックする
signal RS232CReadStackByteBuffer04 : std_logic_vector(7 downto 0) := (others => '0'); --読み込んだ値はここにストックする
signal RS232CReadStackByteBuffer05 : std_logic_vector(7 downto 0) := (others => '0'); --読み込んだ値はここにストックする
signal RS232CReadStackByteBuffer06 : std_logic_vector(7 downto 0) := (others => '0'); --読み込んだ値はここにストックする
signal RS232CReadStackByteBuffer07 : std_logic_vector(7 downto 0) := (others => '0'); --読み込んだ値はここにストックする
signal RS232CReadStackByteBuffer08 : std_logic_vector(7 downto 0) := (others => '0'); --読み込んだ値はここにストックする
signal RS232CReadStackByteBuffer09 : std_logic_vector(7 downto 0) := (others => '0'); --読み込んだ値はここにストックする
signal RS232CReadStackByteBuffer10 : std_logic_vector(7 downto 0) := (others => '0'); --読み込んだ値はここにストックする
signal RS232CReadStackByteBuffer11 : std_logic_vector(7 downto 0) := (others => '0'); --読み込んだ値はここにストックする
signal RS232CReadStackByteBuffer12 : std_logic_vector(7 downto 0) := (others => '0'); --読み込んだ値はここにストックする
signal RS232CReadStackByteBuffer13 : std_logic_vector(7 downto 0) := (others => '0'); --読み込んだ値はここにストックする
signal RS232CReadStackByteBuffer14 : std_logic_vector(7 downto 0) := (others => '0'); --読み込んだ値はここにストックする
signal RS232CReadStackByteBuffer15 : std_logic_vector(7 downto 0) := (others => '0'); --読み込んだ値はここにストックする
signal RS232CReadStackByteBuffer16 : std_logic_vector(7 downto 0) := (others => '0'); --読み込んだ値はここにストックする
signal RS232CReadStackByteBuffer17 : std_logic_vector(7 downto 0) := (others => '0'); --読み込んだ値はここにストックする
signal RS232CReadCountNumber : std_logic_vector(7 downto 0) := (others => '0'); --何byte目を読み込んでいるのか
signal RS232CReadCountMax : std_logic_vector(7 downto 0) := (others => '0'); --何byte目まで読み込むのか

--test的
-- signal PWMAddSub : std_logic_vector(17 downto 0);

begin


--電源LEDをON(Lowで点灯)
LEDRedOut <= '0';


--プロセス開始(memo:プロセスは出力したい物毎には作らないと、各プロセスで違う出力を取りえる事がある)


--TestでTotalCounterを細工して屈伸させてやる
-- process(TotalCounter) begin --信号に変化のあった時の必要なセンシビリティリストを(else時も考慮して)キチンと記入する事

--実際には700us-2300usの値(10321.92(0x2851)-33914.99(0x847A))
--1度の値は、((2300us-700us)/180度)*14.7456MHz = 131.072(0x83)
--まず動作角度分の0x2000をTotalCounterから作ってやる

-- PWMAddSub(17 downto 13) <= "00000";
-- for i in 0 to 12 loop
-- if(TotalCounter(23) = '0') then
-- PWMAddSub(i) <= TotalCounter(i + 10);
-- else
-- PWMAddSub(i) <= not TotalCounter(i + 10);
-- end if;
-- end loop;

-- PWMServo00 <= "000101011001100110" + PWMAddSub;
-- PWMServo01 <= "000101011001100110" - PWMAddSub;
-- PWMServo02 <= "000010100001010001" + (PWMAddSub * "010"); --0度に足す("10"だとマイナスなので注意)
-- PWMServo03 <= "000101011001100110" + PWMAddSub;
-- PWMServo04 <= "000101011001100110" - PWMAddSub;
-- PWMServo05 <= "001000010001111010" - (PWMAddSub * "010"); --180度から引く("10"だとマイナスなので注意)

-- end process;


-- --TestでTotalCounterを細工して角度指定を入れてやる(全部同時に動作させる)
-- process(TotalCounter) begin --信号に変化のあった時の必要なセンシビリティリストを(else時も考慮して)キチンと記入する事
-- --実際には700us-2300usの値(10321.92(0x2851)-33914.99(0x847A))
-- --1度の値は、((2300us-700us)/180度)*14.7456MHz = 131.072(0x83)
-- --とりあえず、1.0ms-2.0msの値を入れる(14745.6(0x3999)-29491.2(0x7333))
-- --適当なので、0x4000-0x8000までを入れる事にする
-- PWMServo00(17 downto 14) <= "0001";
-- PWMServo01(17 downto 14) <= "0001";
-- PWMServo02(17 downto 14) <= "0001";
-- PWMServo03(17 downto 14) <= "0001";
-- PWMServo04(17 downto 14) <= "0001";
-- PWMServo05(17 downto 14) <= "0001";
-- PWMServo06(17 downto 14) <= "0001";
-- PWMServo07(17 downto 14) <= "0001";
-- PWMServo08(17 downto 14) <= "0001";
-- PWMServo09(17 downto 14) <= "0001";
-- PWMServo10(17 downto 14) <= "0001";
-- PWMServo11(17 downto 14) <= "0001";
-- for i in 0 to 13 loop
-- if(TotalCounter(22) = '0') then
-- PWMServo00(i) <= TotalCounter(i + 8);
-- PWMServo01(i) <= not TotalCounter(i + 8);
-- PWMServo02(i) <= TotalCounter(i + 8);
-- PWMServo03(i) <= not TotalCounter(i + 8);
-- PWMServo04(i) <= TotalCounter(i + 8);
-- PWMServo05(i) <= not TotalCounter(i + 8);
-- PWMServo06(i) <= TotalCounter(i + 8);
-- PWMServo07(i) <= not TotalCounter(i + 8);
-- PWMServo08(i) <= TotalCounter(i + 8);
-- PWMServo09(i) <= not TotalCounter(i + 8);
-- PWMServo10(i) <= TotalCounter(i + 8);
-- PWMServo11(i) <= not TotalCounter(i + 8);
-- else
-- PWMServo00(i) <= not TotalCounter(i + 8);
-- PWMServo01(i) <= TotalCounter(i + 8);
-- PWMServo02(i) <= not TotalCounter(i + 8);
-- PWMServo03(i) <= TotalCounter(i + 8);
-- PWMServo04(i) <= not TotalCounter(i + 8);
-- PWMServo05(i) <= TotalCounter(i + 8);
-- PWMServo06(i) <= not TotalCounter(i + 8);
-- PWMServo07(i) <= TotalCounter(i + 8);
-- PWMServo08(i) <= not TotalCounter(i + 8);
-- PWMServo09(i) <= TotalCounter(i + 8);
-- PWMServo10(i) <= not TotalCounter(i + 8);
-- PWMServo11(i) <= TotalCounter(i + 8);
-- end if;
-- end loop;
-- end process;


--信号に変化のあった時の必要なセンシビリティリストを(else時も考慮して)キチンと記入する事
process(RESET, CLK) begin

--リセット時初期化
if(RESET='0') then --SWを押した時が0
TotalCounter <= (others => '1');
elsif(CLK'event and CLK='1') then
TotalCounter <= TotalCounter + '1';
end if;

end process;


--信号に変化のあった時の必要なセンシビリティリストを(else時も考慮して)キチンと記入する事
process(TotalCounter, PWMServo00, PWMServo01, PWMServo02, PWMServo03, PWMServo04, PWMServo05, PWMServo06, PWMServo07, PWMServo08, PWMServo09, PWMServo10, PWMServo11) begin

--符号無しで比較させる為
PWMTotalCounterCopy(16 downto 0)<=TotalCounter(16 downto 0);
PWMTotalCounterCopy(17)<='0';

--指定値に達したらPWMを0Vにする(18bit分で 0x40000: 0x40000/14.7456MHz=17.7777ms 約20msの周期として使える)
if(PWMTotalCounterCopy > PWMServo00) then --TotalCounterの18bit分を使う
PWM(0) <= '0';
else
PWM(0) <= '1';
end if;
if(PWMTotalCounterCopy > PWMServo01) then --TotalCounterの18bit分を使う
PWM(1) <= '0';
else
PWM(1) <= '1';
end if;
if(PWMTotalCounterCopy > PWMServo02) then --TotalCounterの18bit分を使う
PWM(2) <= '0';
else
PWM(2) <= '1';
end if;
if(PWMTotalCounterCopy > PWMServo03) then --TotalCounterの18bit分を使う
PWM(3) <= '0';
else
PWM(3) <= '1';
end if;
if(PWMTotalCounterCopy > PWMServo04) then --TotalCounterの18bit分を使う
PWM(4) <= '0';
else
PWM(4) <= '1';
end if;
if(PWMTotalCounterCopy > PWMServo05) then --TotalCounterの18bit分を使う
PWM(5) <= '0';
else
PWM(5) <= '1';
end if;
if(PWMTotalCounterCopy > PWMServo06) then --TotalCounterの18bit分を使う
PWM(6) <= '0';
else
PWM(6) <= '1';
end if;
if(PWMTotalCounterCopy > PWMServo07) then --TotalCounterの18bit分を使う
PWM(7) <= '0';
else
PWM(7) <= '1';
end if;
if(PWMTotalCounterCopy > PWMServo08) then --TotalCounterの18bit分を使う
PWM(8) <= '0';
else
PWM(8) <= '1';
end if;
if(PWMTotalCounterCopy > PWMServo09) then --TotalCounterの18bit分を使う
PWM(9) <= '0';
else
PWM(9) <= '1';
end if;
if(PWMTotalCounterCopy > PWMServo10) then --TotalCounterの18bit分を使う
PWM(10) <= '0';
else
PWM(10) <= '1';
end if;
if(PWMTotalCounterCopy > PWMServo11) then --TotalCounterの18bit分を使う
PWM(11) <= '0';
else
PWM(11) <= '1';
end if;

end process;


process(TotalCounter) begin --信号に変化のあった時の必要なセンシビリティリストを(else時も考慮して)キチンと記入する事

--LEDの処理(パルスによる点滅処理)
--上位と下位の同じビット数を比較して、パルス発生させるか決定する
--符号があるので、上位ビットを0にして比較しなければいけない
LEDCounterCopy0(11 downto 0)<=TotalCounter(23 downto 12);
LEDCounterCopy1(11 downto 0)<=TotalCounter(11 downto 0);
LEDCounterCopy0(12)<='0';
LEDCounterCopy1(12)<='0';
if(TotalCounter(24) = '1') then
if(LEDCounterCopy0 >= LEDCounterCopy1) then
LEDGreenOut <= '1';
else
LEDGreenOut <= '0';
end if;
else
if(LEDCounterCopy0 <= LEDCounterCopy1) then
LEDGreenOut <= '1';
else
LEDGreenOut <= '0';
end if;
end if;

end process;


--RS232C読み込みプロセス
process(CLK, RS232CReadStartFlag, RS232CIn, RS232CReadTimingCounter, RS232CReadCountNumber) begin --信号に変化のあった時の必要なセンシビリティリストを(else時も考慮して)キチンと記入する事

--最初のRS232Cがきたかどうか
if(RS232CIn='0' and RS232CReadStartFlag='0') then
RS232CReadStartFlag <= '1';
RS232CReadTimingCounter <= (others => '0');
elsif(CLK'event and CLK='1' and RS232CReadStartFlag='1') then
RS232CReadTimingCounter <= RS232CReadTimingCounter + '1';
case RS232CReadTimingCounter is
--最初のスタートビットのLowを検査(14.7456MHz/115200bpsの半分)
when "000001000000" =>
if(RS232CIn='1') then
RS232CReadStartFlag <= '0';
RS232CReadTimingCounter <= (others => '0');
end if;
--RS232C読み込み開始(14.7456MHz/115200bpsの1.5倍タイミング)
when "000011000000" =>
RS232CReadByteBuffer(0) <= RS232CIn;
--RS232C読み込み開始(14.7456MHz/115200bpsの2.5倍タイミング)
when "000101000000" =>
RS232CReadByteBuffer(1) <= RS232CIn;
--RS232C読み込み開始(14.7456MHz/115200bpsの3.5倍タイミング)
when "000111000000" =>
RS232CReadByteBuffer(2) <= RS232CIn;
--RS232C読み込み開始(14.7456MHz/115200bpsの4.5倍タイミング)
when "001001000000" =>
RS232CReadByteBuffer(3) <= RS232CIn;
--RS232C読み込み開始(14.7456MHz/115200bpsの5.5倍タイミング)
when "001011000000" =>
RS232CReadByteBuffer(4) <= RS232CIn;
--RS232C読み込み開始(14.7456MHz/115200bpsの6.5倍タイミング)
when "001101000000" =>
RS232CReadByteBuffer(5) <= RS232CIn;
--RS232C読み込み開始(14.7456MHz/115200bpsの7.5倍タイミング)
when "001111000000" =>
RS232CReadByteBuffer(6) <= RS232CIn;
--RS232C読み込み開始(14.7456MHz/115200bpsの8.5倍タイミング)
when "010001000000" =>
RS232CReadByteBuffer(7) <= RS232CIn;
--ストップビットのHighを検査(14.7456MHz/115200bpsの9.5倍タイミング)
when "010011000000" =>
if(RS232CIn='0') then
RS232CReadStartFlag <= '0';
RS232CReadTimingCounter <= (others => '0');
RS232CReadByteBuffer <= (others => '0');
end if;
--1byte分超えたら、読み取り終了(14.7456MHz)/(115200bps/10bit)
when "010100000000" =>
--1byte分終了
RS232CReadStartFlag <= '0';
RS232CReadTimingCounter <= (others => '0');
when others => null;
end case;
end if;

end process;


--RS232Cで読み込んだbyteをスタックに格納
process(RS232CReadStartFlag, RS232CReadCountNumber, RS232CReadCountMax, RS232CReadByteBuffer, PWMServoCalcCopy00, PWMServoCalcCopy01, PWMServoCalcCopy02, PWMServoCalcCopy03, PWMServoCalcCopy04, PWMServoCalcCopy05, PWMServoCalcCopy06, PWMServoCalcCopy07, PWMServoCalcCopy08, PWMServoCalcCopy09, PWMServoCalcCopy10, PWMServoCalcCopy11, RS232CReadStackByteBuffer00, RS232CReadStackByteBuffer01, RS232CReadStackByteBuffer02, RS232CReadStackByteBuffer03, RS232CReadStackByteBuffer04, RS232CReadStackByteBuffer05, RS232CReadStackByteBuffer06, RS232CReadStackByteBuffer07, RS232CReadStackByteBuffer08, RS232CReadStackByteBuffer09, RS232CReadStackByteBuffer10, RS232CReadStackByteBuffer11, RS232CReadStackByteBuffer12, RS232CReadStackByteBuffer13, RS232CReadStackByteBuffer14, RS232CReadStackByteBuffer15, RS232CReadStackByteBuffer16, RS232CReadStackByteBuffer17) begin

--最大18個のスタック
if(RS232CReadCountNumber > "00010001") then
RS232CReadCountNumber <= (others => '0');
--命令固有長
elsif(RS232CReadCountNumber > RS232CReadCountMax) then
RS232CReadCountNumber <= (others => '0');
case RS232CReadStackByteBuffer00 is
--0xFD
when "11111101" =>
--参考:700us-2300usの値(10321.92(0x2852)-33914.99(0x847A)) --1度の値は、((2300us-700us)/180度)*14.7456MHz = 131.072(0x83)
PWMServoCalcCopy00(17 downto 15) <= "000";
PWMServoCalcCopy00(14 downto 7) <= RS232CReadStackByteBuffer03;
PWMServoCalcCopy00(6 downto 0) <= "0000000";
-- PWMServoCalcCopy00 <= PWMServoCalcCopy00 * "010000011";
PWMServo00 <= PWMServoCalcCopy00 + "000010100101100110";
PWMServoCalcCopy01(17 downto 15) <= "000";
PWMServoCalcCopy01(14 downto 7) <= RS232CReadStackByteBuffer04;
PWMServoCalcCopy01(6 downto 0) <= "0000000";
-- PWMServoCalcCopy01 <= PWMServoCalcCopy01 * "010000011";
PWMServo01 <= PWMServoCalcCopy01 + "000010100101100110";
PWMServoCalcCopy02(17 downto 15) <= "000";
PWMServoCalcCopy02(14 downto 7) <= RS232CReadStackByteBuffer05;
PWMServoCalcCopy02(6 downto 0) <= "0000000";
-- PWMServoCalcCopy02 <= PWMServoCalcCopy02 * "010000011";
PWMServo02 <= PWMServoCalcCopy02 + "000010100101100110";
PWMServoCalcCopy03(17 downto 15) <= "000";
PWMServoCalcCopy03(14 downto 7) <= RS232CReadStackByteBuffer06;
PWMServoCalcCopy03(6 downto 0) <= "0000000";
-- PWMServoCalcCopy03 <= PWMServoCalcCopy03 * "010000011";
PWMServo03 <= PWMServoCalcCopy03 + "000010100101100110";
PWMServoCalcCopy04(17 downto 15) <= "000";
PWMServoCalcCopy04(14 downto 7) <= RS232CReadStackByteBuffer07;
PWMServoCalcCopy04(6 downto 0) <= "0000000";
-- PWMServoCalcCopy04 <= PWMServoCalcCopy04 * "010000011";
PWMServo04 <= PWMServoCalcCopy04 + "000010100101100110";
PWMServoCalcCopy05(17 downto 15) <= "000";
PWMServoCalcCopy05(14 downto 7) <= RS232CReadStackByteBuffer08;
PWMServoCalcCopy05(6 downto 0) <= "0000000";
-- PWMServoCalcCopy05 <= PWMServoCalcCopy05 * "010000011";
PWMServo05 <= PWMServoCalcCopy05 + "000010100101100110";
PWMServoCalcCopy06(17 downto 15) <= "000";
PWMServoCalcCopy06(14 downto 7) <= RS232CReadStackByteBuffer09;
PWMServoCalcCopy06(6 downto 0) <= "0000000";
-- PWMServoCalcCopy06 <= PWMServoCalcCopy06 * "010000011";
PWMServo06 <= PWMServoCalcCopy06 + "000010100101100110";
PWMServoCalcCopy07(17 downto 15) <= "000";
PWMServoCalcCopy07(14 downto 7) <= RS232CReadStackByteBuffer10;
PWMServoCalcCopy07(6 downto 0) <= "0000000";
-- PWMServoCalcCopy07 <= PWMServoCalcCopy07 * "010000011";
PWMServo07 <= PWMServoCalcCopy07 + "000010100101100110";
PWMServoCalcCopy08(17 downto 15) <= "000";
PWMServoCalcCopy08(14 downto 7) <= RS232CReadStackByteBuffer11;
PWMServoCalcCopy08(6 downto 0) <= "0000000";
-- PWMServoCalcCopy08 <= PWMServoCalcCopy08 * "010000011";
PWMServo08 <= PWMServoCalcCopy08 + "000010100101100110";
PWMServoCalcCopy09(17 downto 15) <= "000";
PWMServoCalcCopy09(14 downto 7) <= RS232CReadStackByteBuffer12;
PWMServoCalcCopy09(6 downto 0) <= "0000000";
-- PWMServoCalcCopy09 <= PWMServoCalcCopy09 * "010000011";
PWMServo09 <= PWMServoCalcCopy09 + "000010100101100110";
PWMServoCalcCopy10(17 downto 15) <= "000";
PWMServoCalcCopy10(14 downto 7) <= RS232CReadStackByteBuffer13;
PWMServoCalcCopy10(6 downto 0) <= "0000000";
-- PWMServoCalcCopy10 <= PWMServoCalcCopy10 * "010000011";
PWMServo10 <= PWMServoCalcCopy10 + "000010100101100110";
PWMServoCalcCopy11(17 downto 15) <= "000";
PWMServoCalcCopy11(14 downto 7) <= RS232CReadStackByteBuffer14;
PWMServoCalcCopy11(6 downto 0) <= "0000000";
-- PWMServoCalcCopy11 <= PWMServoCalcCopy11 * "010000011";
PWMServo11 <= PWMServoCalcCopy11 + "000010100101100110";
when others => null;
end case;
elsif(RS232CReadStartFlag'event and RS232CReadStartFlag='0') then
--読み込んだ1バイトを格納
case RS232CReadCountNumber is
when "00000000" =>
RS232CReadStackByteBuffer00 <= RS232CReadByteBuffer;
case RS232CReadByteBuffer is
--0xFD
when "11111101" =>
RS232CReadCountMax <= "00001111";
when others =>
RS232CReadCountMax <= (others => '0');
end case;
when "00000001" =>
RS232CReadStackByteBuffer01 <= RS232CReadByteBuffer;
when "00000010" =>
RS232CReadStackByteBuffer02 <= RS232CReadByteBuffer;
when "00000011" =>
RS232CReadStackByteBuffer03 <= RS232CReadByteBuffer;
when "00000100" =>
RS232CReadStackByteBuffer04 <= RS232CReadByteBuffer;
when "00000101" =>
RS232CReadStackByteBuffer05 <= RS232CReadByteBuffer;
when "00000110" =>
RS232CReadStackByteBuffer06 <= RS232CReadByteBuffer;
when "00000111" =>
RS232CReadStackByteBuffer07 <= RS232CReadByteBuffer;
when "00001000" =>
RS232CReadStackByteBuffer08 <= RS232CReadByteBuffer;
when "00001001" =>
RS232CReadStackByteBuffer09 <= RS232CReadByteBuffer;
when "00001010" =>
RS232CReadStackByteBuffer10 <= RS232CReadByteBuffer;
when "00001011" =>
RS232CReadStackByteBuffer11 <= RS232CReadByteBuffer;
when "00001100" =>
RS232CReadStackByteBuffer12 <= RS232CReadByteBuffer;
when "00001101" =>
RS232CReadStackByteBuffer13 <= RS232CReadByteBuffer;
when "00001110" =>
RS232CReadStackByteBuffer14 <= RS232CReadByteBuffer;
when "00001111" =>
RS232CReadStackByteBuffer15 <= RS232CReadByteBuffer;
when "00010000" =>
RS232CReadStackByteBuffer16 <= RS232CReadByteBuffer;
when "00010001" =>
RS232CReadStackByteBuffer17 <= RS232CReadByteBuffer;
when others => null ;
end case;
--読み込みカウントアップ
RS232CReadCountNumber <= RS232CReadCountNumber + '1';
end if;

end process;


--RS232C吐き出し処理
process(CLK, TotalCounter, RS232CWriteStartFlag) begin --信号に変化のあった時の必要なセンシビリティリストを(else時も考慮して)キチンと記入する事

--RS232CWriteTimingCounter生成
if(RS232CWriteStartFlag='0') then
RS232CWriteTimingCounter <= (others => '0');
elsif(CLK'event and CLK='1') then
RS232CWriteTimingCounter <= RS232CWriteTimingCounter + '1';
end if;
--RS232C吐き出し開始指令と停止処理
if(CLK'event and CLK='1') then
--開始
case TotalCounter is
when "0000000000000000000000000" =>
RS232CWriteByteBuffer <= PWMServo00(15 downto 8); --吐き出しバイトをRS232CWriteByteBufferにセット
-- RS232CWriteByteBuffer <= RS232CReadStackByteBuffer03; --吐き出しバイトをRS232CWriteByteBufferにセット
RS232CWriteStartFlag<='1'; --吐き出し開始指令
when "0000100000000000000000000" =>
RS232CWriteByteBuffer <= PWMServo01(15 downto 8); --吐き出しバイトをRS232CWriteByteBufferにセット
-- RS232CWriteByteBuffer <= RS232CReadStackByteBuffer04; --吐き出しバイトをRS232CWriteByteBufferにセット
RS232CWriteStartFlag<='1'; --吐き出し開始指令
when "0001000000000000000000000" =>
RS232CWriteByteBuffer <= PWMServo02(15 downto 8); --吐き出しバイトをRS232CWriteByteBufferにセット
-- RS232CWriteByteBuffer <= RS232CReadStackByteBuffer05; --吐き出しバイトをRS232CWriteByteBufferにセット
RS232CWriteStartFlag<='1'; --吐き出し開始指令
when "0001100000000000000000000" =>
RS232CWriteByteBuffer <= PWMServo03(15 downto 8); --吐き出しバイトをRS232CWriteByteBufferにセット
-- RS232CWriteByteBuffer <= RS232CReadStackByteBuffer06; --吐き出しバイトをRS232CWriteByteBufferにセット
RS232CWriteStartFlag<='1'; --吐き出し開始指令
when "0010000000000000000000000" =>
RS232CWriteByteBuffer <= PWMServo04(15 downto 8); --吐き出しバイトをRS232CWriteByteBufferにセット
-- RS232CWriteByteBuffer <= RS232CReadStackByteBuffer07; --吐き出しバイトをRS232CWriteByteBufferにセット
RS232CWriteStartFlag<='1'; --吐き出し開始指令
when "0010100000000000000000000" =>
RS232CWriteByteBuffer <= PWMServo05(15 downto 8); --吐き出しバイトをRS232CWriteByteBufferにセット
-- RS232CWriteByteBuffer <= RS232CReadStackByteBuffer08; --吐き出しバイトをRS232CWriteByteBufferにセット
RS232CWriteStartFlag<='1'; --吐き出し開始指令
when "0011000000000000000000000" =>
RS232CWriteByteBuffer <= PWMServo06(15 downto 8); --吐き出しバイトをRS232CWriteByteBufferにセット
-- RS232CWriteByteBuffer <= RS232CReadStackByteBuffer09; --吐き出しバイトをRS232CWriteByteBufferにセット
RS232CWriteStartFlag<='1'; --吐き出し開始指令
when "0011100000000000000000000" =>
RS232CWriteByteBuffer <= PWMServo07(15 downto 8); --吐き出しバイトをRS232CWriteByteBufferにセット
-- RS232CWriteByteBuffer <= RS232CReadStackByteBuffer10; --吐き出しバイトをRS232CWriteByteBufferにセット
RS232CWriteStartFlag<='1'; --吐き出し開始指令
when "0100000000000000000000000" =>
RS232CWriteByteBuffer <= PWMServo08(15 downto 8); --吐き出しバイトをRS232CWriteByteBufferにセット
-- RS232CWriteByteBuffer <= RS232CReadStackByteBuffer11; --吐き出しバイトをRS232CWriteByteBufferにセット
RS232CWriteStartFlag<='1'; --吐き出し開始指令
when "0100100000000000000000000" =>
RS232CWriteByteBuffer <= PWMServo09(15 downto 8); --吐き出しバイトをRS232CWriteByteBufferにセット
-- RS232CWriteByteBuffer <= RS232CReadStackByteBuffer12; --吐き出しバイトをRS232CWriteByteBufferにセット
RS232CWriteStartFlag<='1'; --吐き出し開始指令
when "0101000000000000000000000" =>
RS232CWriteByteBuffer <= PWMServo10(15 downto 8); --吐き出しバイトをRS232CWriteByteBufferにセット
-- RS232CWriteByteBuffer <= RS232CReadStackByteBuffer13; --吐き出しバイトをRS232CWriteByteBufferにセット
RS232CWriteStartFlag<='1'; --吐き出し開始指令
when "0101100000000000000000000" =>
RS232CWriteByteBuffer <= PWMServo11(15 downto 8); --吐き出しバイトをRS232CWriteByteBufferにセット
-- RS232CWriteByteBuffer <= RS232CReadStackByteBuffer14; --吐き出しバイトをRS232CWriteByteBufferにセット
RS232CWriteStartFlag<='1'; --吐き出し開始指令
when others => null;
end case;
--停止
--RS232Cストップビット後に停止(14.7456MHz/115200bpsの10倍まで)
if(RS232CWriteTimingCounter>"010100000000") then
RS232CWriteStartFlag<='0';
RS232CWriteByteBuffer <= (others => '0'); --吐き出しバイトクリア
end if;
end if;

end process;

--実際のTTL生成処理
process(RS232CWriteTimingCounter, RS232CWriteByteBuffer) begin --信号に変化のあった時の必要なセンシビリティリストを(else時も考慮して)キチンと記入する事

--なにも出力しない時はHigh
if(RS232CWriteTimingCounter="000000000000") then
RS232COut<='1';
--最初のスタートビットのLow(14.7456MHz/115200bpsまで)
elsif(RS232CWriteTimingCounter<"000010000000") then
RS232COut<='0';
--RS232C読み込み開始(14.7456MHz/115200bpsの2倍まで)
elsif(RS232CWriteTimingCounter<"000100000000") then
RS232COut<=RS232CWriteByteBuffer(0);
--RS232C読み込み開始(14.7456MHz/115200bpsの3倍まで)
elsif(RS232CWriteTimingCounter<"000110000000") then
RS232COut<=RS232CWriteByteBuffer(1);
--RS232C読み込み開始(14.7456MHz/115200bpsの4倍まで)
elsif(RS232CWriteTimingCounter<"001000000000") then
RS232COut<=RS232CWriteByteBuffer(2);
--RS232C読み込み開始(14.7456MHz/115200bpsの5倍まで)
elsif(RS232CWriteTimingCounter<"001010000000") then
RS232COut<=RS232CWriteByteBuffer(3);
--RS232C読み込み開始(14.7456MHz/115200bpsの6倍まで)
elsif(RS232CWriteTimingCounter<"001100000000") then
RS232COut<=RS232CWriteByteBuffer(4);
--RS232C読み込み開始(14.7456MHz/115200bpsの7倍まで)
elsif(RS232CWriteTimingCounter<"001110000000") then
RS232COut<=RS232CWriteByteBuffer(5);
--RS232C読み込み開始(14.7456MHz/115200bpsの8倍まで)
elsif(RS232CWriteTimingCounter<"010000000000") then
RS232COut<=RS232CWriteByteBuffer(6);
--RS232C読み込み開始(14.7456MHz/115200bpsの9倍まで)
elsif(RS232CWriteTimingCounter<"010010000000") then
RS232COut<=RS232CWriteByteBuffer(7);
--RS232CストップビットHigh以降
else
RS232COut<='1';
end if;

end process;


end Behavioral;

コメント(0)


ジャンボエンチョー
管理人さんのブログ 2007-03-04 16:41:54

日曜大工ご用達の店(いや、プロの方が多いか…)。
家から近いのでよく行く。
転職前、毎日通ったくらい。
行き当たりばったりの作業するもんだから、足りない物とかすぐ出てくるので家から近いかが重要なポイント。
その点、ここは最適な店。
いつ来ても、そこそこ人が居て繁盛してるっぽい。

コメント(0)


自転車小屋
管理人さんのブログ 2007-02-13 08:24:49

転職前に自分で組み立てた自転車小屋。
スカスカな感じはするけど、実際使ってみると雨もほとんど入らずいい感じ。

コメント(0)


<< 2009年11月
2009年11月21日(土)
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

 最近の書き込み

パソコンショップ
  <2009-11-21 06:56:01>
ネットコマンド
  <2009-11-20 10:30:10>
Linuxコマンド
  <2009-11-18 11:44:56>
家のパソコン
  <2009-11-17 17:25:58>
ROUND 1 (豊橋)
  <2009-11-17 07:49:50>
nPOPs
  <2009-11-15 07:40:23>
打ちっぱなし
  <2009-11-13 15:21:35>
胃カメラ
  <2009-11-13 15:10:33>
T-01A
  <2009-11-13 10:02:41>
画面キャプチャ
  <2009-11-13 07:01:33>


 カテゴリー

おでかけ(67)
サッカー(41)
季節(32)
食べ物(30)
旅(28)
家(28)
映画(26)
地元(25)
DIY(24)
 ・ 綿菓子
 ・ 玩具修理
 ・ 水道管の蛇口
 ・ センサー付ライト
 ・ 石組み水槽
 ・ 段ボールロボ
 ・ コケ取り棒
 ・ ガラスフィルム
 ・ 自転車小屋 再び
 ・ 玄関網戸
 ・ 御影石
 ・
 ・ インターホン → TVドアホン
 ・ スピーカーのプラスマイナス
 ・ エアコン取付け
 ・ 電子部品
 ・ カーステ設置
 ・ 車 リアスピーカー
 ・ 日産キューブ インパネ
 ・ ネジ購入
 ・ 道具
 ・ 二足歩行
 ・ ジャンボエンチョー
 ・ 自転車小屋
家族(21)
学校(20)
モバイル(20)
生物(20)
健康(19)
Web(17)
風景(17)
ドラマ(17)
通勤(16)
ブログ(14)
Winアプリ(14)
家電(13)
ゲーム(12)
足技(12)
ブラウザ(11)
本(11)
ゴルフ(10)
自転車(10)
Linux(10)
php(9)
javascript(9)
PCハード(9)
ネットワーク(8)
飲み物(8)
会社(8)
感銘映像(6)
税金(5)
空想(5)
VMware(4)
Ruby(4)
データベース(3)
perl(1)