File tree Expand file tree Collapse file tree 2 files changed +84
-0
lines changed
Circuit_Playground_Bluefruit_Color_Remote Expand file tree Collapse file tree 2 files changed +84
-0
lines changed Original file line number Diff line number Diff line change
1
+ """
2
+ Demonstration of a Bluefruit BLE Central/client. Connects to the first BLE UART peripheral it finds.
3
+ Sends Bluefruit ColorPackets, read from three potentiometers, to the peripheral.
4
+ """
5
+
6
+ import time
7
+
8
+ import board
9
+ from analogio import AnalogIn
10
+
11
+ #from adafruit_bluefruit_connect.packet import Packet
12
+ # Only the packet classes that are imported will be known to Packet.
13
+ from adafruit_bluefruit_connect .color_packet import ColorPacket
14
+
15
+ from adafruit_ble .scanner import Scanner
16
+ from adafruit_ble .uart_client import UARTClient
17
+
18
+ def scale (value ):
19
+ """Scale an value from 0-65535 (AnalogIn range) to 0-255 (RGB range)"""
20
+ return int (value / 65535 * 255 )
21
+
22
+ scanner = Scanner ()
23
+ uart_client = UARTClient ()
24
+
25
+ a3 = AnalogIn (board .A4 )
26
+ a4 = AnalogIn (board .A5 )
27
+ a5 = AnalogIn (board .A6 )
28
+
29
+ while True :
30
+ uart_addresses = []
31
+ # Keep trying to find a UART peripheral
32
+ while not uart_addresses :
33
+ uart_addresses = uart_client .scan (scanner )
34
+ uart_client .connect (uart_addresses [0 ], 5 )
35
+
36
+ while uart_client .connected :
37
+ r = scale (a3 .value )
38
+ g = scale (a4 .value )
39
+ b = scale (a5 .value )
40
+
41
+ color = (r , g , b )
42
+ print (color )
43
+ color_packet = ColorPacket (color )
44
+ try :
45
+ uart_client .write (color_packet .to_bytes ())
46
+ except OSError :
47
+ pass
48
+ time .sleep (0.3 )
Original file line number Diff line number Diff line change
1
+ """
2
+ Used along with cpb_remote_color_client.py. Receives Bluefruit LE ColorPackets from a central,
3
+ and updates NeoPixels to show the history of the received packets.
4
+ """
5
+
6
+ import board
7
+ import neopixel
8
+
9
+ from adafruit_ble .uart_server import UARTServer
10
+ from adafruit_bluefruit_connect .packet import Packet
11
+ # Only the packet classes that are imported will be known to Packet.
12
+ from adafruit_bluefruit_connect .color_packet import ColorPacket
13
+
14
+ uart_server = UARTServer ()
15
+
16
+ NUM_PIXELS = 10
17
+ np = neopixel .NeoPixel (board .NEOPIXEL , NUM_PIXELS , brightness = 0.1 )
18
+ next_pixel = 0
19
+
20
+ def mod (i ):
21
+ """Wrap i to modulus NUM_PIXELS."""
22
+ return i % NUM_PIXELS
23
+
24
+ while True :
25
+ # Advertise when not connected.
26
+ uart_server .start_advertising ()
27
+ while not uart_server .connected :
28
+ pass
29
+
30
+ while uart_server .connected :
31
+ packet = Packet .from_stream (uart_server )
32
+ if isinstance (packet , ColorPacket ):
33
+ print (packet .color )
34
+ np [next_pixel ] = packet .color
35
+ np [mod (next_pixel + 1 )] = (0 , 0 , 0 )
36
+ next_pixel = (next_pixel + 1 ) % NUM_PIXELS
You can’t perform that action at this time.
0 commit comments