Difference between revisions of "BakeBit - LED Bar"

From FriendlyELEC WiKi
Jump to: navigation, search
 
(10 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
[[BakeBit - LED Bar/zh|查看中文]]
 
[[BakeBit - LED Bar/zh|查看中文]]
  
==介绍==
+
==Introduction==
 
[[File:BakeBit - LED Bar.jpg|thumb|LED Bar]]
 
[[File:BakeBit - LED Bar.jpg|thumb|LED Bar]]
*BakeBit - LED-Bar是一个多彩led模块,模块使用了五个内部集成了Ws2812控制芯片的多彩LED,每个LED内部有R、G、B三个发光二极管。Ws2812控制芯片串行读取控制信号,并从中提取出RGB颜色分量,再分别控制R、G、B发光二极管的亮度,混色出不同的色彩。每个像素点的三基色颜色可实现256级亮度显示,总共完成16777216种颜色的全真色彩显示。
+
* The BakeBit - LED-Bar is a multiple-LED module. It has five LEDs and each LED is controlled by a WS2812 chip.
*五个LED串行级联,只需要串行的写入控制信号,五个LED便会发出缤纷斑斓的色彩。
+
* These five LEDs are in series connection.
  
==特性==
+
==Hardware Spec==
* 使用标准的2.0mm 4 Pin BakeBit接口
+
* Standard 2.0mm pitch 4-Pin BakeBit Interface
* 多彩R、G、B LED
+
* Multi-color R, G, B LED
* 全真色彩显示
+
* True Color
 
[[File:BakeBit - LED Bar_PCB.png | frameless|400px|BakeBit - LED Bar]]
 
[[File:BakeBit - LED Bar_PCB.png | frameless|400px|BakeBit - LED Bar]]
  
* 引脚说明:
+
* Pin Description:
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
|名称 || 描述
+
|Pin || Description
 
|-
 
|-
|GND  ||
+
|GND  || Ground
 
|-
 
|-
|5V    || 电源5V
+
|5V    || 5V Supply Voltage
 
|-
 
|-
|NC    ||
+
|NC    || Not Connected
 
|-
 
|-
|SIG  || 信号
+
|SIG  || Signal
 
|}
 
|}
== 示例程序(1):LED Bar ==
 
  
这个项目实现类拟音量调节的效果,用到电位器模块和LED Bar。<br />
+
== Code Sample(1): LED Bar ==
本示例需要配合[[BakeBit - Rotary Angle Sensor]]使用。
+
  
=== 硬件连接 ===
+
By running this code sample users can adjust the LED bar with the rotary angle sensor module.<br />
简单的将 LED Bar 模块插入 D3 接口,将 电位器 插入 A0 接口,如下面这样:
+
A [[BakeBit - Rotary Angle Sensor]] module is needed in this test case.
 +
 
 +
=== Hardware Setup ===
 +
Connect the LED Bar module to the NanoHat Hub's D3 and the rotary angle sensor module to the NanoHat Hub's A0:
  
 
::{| class="wikitable"
 
::{| class="wikitable"
Line 39: Line 40:
 
|}
 
|}
  
=== 示例源代码 ===
+
=== Source Code ===
  
 
<syntaxhighlight lang="python">
 
<syntaxhighlight lang="python">
Line 129: Line 130:
  
  
=== 运行示例 ===
+
=== Run Code Sample ===
 
   
 
   
假设你已经参考[http://wiki.friendlyarm.com/bakebit bakebit教程]安装了BakeBit源代码,<br />
+
Before you run the code sample you need to follow the steps in [http://wiki.friendlyarm.com/bakebit bakebit tutorial] to install the BakeBit package.<br />
要运行示例程序,可以在开发板上进入 BakeBit/Software/Python目录,运行bakebit_prj_LEDBar_And_RotaryAngleSensor.py:
+
Enter the "BakeBit/Software/Python" directory and run the "bakebit_prj_LEDBar_And_RotaryAngleSensor.py" program:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
cd ~/BakeBit/Software/Python
 
cd ~/BakeBit/Software/Python
Line 138: Line 139:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
=== 运行结果 ===
+
=== Observation ===
  
旋转电位器,LED Bar上被点亮的LED个数将根据你的操作角度而进行变化。
+
When you rotate the rotary angle sensor module the LEDs on the LED Bar will be turned on or off.
  
 +
== Code Sample(2): Smart Lighting ==
 +
By running this code sample your system adjusts the LEDs on the LED module according to surrounding lightness. When the surrounding environment becomes darker the LEDs will be brighter. When the surrounding becomes bright enough the LEDs will be completely off.<br />
 +
A [[BakeBit - Light Sensor]] module is needed in this test case. For more details about the light sensor module refer to the [[BakeBit - Light Sensor]] page.
  
== 示例程序(2):Smart Lighting ==
+
==Resources==
该示例利用[[BakeBit - Light Sensor]]亮度传感器,聪明地控制灯光(灯用LED Bar来模拟),环境越暗就让灯越亮,环境亮度足够时,就将灯变暗或者熄灭。<br />
+
该示例是配合[[BakeBit - Light Sensor]]来实现的,可参考[[BakeBit - Light Sensor]]页面。
+
 
+
==相关资料==
+
 
*[Schematic]([http://wiki.friendlyarm.com/wiki/images/0/08/07-SCHEMATIC_LED_Bar.pdf BakeBit - LED Bar.pdf])
 
*[Schematic]([http://wiki.friendlyarm.com/wiki/images/0/08/07-SCHEMATIC_LED_Bar.pdf BakeBit - LED Bar.pdf])
*[BakeBit Github项目](https://github.com/friendlyarm/BakeBit)
+
*[BakeBit Github Project Page](https://github.com/friendlyarm/BakeBit)
*[BakeBit Starter Kit手册](http://wiki.friendlyarm.com/bakebit/bakebit_starter_kit_manual_cn.pdf)
+
*[BakeBit Starter Kit User's manual](http://wiki.friendlyarm.com/bakebit/bakebit_starter_kit_manual_en.pdf)
 +
 
 +
==Update Log==
 +
===December-13-2016===
 +
* Released English Version
 +
 
 +
===Jan-19-2017===
 +
* Renamed "NEO-Hub" to "NanoHat-Hub"
 +
 
 +
===Jan-20-2017===
 +
* Renamed "NanoHat-Hub" to "NanoHat Hub"

Latest revision as of 08:15, 20 January 2017

查看中文

1 Introduction

LED Bar
  • The BakeBit - LED-Bar is a multiple-LED module. It has five LEDs and each LED is controlled by a WS2812 chip.
  • These five LEDs are in series connection.

2 Hardware Spec

  • Standard 2.0mm pitch 4-Pin BakeBit Interface
  • Multi-color R, G, B LED
  • True Color

BakeBit - LED Bar

  • Pin Description:
Pin Description
GND Ground
5V 5V Supply Voltage
NC Not Connected
SIG Signal

3 Code Sample(1): LED Bar

By running this code sample users can adjust the LED bar with the rotary angle sensor module.
A BakeBit - Rotary Angle Sensor module is needed in this test case.

3.1 Hardware Setup

Connect the LED Bar module to the NanoHat Hub's D3 and the rotary angle sensor module to the NanoHat Hub's A0:

LED Bar-1.jpg LED Bar-2.jpg

3.2 Source Code

import time
import bakebit
import random
 
# Connect the BakeBit LED Bar to digital port D3
# DI,DCKI,VCC,GND
ledbar = 3
 
# Connect the BakeBit Rotary Angle Sensor to analog port A0
# SIG,NC,VCC,GND
potentiometer = 0
 
# Reference voltage of ADC is 5v
adc_ref = 5
 
# Vcc of the bakebit interface is normally 5v
bakebit_vcc = 5
 
# Full value of the rotary angle is 360 degrees, as per it's specs (0 to 360)
full_angle = 360
 
bakebit.pinMode(potentiometer,"INPUT")
bakebit.pinMode(ledbar,"OUTPUT")
time.sleep(1)
 
# LED Bar methods
# bakebit.bakeBitLedBar_Init(pin, chipset, numOfLED)
# bakebit.bakeBitLedBar_Release(pin)
# bakebit.bakeBitLedBar_Show(pin,colorHigh,colorLow)
 
bakebit.bakeBitLedBar_Init(ledbar, 0, 5)
time.sleep(.5)
 
old_color = 0
while True:
    try:
        # Read sensor value from potentiometer
        sensor_value = bakebit.analogRead(potentiometer)
 
        # Calculate voltage
        voltage = round((float)(sensor_value) * adc_ref / 1023, 2)
 
        # Calculate rotation in degrees (0 to 360)
        degrees = round((voltage * full_angle) / bakebit_vcc, 2)
        print("sensor_value = %d voltage = %.2f degrees = %.1f" % (sensor_value, voltage, degrees))
 
        color16bit = 0
        if degrees > 0:
            color16bit = color16bit | bakebit.Green
        if degrees > 72:
            color16bit = color16bit | (bakebit.Green<<3)
        if degrees > 144:
            color16bit = color16bit | (bakebit.Green << 6)
        if degrees > 216:
            color16bit = color16bit | (bakebit.Yellow << 9)
        if degrees > 288:
            color16bit = color16bit | (bakebit.Red << 12)
        if degrees == 360:
            color16bit = 0
            color16bit = color16bit | bakebit.Red
            color16bit = color16bit | (bakebit.Red << 3)
            color16bit = color16bit | (bakebit.Red << 6)
            color16bit = color16bit | (bakebit.Red << 9)
            color16bit = color16bit | (bakebit.Red << 12)
 
        if color16bit == old_color:
            continue
        old_color = color16bit
 
        lowBits = color16bit & 255
        highBits = (color16bit & (255<<8))>>8
        print("%s %s" % ('{0:08b}'.format(highBits), '{0:08b}'.format(lowBits)))
        bakebit.bakeBitLedBar_Show(ledbar, highBits, lowBits)
        time.sleep(.2)
 
    except KeyboardInterrupt:
        bakebit.bakeBitLedBar_Release(ledbar)
        time.sleep(.2)
        break
    except IOError:
        print ("Error")

Github


3.3 Run Code Sample

Before you run the code sample you need to follow the steps in bakebit tutorial to install the BakeBit package.
Enter the "BakeBit/Software/Python" directory and run the "bakebit_prj_LEDBar_And_RotaryAngleSensor.py" program:

cd ~/BakeBit/Software/Python
sudo python bakebit_prj_LEDBar_And_RotaryAngleSensor.py

3.4 Observation

When you rotate the rotary angle sensor module the LEDs on the LED Bar will be turned on or off.

4 Code Sample(2): Smart Lighting

By running this code sample your system adjusts the LEDs on the LED module according to surrounding lightness. When the surrounding environment becomes darker the LEDs will be brighter. When the surrounding becomes bright enough the LEDs will be completely off.
A BakeBit - Light Sensor module is needed in this test case. For more details about the light sensor module refer to the BakeBit - Light Sensor page.

5 Resources

6 Update Log

6.1 December-13-2016

  • Released English Version

6.2 Jan-19-2017

  • Renamed "NEO-Hub" to "NanoHat-Hub"

6.3 Jan-20-2017

  • Renamed "NanoHat-Hub" to "NanoHat Hub"