子供がいる人はだれでも、トイレットペーパーを手伝わないことを知っています。誰がそれが低いか、またはなくなったときに追跡し、可聴アラームを鳴らす方法を知っていますか?どのセンサーを使用すればよいかわからないだけです。
頭に浮かんだのは、重量、反射(紙の色)、またはレーザートリップワイヤ-スプール上ですべて正しいことです。私はそれを構築することを気にしません、それは私がどのセンサーを知らないだけです。誰がどちらを使うべきか知っていますか?
子供がいる人はだれでも、トイレットペーパーを手伝わないことを知っています。誰がそれが低いか、またはなくなったときに追跡し、可聴アラームを鳴らす方法を知っていますか?どのセンサーを使用すればよいかわからないだけです。
頭に浮かんだのは、重量、反射(紙の色)、またはレーザートリップワイヤ-スプール上ですべて正しいことです。私はそれを構築することを気にしません、それは私がどのセンサーを知らないだけです。誰がどちらを使うべきか知っていますか?
回答:
一度に複数のロールを呼び出し、使用するために1つを掛けます。シッターの手の届くところにある短い垂直ポールに他の2つを置きます。シッターは必要に応じて別のロールを取ることができます。
ポールの下部にある棚の重量不足を機械的に感知します。最後のロールが削除されると、アラームがトリガーされます。誰も手に入れる必要はありません。
重量を検知するには、FSR 400などの力感知抵抗器を使用します(データシートを参照)。または、軽量のコイルスプリングを使用して、両方のロールを取り外したときにリリースされるマイクロスイッチでトイレットペーパーを置くことができます。別のオプションは、最後のロールが取り外されたときに回路が完成するIRビーム破損検出器です。
jfpoilpretとjmathewが提示したリードセンサーの概念は、達成するのが最も簡単だと思います。どのように見えるかを図で示しました。
下部の接点の高さを調整することにより、感度を調整できます。
これは本当にあなたを「低い」状態にするだけで、必ずしも外に出ることはありません。まだいくつかのシートが残っている間にロールを変更したくない限り、これは満足のいく解決策ではないようです。私はむしろ「アウト」インジケータを持ち、ユーザーにロールを交換するように促す/恥ずかしいブザーを鳴らしたいと思います。
この設計は、スタンドアロンの電子機器を使用して実現できます(arduinoは不要です)。ただし、ロールの変更をゲーミファイしたかったので、そのためにarduinoを使用できました。
カラーベースの光学センサーにも注意してください。この目的で使用されるボール紙チューブの大部分は茶色ですが、白いチューブも使用されています。
私はジェームズ・メイのManlabのシリーズ1エピソード2でこれを見たと思う。
jfpoilpretと同様に、常にロールと接触するバネに幅広い素材を使用します。ロールが空のときにリードが側面のロールホルダーの1つに接触するように、「ワイド」と言います。触れると、アラームへの回路が完成します。
これが私が意味することを説明する粗雑な画像です。
Arluinの回答では、この方法ではロールが空であることが示されないことが言及されました。それはほとんど真実です。上部の接点がTPの厚紙ロールと同じ厚さで、下部の接点が厚紙ロールの内側部分の内側に配置されている場合、実用的な目的のために十分に接近する必要があります。タコスの夜の後、TPロールの1フィートでは不十分です。
放射線検出器を使用して、ロールに残っている用紙の量を検出します。スプールロッドの中央に放射性物質をいくらか置き、放射線検出器を別の場所に置きます(必要に応じて、ロールホルダーが取り付けられている表面の反対側に取り付けることができます;放射線センサーは非常に柔軟です) 、放射量を測定して、ロールに残っている用紙の量を判断します。
あるいは、電子制御式トイレットペーパーディスペンサー(事前にプログラムされた長さのトイレットペーパーをディスペンスするためのプッシュボタン)を使用し、arduinoにディスペンスされた量を追跡させることもできます。
または、スプールロッドの側面にロータリーエンコーダーを取り付け(ロール内で滑らないように取り付けてください)、ロールの回転をカウントして、使用量を確認します。
もちろん、これらの方法のいずれかを使用すると、トイレットペーパーの正確なタイプ/ブランド/材料/などに応じて、テストを実行し、データを収集する必要があります。
特に2番目と3番目のアイデアについては、システムから定期的にデータを取得して、ロールの一般的な長さを追跡し、重要な変動に合わせてプログラムを調整できるようにすることをお勧めします。あるタイプのトイレットペーパーの中でも、ロールの長さに多少のばらつきがあると思います。
さらに楽しくするために、時系列データを収集するために検出器を装備することができます。そのため、後でそれをコンピューターにアップロードして、「経時的なトイレットペーパー使用量」グラフなどを作成できます。
「Arluin」と「jmathew」には正しい考えがあると思います。ロールの上部にあるレバーを使用します。
しかし、私はそれをわずかに異なるようにします。連絡先のシャットダウンに依存するのではなく、ポテンショメータを使用できます。このシステムを使用すると、残量が少なくなったときに通知されるだけでなく、残量を測定できます。
既に提案されているような連絡先では、連絡先が閉じたときに用紙が詰まってしまい、用紙の残量が少なくなることがあります。
(ロールを使用するときにレバーを押し下げるには、図に青色で示されているウェイトが必要な場合があります)
ポットを最大限に振るには、可能な限りポットをポットに近づけて、残りの量を最大限に解決する必要があります。
もう1つ必要なのは、レバーの端にある種類のローラーです。これにより、ロール紙は、レバーが用紙に接触している場所を少しドラッグするだけで簡単に移動できます。
誕生日カードを再生して、ホルダーアームにスイッチを適合させることができます。トイレから「Happy Birthday」というチャイムが聞こえたら、あなたは困っていることがわかります! ...
おそらくあなたの問題を解決するであろうArduino用の反射タコメーターを構築しました。基本的な回路は非常に簡単です。
私は、赤い光によく反応するフォトランシスターと、Radio Shackの別のフォトランシスターを配置しましたこれは、古いテレビのリモートLEDのIR出力に非常に敏感でした。あなたの目的のために、緑のワイヤーはArduinoのアナログピン0に接続されます。そして、割り込み駆動のスケッチをセットアップするのではなく、定期的にサンプリングするだけです。ホワイトペーパーとグレーロールの間で反射信号の差を得るための秘Theは、フォトトランジスタの光感度が増加してGNDへの抵抗が増加することを知ることですが、暗電圧も上昇します。検出器から数インチの距離にある暗い物体と明るい物体のAtoD値を確認することで、5および3メガオームの値が明確に得られました。グレーと白を検出する場合も同じ手順で機能します。見た目がまったく異なるものの中には、IRの反射率が同じものもあります。完成した赤色光タコメーターの写真を次に示します。
センサーボードをペーパーディスペンサーの背面に収まるほど小さくするのは簡単です。IRバージョンはさらに小さくなっていますが、自宅で作られた遠心分離機に深く埋もれており、今日の写真を撮ることができません。
私が使用する別のまともで安価なオプションは、携帯電話のような近接センサーや固定フィールド赤外線センサーだと思います。これらのセンサーはかなり正確で、センサーをホルダーまたはトイレットロールが置かれている壁に取り付けることで、トイレットロールの背面を「見る」ために簡単に使用できます。ポストで私が見た他のすべてのアイデアは、かなり不正確であるか、長期的には汚染をもたらす可能性があると感じるトイレットロールに押し付けがましいものでした。近接センサーは、かなり安価で使いやすいだけでなく、適切に調整されていれば、非常に高い精度と信頼性を実現できます。このモデルは、自動小便器で男性用小便器ですでに広く使用されています。たとえば、携帯電話の場合:手や顔が画面の近くにあるとき、携帯電話は2.0インチまたは無限遠の距離を正確に提供します。
短距離の超音波距離センサーは効果的な(そしてかなり安価な)オプションかもしれません。エミッター+センサーの組み合わせをチップにマウントできます。異なるセンサーは異なる方法で動作する場合があります(常にデータシートを確認してください)。ただし、一般的な出力では、パルスの長さを使用して、検知された距離を示します。pulseIn()
関数を使用してArduinoで処理できます。
取り付けに関しては、おそらくトイレットペーパーの真後ろに取り付けて、スプールの中心を指すようにします。多くの場合、測定値は非常に不安定であるため、複数の測定値を取得して平均化する(または単純な移動平均を使用する)必要があります。少しのキャリブレーションで、空のスプールを表す距離を決定できます。
その距離をかなりの期間(1分以上)繰り返し検出すると、アラームが鳴ります。
反射率ベースのセンサーも別の可能性があるかもしれませんが、トイレットペーパーで適切に機能するセンサーを見つけるのに苦労するのではないかと思います(お好みのブランドの柔らかさによって異なります!)。
頭に浮かぶアイデアの1つは、次のようなものです。
したがって、磁石とリード接点の間の距離がある程度の限界に達するとすぐに、スイッチは回路を閉じます。ロール紙が引かれる間、その距離は減少します。
リード接点の代わりに、ホール効果センサーを使用することもできます。原理は同じままで、技術と特性のみが変更されます。
ここでの困難は、リード接点の適切な感度(または磁石の力)を見つけて、リード接点が磁石との距離が十分に小さくなったときに閉じて、すぐに作動するアラームを回避することです)。
最も簡単でありながら最善の解決策は、1つのIR LEDとオプトトランジスタで作られたオプトカプラーを使用することです。ロールに向かってLEDを明るくします。LEDはロール内にあり、「ハンドル」に結び付けられています。段ボールのロールを取り外すと、オプトトランジスタはLEDからIRライトを取得し、Arduinoでピン変更の中断をトリガーします。これにより、さまざまな方法(ライト、SMS、Twitter、アラームなど)でアラートを出すことができます。
その設計は、本当に安くて、簡単で、早く構築できます。あなたがしなければならないことはまだ一つあります:トイレットペーパーがなくなったら、実際に段ボールのロールを取り除いてください ;-)
それ以外の場合、スペアロールの同じ種類のソリューションはさらに良いアイデアです:-)
ここでのオプションの多くは、複雑すぎて押し付けがましいようです。
実装が少し複雑ですが(面白く)邪魔にならず、簡単にインストールできる別のオプションは、安価なカラーセンサーを構築し、ロールの後ろの壁に取り付けることです。ロールの色(またはTPの色がない)を検出すると、それは低くなります。
8ドルで購入することもできます。
TPの薄さを利用してしきい値を調整できます。TPの数が少ないため、TPが少し暗くなり始めます。
必要に応じて、バスルームのライトを点灯した状態で新しいロールを取り付けた後、ボタンを押すことでキャリブレーションを実行できます。
あなたの浴室の仕様に応じて、いくつかの調整を行う必要があります。余分な複雑さを追加し、バスルームの照明スイッチに接続されたACコンセントから電源を切ると、バスルームの照明が点灯しているときにのみ電源を入れることができ、信頼性の低いデータが多く除外されます。
これはインストールが非常に簡単で、ロール自体の変更を必要としません。両面テープでセンサーを壁に貼り付けるか、上向き(または上向き)でロールの下の小さな棚に置くことができます。
ディスペンサーの片側、スプールのすぐ上に小さなIR LEDを取り付けます。ディスペンサーの反対側にIRフォトセンサーを取り付けます。センサーがLEDを認識すると、ロールは低くなります。安価なレーザーでもできます(例えば、市販のレーザーポインターを片側に、フォトセンサーを反対側に配置しますが、目を痛めないでください!)
これも簡単にインストールでき(ディスペンサーへのホットグルーなど)、ロールの変更を必要としませんが、ロールを交換するときにセンサーの位置によって損傷しやすくなる場合があります。
私はまた、リードセンサーとレンジセンサー(BTW:$ 10で素晴らしい短距離距離センサーが得られます)オプションもとても気に入っています。
注:指定されたリンクは、最初に表示されるリンクです。それらのほとんどは、他のサイトに比べて高価です。eBayで購入すると、これらのアイテムのほとんどがかなり安くなる可能性があります。Sparkfunを含む他の場所もチェックしてください。
カラーセンサーについて詳しく説明します。
ここでは、赤、緑、青の3つの値で色が読み取られます。ボードには3つのセンサーがあります。1つは赤、もう1つは青、もう1つは緑を除くすべてを除外します。ボード上のセンサーは入射光の量を検出し、それを電圧に変換します:5V(「100%赤/緑/青」)または0V(「0%赤/緑/青」)。これはArduinoによって数値に変換できます(アナログピンでは0〜1024)。
照明の問題: このセンサーは、私が知る限りでは、常に点灯しているLEDを持っています。照明付きのトイレットペーパーホルダーが必要な場合を除き、そのはんだを除去するか、それを覆います。ちょっと待ってください...センサーは、暗いときは茶色だと考えます。問題ありません...ここで考えてみてください。
私が使用しているようなカラーピッカーを使用し、茶色を選択します。これの左側で、「シミュレートされた明るさ」を制御できます。それに加えて、RGBの16進数形式です。このcalcuatorを使用して標準値に変換する必要があります。
茶色では、青色はほとんど存在しません。茶色であることを再確認する方法が必要な場合を除き、その色は無視する必要があります。ほぼすべての茶色に対して、常に40%未満である必要があります。
茶色のサンプルシェードでわかることから、赤は緑のほぼ2倍です。その比率は異なる場合がありますが、ある程度存在することを確認する必要があります。白/グレー/黒の場合、すべての色は比例1:1:1です。これを使用して、暗いか、茶色かを検出できます。
int rPin = A0; //Red Pin
int gPin = A1; //Green Pin
int bPin = A2; //Blue Pin
int ledPin = 13; //I made this code with a LED, not a speaker
boolean testTwice = false;
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
int rValue = analogRead(rPin);
int gValue = analogRead(gPin);
int bValue = analogRead(bPin);
if (bPin < 256) { //If this is false, either something is in the way or it's white. Going to verify that something's not in the way...
int minRed = rPin * 0.4; //A little under a half for padding... this values may need to be adjusted. Adjust this one and the one below farther apart for less sensitive.
int maxRed = rPin * 0.6; //A little over a half for padding... this values may need to be adjusted.
if (gPin < maxRed && gPin > minRed) { //Verifys that red between minRed and maxRed
digitalWrite(ledPin, HIGH);
delay(5000);
digitalWrite(ledPin, LOW);
}
}
delay(5000); // No need to waste power... you might want to add an actutal sleep function if on battery power
}
まず、青が25%未満であることを確認します。次に、赤と緑が等しいことを確認します... 20%を与えるか、または受け取ります。(つまり、赤= 100緑= 80、赤= 110緑= 90など)。それが本当なら、あなたはそれが茶色であることをほとんど確立することができます。次に、LEDが5秒間点灯します。
必要に応じて、LEDを変更してブザーにできます。ifステートメントを調整して、青が256/1024(1024 =アナログピンの解像度)未満であることを確認しながら、多くの光で動作していないか、暗い光で動作している場合があります。コードは後で赤が緑の約2倍であることを検証するため、白の影はifステートメントを通過しないはずです。また、を調整してminRed
、maxRed
より遠く(茶色を検出しない場合)またはより近く(茶色が白のときに検出する場合)する必要があります。このコードをカラーセンサーなしでテストすることはできません。
注:これらは少し手間がかかります。代わりにLEDをお勧めします。そうすれば、トイレットペーパーが少なくても家全体が夜中に目が覚めないようにできます。また、センサーをまったく遮る場合...バスルームにない場合は、カメラをお勧めします。@ jfpolipretの答えのようなリードスイッチで非常に低くなるたびにショットを撮ってもらいます... ...(しゃれはありません):)
クールなプロジェクトのように聞こえますが、ここに私の2 ctがあります:
カメラを向けてロール紙の写真を横から撮影します。これが、用紙の残量を確認する唯一の方法です。(編集:csiカメラでraspberry piを使用して、シートの数に対応する出力信号を作成し、その信号をarduinoに送信できますか?!)
推定では、ロールの回転を数えるだけでも十分かもしれませんが、滑らないようにロールをしっかりと固定する必要があります。または、自転車で使用するのと同じように磁石を使用できますが、その場合は磁石をロールに直接取り付ける必要があります。
(編集:もう1つのアイデア、蓋の角度を測定してロールの厚さを測定します)
最良のオプションは、回転式エンコーダーをロールの側面に取り付け、ロールの回転をカウントして、使用量を判断することです。ロールごとの回転数がわかったら、通知を送信する場所を設定できます。ある種のロギングシステムに接続すると、紙の使用とトイレの使用の履歴データが得られます。
それを行う別の方法は、ロールの内側に金属棒を、外側に金属板を置き、TPが残っているために変化する静電容量を測定することです。紙の誘電率。
しかし、それは確かに「風光明媚なルート」を取っているでしょう。それでも、Arduinoはかなり簡単に静電容量を測定でき、十分に敏感な場合もあります。ロールの後ろの金属板とロールの金属棒だけなので、邪魔になりません。気付かれることなく既存のホルダーを改造することさえできるかもしれません。
より簡単な方法は、ロールの上部で支えられたポテンショメータのシャフトにスティックを取り付けることです。TPが小さくなると、シャフトが低くなり、ポットが回転します。トイレットペーパーを引っ張る機能を妨げずに強く押すことはできないため、てこ用に長いシャフトが必要になる場合があります。
AJMansfieldが示唆したように、放射能は実際に工業環境で物の厚さを測定するために使用されます。本当に夢中になりたいのであれば、バックグラウンドレベルをわずかに上回り、非常に長い時間にわたって平均的な奇妙な味の塩代替品の缶のような非常に低エネルギーの放射能源を使用することができますそのため、これは実際には高価な方法で物事を行うのに合理的です。
赤外線ビームブレークセンサーも優れており、適切な位置に配置すると、オンとオフの信号を送るだけでなく、ロールがいっぱいになるほど光を遮るようになります。
編集:容量性アプローチの概念実証。Arduinoと2本の堅いワイヤのみが必要です。約8分の1インチの精度で、ノイズが多い。少なくとも1インチの精度を確実に得ることができると確信しています。測定時間は約1分です。それは周囲に非常に敏感です。あなたは足の中の金属がそれがあった場所に留まったことを確認するか、シールドを使用する必要があります。
float difference;
unsigned long i;
unsigned long j;
unsigned int temp;
volatile unsigned char blah;
void setup()
{
pinMode(5,OUTPUT);
Serial.begin(9600);
}
void loop()
{
difference =0;
Serial.print("Measuring: ");
for(i=0;i<100;i++)
{
for(j=0;j<5000;j++)
{
digitalWrite(5,LOW);
temp=analogRead(A0);
digitalWrite(5,HIGH);
temp = analogRead(A0)-temp;
if(temp<1024)
{
difference += temp;
}
}
//Random delay every 5000 samples helps avoid problems with interference by staggering the samples to cancel aliasing.
delay(random(1,50));
Serial.print("|");
}
Serial.print("\n");
Serial.print("Value: ");
Serial.print(difference/500000);
Serial.print("\nMeasurement Complete. Press Enter to begin another test.\n");
while(!Serial.available())
{
blah = 20;
}
Serial.read();
}