ソロでたのしむ

キャンプ、電子工作、DIY、乗り物などの趣味を紹介

LEDイルミネーションでテントまわりを演出。市販品と自作品

キャンプ場で、水場などへの通り道付近にテントを設置する場合、夜間に自分や通行人が、ペグやガイロープに引っかかることがないか気になります。

光る目印でペグやガイロープの存在をアピールして、安全にキャンプを楽しむ方法について、前半では市販品の応用方法、後半は自作した内容を、それぞれまとめてみました。

キャンプでのイルミネーション

月明りをも切り裂くような強力な光を発するライトが多いので、周りのキャンパーさんに迷惑をかけないために、ライト類を点灯せずに洗い場などに行くことがあります。

同じことを考えてみえるキャンパーさんも多く、また自然を楽しまれているお子様の安全のためにも、自分のサイトのペグやガイロープの存在を光でアピールしたいと思います。

また、暗いなかで洗い場などから帰ってくる時に、自分のテントを発見しやすくするためにも、個性的なイルミネーションは効果的です。

しかし、あまりにも激しく主張するような光では、周りの雰囲気に合わない場合もあるので、できればホタルのような淡い光が欲しいところです。

簡単に入手できそうなものから、これらの条件にあう、キャンプに使えるイルミネーションを探してみた結果と、電子工作の経験がある場合の簡単な自作方法を紹介いたします。

手軽に入手できるものを使う

 キャンプ場でよく見かける物から、「これは使えそう!」という物まで、入手してすぐに、ペグやガイロープの目印として使えるものを選んでみました。

蛍光ブレスレット

f:id:solocamptouring:20181122052431j:plain

テーマパークやイベントでもお馴染みの、ポキッと折ると光り始めるライトスティックです。

使い捨てですが、一本が約20円と経済的で、夕暮れから翌朝まで、ちょうどいい明るさで光り続けます。

ブレスレット風に円形にできるのも、ペグやガイロープやポールに設置する際の自由度が増すメリットとなります。

光の強さを試してみるために、林間フリーサイトのキャンプ場で、蛍光グリーン色のものをテント周りの地面に4個配置してみました(上の写真)。

林間サイトでは自分のテントが闇に紛れこんでしまうことが多いですが、約20m離れたところからでも、やんわりとした蛍光色で自分のテントの位置が確認できて、真っ直ぐに帰ってこられます。

かといって、光が強すぎないので周りの雰囲気を損ねることもありません。

ソロキャンパーさんが多いような、月明かりの静寂を楽しむキャンプ場で使いたいマーカーです

アイスライト

本来は、カクテルグラスに氷のように入れて、イルミネーションを楽しむものです。

飲料に入れるものなので、しっかり防水されていてキャンプで使うのにも適しています。

蛍光ブレスレットよりは強めの光ですが、直視できないほど眩しいものではなく、さりげなくペグやガイロープの存在をアピールできます。

ただし、水に浸すと光りはじめるセンサー式になっているので、キャンプで使用する時には、実際に水に浸すか、センサー部にアルミホイルを使うなどで工夫することが必要です。

リモコン式のイルミネーション

アイスライトの機能に加えて、自分好みの光り方にリモコンで操作できる防水イルミネーションです。

リモコンから受信できる距離は最大で10mなので、一般的なファミリーキャンプ用テントでは、操作可能な範囲内に設置できます。

ON/OFF操作もリモコンでできるので、日中に設置しておいて、周りが暗くなったら簡単に点灯することも可能です。

ちょっとしたDIYでストラップなどを接着しておけば、ポールにぶら下げたりして、設置のバリエーションも広がります。

LED10灯が一体になっているものと、1灯づつ防水ケースに入っていて合計10個がセットになっているものがありますが、テントまわりに使う場合は、バラバラで10個になっているものを選びたいです。

太陽光発電のイルミネーション

昼間に太陽光で充電しておく前提ですが、電池交換が不要のLEDイルミネーションが使えます。

主にクリスマスのイルミネーションや庭先などで使われているもので、電線で繋がったものと、チューブ状のものがありますが、キャンプで使う場合は、絡まりにくいチューブ状の方が使い勝手が良さそうです。

光り方のパターンが変えられるものを選べば、フェードや点滅などの光も楽しめます。

テント周りで使うとなると約10m以上が必要になりますが、その長さだとLEDが100個程度使われているものが多いです。

さりげなく使うには光源が多めなので、ソロキャンパーさんが多い所よりも、ファミリーやグループキャンプなどで賑わうキャンプ場に向いています。

キャンプに似合うイルミネーションを自作します

キャンプに似合うイルミネーションを自作します

これまで紹介してきた既製品は、お手頃価格で入手できて光のバリエーションも豊富なので、手軽にテント周りに使いたい方に、おすすめです。

ここからは、なんでも自分で作ってみたくなる自作派の方への紹介です。

私の場合、使い捨て電池はなるべく使いたくありません。

思いたって突然キャンプに行く事が多いので、ソーラー充電方式では、準備不足により充電時間がしっかりと取れなさそうです。

モバイルバッテリーで一晩駆動できて、気分に応じて好みの光り方を選べられるようなイルミネーションを自作してみます。

Arduino とWS2812Bで、イルミネーションを自作する

Arduino とWS2812Bで、イルミネーションを自作する

光り方は、なるべく派手にならずに、しかしペグやガイロープにつまづいてしまう前に注意を引きたいので、マイコン搭載のLEDボードWS2812Bを10個だけ使います。

参考で、WS2812Bが5個の場合の回路図を、Fritzing で作成しました。

テントに使うクリスマス風イルミネーションをArduinoとWS2812Bで自作する

回路図のとおり、WS2812Bを使えば3本の電線だけで、数多くのLEDを自在に光らせることができます。

実際にはWS2812Bを10個を、0.2sq3芯の電線で約1m間隔で直列につないで、合計約10mのイルミネーションコードを作ります。

WS2812Bを10個つないでArduinoで光らせてみた

2個の可変抵抗(ボリューム)は、それぞれ色と光り方をコントロールするために使います。

光り方をコントロールするArduinoはプロジェクトボックスに入れて、モバイルバッテリーを電源にして光らせます。

Arduino とWS2812Bで、好きな光り方のイルミネーションを自作する

最後の仕上げで、電線をつないだWS2812Bのまわりを防水処理します。

当初は、クリスタルレジンと一緒に型に入れて固めようと考えていました。

しかし、狭い角度で発光するLEDの光を適度に拡散させるには、半透明のほうが良さそうです。

最終的に、100円ショップで入手したイルミネーションからシェードボールだけ使うことにしました。

f:id:solocamptouring:20181215174002j:plain
f:id:solocamptouring:20181215173953j:plain

シェードボールにLEDを入れたら、ホットメルトで穴をふさいでおきます。

思いつきに近い仕上げですが、光が拡散されて良い感じで光っています。

youtu.be

ご参考;クリスマス風イルミネーションのサンプルスケッチ

最後に、Arduinoを使って自作したイルミネーションの、スケッチを紹介しておきます。

光り方は、

  1. sinelon;流れ星のような光り方で往復
  2. confetti;ランダムなホタルのような光り方
  3. sinelonWithGlitter;1と2を合わせたもの
  4. allligh;10個全て点灯

の4種類から、5番のアナログピンにつないだ可変抵抗で選択します。

2番のアナログピンにつないだ可変抵抗では、好きな色か、徐々に変わる色かを選択します。

自作LEDイルミネーションで、テントまわりを安全に光らせてみます

スケッチは、GitHubのFastLEDライブラリを使いました。

#include "FastLED.h"
#define DATA_PIN    4
#define LED_TYPE    WS2812
#define COLOR_ORDER GRB
#define HEIGHT 1
#define WIDTH 10
#define NUM_LEDS HEIGHT*WIDTH
CRGB leds[NUM_LEDS];
#define BRIGHTNESS  3

const int sampleWindow = 20; // Sample window width in mS
unsigned int sample;
int colorSelect;
int colorPin = 2;
int selectPin = 5;
int val = 0;
int numLedsToLight = 0;
int numLedsSide = 0;

void setup() {
  delay(3000); //delay for recovery
  FastLED.addLeds<LED_TYPE, DATA_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip);
  FastLED.setBrightness(BRIGHTNESS);
}

// List of patterns to cycle through.  Each is defined as a separate function below.
typedef void (*SimplePatternList[])();
SimplePatternList gPatterns = { sinelon, confetti, sinelonWithGlitter, alllight };

uint8_t gCurrentPatternNumber = 0; // Index number of which pattern is current
uint8_t gHue = 96; // rotating "base color" used by many of the patterns

void loop()
{

  colorSelect = analogRead(colorPin); //check the volume to choose the color
  if (analogRead(colorPin) < 50) {
    colorSelect = 0 ;
  } else if (analogRead(colorPin) < 950) {
    colorSelect = map(analogRead(colorPin), 50, 949, 0, 255) ;
  } else {
    colorSelect = gHue;
  }

  val = analogRead(selectPin); //check the volume to choose the pattern
  if (val < 205) {
    gCurrentPatternNumber = 0;
  } else if (val < 410) {
    gCurrentPatternNumber = 1;
  } else if (val < 615) {
    gCurrentPatternNumber = 2;
  } else if (val < 820) {
    gCurrentPatternNumber = 3;
  } else {
    gCurrentPatternNumber = 0;
  }

  gPatterns[gCurrentPatternNumber](); // Call the current pattern function once, updating the 'leds' array
  FastLED.show();  // send the 'leds' array out to the actual LED strip

  EVERY_N_MILLISECONDS( 300 ) {
    gHue++;  // slowly cycle the "base color" through the rainbow
  }
}

void sinelon()
{
  fadeToBlackBy( leds, NUM_LEDS, 8);
  int pos = beatsin16(13, 0, 9);
  leds[pos] += CHSV( colorSelect, 255, 192);
}


void confetti()
{
  // random colored speckles that blink in and fade smoothly
  fadeToBlackBy( leds, NUM_LEDS, 2);
  int pos = random16(600);
  leds[pos] += CHSV( colorSelect, 255, 192);
}

void sinelonWithGlitter()
{
  // built-in sinelon, plus some random sparkly glitter
  sinelon();
  if ( random8() < 3) {
    leds[ random16(NUM_LEDS) ] += CRGB::White;
  }
}


void alllight()
{
  // all led with color
  fill_solid(leds, NUM_LEDS, CHSV( colorSelect, 255, 192));
}