Difference between revisions of "BakeBit - LED Bar"
From FriendlyELEC WiKi
(→特性) |
(→示例程序(1):LED Bar) |
||
Line 26: | Line 26: | ||
|} | |} | ||
− | == | + | == Code Sample(1): LED Bar == |
− | + | By running this code sample users can adjust the LED bar with the rotary angle sensor module.<br /> | |
− | + | A [[BakeBit - Rotary Angle Sensor]] module is needed in this test case. | |
− | === | + | === Hardware Connection === |
− | + | Connect the LED Bar module to the NEO-Hub at D3 and the rotary angle sensor module to the NEO-Hub at A0: | |
::{| class="wikitable" | ::{| class="wikitable" | ||
Line 40: | Line 40: | ||
|} | |} | ||
− | === | + | === Source Code === |
<syntaxhighlight lang="python"> | <syntaxhighlight lang="python"> | ||
Line 130: | Line 130: | ||
− | === | + | === Run Code Sample === |
− | + | Before you run the code sample you need to follow the steps in [http://wiki.friendlyarm.com/bakebit bakebit tutorial] to intall the BakeBit package.<br /> | |
− | + | 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 139: | Line 139: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | === | + | === Observation === |
− | + | ||
− | + | ||
+ | When you rotate the rotary angle sensor module the LEDs on the LED Bar will be turned on or off. | ||
== 示例程序(2):Smart Lighting == | == 示例程序(2):Smart Lighting == |
Revision as of 08:36, 13 December 2016
Contents
1 Introduction
- 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
- 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 Connection
Connect the LED Bar module to the NEO-Hub at D3 and the rotary angle sensor module to the NEO-Hub at A0:
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")
3.3 Run Code Sample
Before you run the code sample you need to follow the steps in bakebit tutorial to intall 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 示例程序(2):Smart Lighting
该示例利用BakeBit - Light Sensor亮度传感器,聪明地控制灯光(灯用LED Bar来模拟),环境越暗就让灯越亮,环境亮度足够时,就将灯变暗或者熄灭。
该示例是配合BakeBit - Light Sensor来实现的,可参考BakeBit - Light Sensor页面。
5 相关资料
- [Schematic](BakeBit - LED Bar.pdf)
- [BakeBit Github项目](https://github.com/friendlyarm/BakeBit)
- [BakeBit Starter Kit手册](http://wiki.friendlyarm.com/bakebit/bakebit_starter_kit_manual_cn.pdf)