Skip to content

Commit e4427a0

Browse files
authored
Merge pull request adafruit#1285 from adafruit/claw
Adding candy claw code
2 parents 9dd5e88 + ce1a47f commit e4427a0

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

BLE_Candy_Claw/code.py

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
import time
2+
import board
3+
import pulseio
4+
from adafruit_motor import servo
5+
from adafruit_bluefruit_connect.packet import Packet
6+
from adafruit_bluefruit_connect.button_packet import ButtonPacket
7+
from adafruit_ble import BLERadio
8+
from adafruit_ble.advertising.standard import ProvideServicesAdvertisement
9+
from adafruit_ble.services.nordic import UARTService
10+
11+
ble = BLERadio()
12+
uart = UARTService()
13+
advertisement = ProvideServicesAdvertisement(uart)
14+
15+
pwm = pulseio.PWMOut(board.A3, duty_cycle=2 ** 15, frequency=50)
16+
17+
my_servo = servo.Servo(pwm)
18+
19+
while True:
20+
print("WAITING...")
21+
# Advertise when not connected.
22+
ble.start_advertising(advertisement)
23+
while not ble.connected:
24+
pass
25+
26+
# Connected
27+
ble.stop_advertising()
28+
print("CONNECTED")
29+
30+
# Loop and read packets
31+
while ble.connected:
32+
if uart.in_waiting:
33+
packet = Packet.from_stream(uart)
34+
if isinstance(packet, ButtonPacket):
35+
# if buttons in the app are pressed
36+
if packet.pressed:
37+
if packet.button == ButtonPacket.DOWN:
38+
print("pressed down")
39+
for angle in range(90, 170, 90): # 90 - 170 degrees, 90 degrees at a time.
40+
my_servo.angle = angle
41+
time.sleep(0.05)
42+
if packet.button == ButtonPacket.UP:
43+
print("pressed up")
44+
for angle in range(170, 90, -90): # 170 - 90 degrees, 9 degrees at a time.
45+
my_servo.angle = angle
46+
time.sleep(0.05)
47+
# Disconnected
48+
print("DISCONNECTED")

0 commit comments

Comments
 (0)