BERU/BELL SEIJIN FROM ULTRASEVEN

PART 4

 

This is a cropped portion of a photo that I found at Booska's ULTOPIA website.
It shows the Beru suit during construction during the '60s and gave me
some insight on how to construct my 1:6 scale project's head.

12/31/17- It's time to digress and procrastinate (not necessarily in that order). I find that even when I do have the time to work on and finish stuff, I tend to procrastinate and find other things to distract me.

Beru/Bell Seijin, 30cm/12

While sculpting it, the design seemed reminiscent of Mephiras Seijin.


 

KAIJU LIGHTING GIMMICKS

What could be more fun than sculpting? Sleeping. Seeing the latest Star Wars movie. Playing around with solder, breadboards, LEDs, and writing about it! (BTW, Happy New Year.)

This topic has relevance for all sort of things besides Japanese monster models, but I've included it in this series of Beru Seijin project articles because that's where it came up.

In my past projects, I've added electronic gimmicks (mainly lighting) as simple on/off circuits, consisting of LEDs, resistors, capacitors, battery, and a switch, because that's the only kind of circuit I knew how to make. That worked fine for things like backlighting eyes and slot car headlights. I've also added circuits kits to models. They were designed by others and did only what they were designed to do. Although they often offered some customizing options (radio controlled tanks, helicopters, and model railroading), I didn't have the electronics or programming know-how to modify their circuitry or software to do different things. The Arduino gave me more control over how a circuit operates.

Due to its "Erector set" approach to electronics, even a rank novice like me can create custom lighting gimmicks that more closely resemble the patterns of those in the Ultraman/Ultraseven monster suits. While I'm only involved with its applications in the realm of a niche interest/hobby, it has enough commercial applications ("Wearable Technology" and "Internet of Things") to have spawned a host of associated products that are both interesting and useful to folks who like to make stuff.

For modeling, the Arduino Uno and other versions are widely used in conjunction with a breadboard as prototyping environments. You assemble the resistors, LEDs, jumpers, etc. on the breadboard, and write programs to tell the Arduino microcontroller what to do.

Most boards are too big (Arduino Uno: ~2.25" x 2.75") and overkill to use in a figure/doll project. However, compact versions like DFRobot's Beetle (~1" x .75") fit in small projects, and include a subset of the most useful features of the larger size board. So you can develop the circuitry and programming in the development environment, then load the code in the Beetle and hard-wire the electrical components to the circuit board. It's sort of like a poor man's version of a custom-designed Integrated Circuit.

I'm very new to this and don't know how to program in C, so I've only customized simple variations of others' creations. Fortunately, lighting is one of the simplest things you can do with the technology. I've included the lighting code ("sketch") that I borrowed and modified for my current project, "Beru Seijin", and for "King Joe" (both monsters from Ultraseven).

Beru Seijin Lighting: This is 3 pairs of lights that fade in and out on different cycles. Because the cycle of each pair is different (by using different brightness thresholds and the fade amount), sometimes they're all on at the same time, and then drift out of sync. I didn't measure the exact timing of each set of lights on the suit because I was satisfied with modeling the general look.

The pins were selected so that the sketch worked on both the Arduino Uno and the DFRobot Beetle. (You have to use PWM digital pins so you can vary the brightness.)

Here's the sketch (video is on the next page of this article):

/*
  beru.seijin.Fade3

  This example shows how to fade 3 LEDs on pins 9, 10, 11 
  using the analogWrite() function.

  The analogWrite() function uses PWM, so if you want to change the pin you're
  using, be sure to use another PWM capable pin. On most Arduino, the PWM pins
  are identified with a "~" sign, like ~3, ~5, ~6, ~9, ~10 and ~11.

  This example code is in the public domain.

  http://www.arduino.cc/en/Tutorial/Fade
*/

int led = 9;           // the PWM pin the 1st LED pair is attached to
int led1 = 10;           // the PWM pin the 2nd LED pair is attached to
int led2 = 11;           // the PWM pin the 3rd LED pair is attached to
int brightness = 0;    // how bright 1st LED pair is
int fadeAmount = 14;    // how many points to fade the 1st LED pair by
int brightness1 = 0;    // how bright the 2nd LED pair is
int fadeAmount1 = 12;    // how many points to fade the 2nd LED pair by
int brightness2= 0;    // how bright the 3rd LED pair is
int fadeAmount2 = 1;    // how many points to fade the 3rd LED pair by

// the setup routine runs once when you press reset:
void setup() {
  pinMode(led, OUTPUT);  // declare pin 9 to be an output
  pinMode(led1, OUTPUT);  // declare pin 10 to be an output
  pinMode(led2, OUTPUT);  // declare pin 11 to be an output
}

// the loop routine runs over and over again forever:
void loop() {
  analogWrite(led, brightness);   // set the brightness of pin 9
  
  // change the brightness for next time through the loop:
  brightness = brightness + fadeAmount;
  
  // reverse the direction of the fading at the ends of the fade:
  if (brightness <= 0 || brightness >= 245) {
    fadeAmount = -fadeAmount;
  }

  analogWrite(led1, brightness1);  // set the brightness of pin 10
  
  // change the brightness for next time through the loop:
  brightness1 = brightness1 + fadeAmount1;

  // reverse the direction of the fading at the ends of the fade:
  if (brightness1 <= 0 || brightness1 >= 235) {
    fadeAmount1 = -fadeAmount1;    
  }

  analogWrite(led2, brightness2);    // set the brightness of pin 11

  // change the brightness for next time through the loop:
  brightness2 = brightness2 + fadeAmount2;

  // reverse the direction of the fading at the ends of the fade:
  if (brightness2 <= 0 || brightness2 >= 40) {
    fadeAmount2 = -fadeAmount2;    
  }
  // wait for 30 milliseconds to see the dimming effect
  delay(80);
}


King Joe Lighting: A long time ago, I added a "Larson/Cylon" LED sweep circuit kit to my Banpresto King Joe. I thought it looked cool, but it wasn't what the actual suit did. Recently, I added Dale Wheat's TinyCylon circuit to my Medicom Zetton; this had several modes, which let me model the single direction upward sweep of the actual suit's lighting.

With the DFRobot Beetle, I was able to duplicate the single direction sweep using 5 LEDs in two rows, arranged opposite to each other. This looks like two lights chasing each other in an oval pattern, just like the actual suit.

Because I had a spare PWM pin (9), I was able to insert a Fade effect for the chest lighting. This is on a different cycle than the sweep, so the most obvious way to do this was to insert multiple repetitions of the Fade code within the loop and dickering with the brightness threshold and fadeAmount value.

The pin assignments had to be changed from the Arduino Uno sketch and the Beetle sketch (The Beetle is based on the Arduino Leonardo).

Here's the sketch:

/*
Arduno 5 x 2 LEDs chasing in 1 direction, similar to "King Joe" visor of "Ultraseven"
Leonardo/Beetle PinMode version, pins 2, 3, A0, A1, A2 + pin9 pwm
Two rows of 5 LEDs wired in parallel going opposite directions, appears to go in a circular pattern.
Pin 9  pwm fades chest lights on and off at a  slower rate 
Based on Blink and Fade examples, modified by jbw 2017
*/
int led2 = 2;
int led3 = 3;
int led4 = A0;
int led5 = A1;
int led6 = A2;
int del = 170;
int led9 = 9; //pwm
int brightness9 = 0;    // how bright the LED is
int fadeAmount9 = 12;    // how many points to fade the LED by
int maxbright9=250;

void setup() {
  // initialize digital pin LEDs as output.
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
  pinMode(led5, OUTPUT);
  pinMode(led6, OUTPUT);
  pinMode(led9, OUTPUT);  
}

void loop() {

  analogWrite(led9, brightness9);   // set the brightness of pin 9
  // change the brightness for next time through the loop:  
  brightness9 = brightness9 + fadeAmount9;
  // reverse the direction of the fading at the ends of the fade:  
  if (brightness9 <= 0 || brightness9 >= maxbright9) {
    fadeAmount9 = -fadeAmount9;
  }        
  digitalWrite(led6, HIGH);  // turn the first LED on (HIGH is the voltage level)
  delay(del);                        // wait
  
  analogWrite(led9, brightness9);
  brightness9 = brightness9 + fadeAmount9;
  if (brightness9 <= 0 || brightness9 >= maxbright9) {
    fadeAmount9 = -fadeAmount9;
  }  
  digitalWrite(led5, HIGH);   // turn next LED on
  digitalWrite(led6, LOW);   // turn the first LED off by making the voltage LOW
  delay(del);
  
  analogWrite(led9, brightness9);
  brightness9 = brightness9 + fadeAmount9;
  if (brightness9 <= 0 || brightness9 >= maxbright9) { 
    fadeAmount9 = -fadeAmount9;
  }
  digitalWrite(led4, HIGH);  
  digitalWrite(led5, LOW);
  
  analogWrite(led9, brightness9);
  brightness9 = brightness9 + fadeAmount9;
  if (brightness9 <= 0 || brightness9 >= maxbright9) { 
    fadeAmount9 = -fadeAmount9;
  }            
  delay(del);
  
  analogWrite(led9, brightness9);
  brightness9 = brightness9 + fadeAmount9;
  if (brightness9 <= 0 || brightness9 >= maxbright9) {
    fadeAmount9 = -fadeAmount9;
  } 
  digitalWrite(led3, HIGH);  
  digitalWrite(led4, LOW); 
  delay(del);
  
  analogWrite(led9, brightness9);
  brightness9 = brightness9 + fadeAmount9;
  if (brightness9 <= 0 || brightness9 >= maxbright9) {
    fadeAmount9 = -fadeAmount9;
  } 
  digitalWrite(led2, HIGH);  
  digitalWrite(led3, LOW);
  delay(del); 
  digitalWrite(led2, LOW);
}


 

NEXT: A NEW YEAR

 

PREV    NEXT
DAIKAIJU INDEX