bluefruitconnect_sensors.py
1 # Basic structure example for using the BLE Connect Controller sensors 2 # To use, start this program, and start the Adafruit Bluefruit LE Connect app. 3 # Connect, and then select Controller and enable the sensors 4 5 from adafruit_ble import BLERadio 6 from adafruit_ble.advertising.standard import ProvideServicesAdvertisement 7 from adafruit_ble.services.nordic import UARTService 8 from adafruit_bluefruit_connect.packet import Packet 9 10 # Only the packet classes that are imported will be known to Packet. 11 from adafruit_bluefruit_connect.accelerometer_packet import AccelerometerPacket 12 from adafruit_bluefruit_connect.gyro_packet import GyroPacket 13 from adafruit_bluefruit_connect.location_packet import LocationPacket 14 from adafruit_bluefruit_connect.magnetometer_packet import MagnetometerPacket 15 from adafruit_bluefruit_connect.quaternion_packet import QuaternionPacket 16 17 ble = BLERadio() 18 uart_server = UARTService() 19 advertisement = ProvideServicesAdvertisement(uart_server) 20 21 while True: 22 print("WAITING...") 23 # Advertise when not connected. 24 ble.start_advertising(advertisement) 25 while not ble.connected: 26 pass 27 28 # Connected 29 ble.stop_advertising() 30 print("CONNECTED") 31 32 # Loop and read packets 33 while ble.connected: 34 35 # Keeping trying until a good packet is received 36 try: 37 packet = Packet.from_stream(uart_server) 38 except ValueError: 39 continue 40 41 # Accelerometer 42 if isinstance(packet, AccelerometerPacket): 43 print("Accelerometer:", packet.x, packet.y, packet.z) 44 45 # Gyro 46 if isinstance(packet, GyroPacket): 47 print("Gyro:", packet.x, packet.y, packet.z) 48 49 # Location 50 if isinstance(packet, LocationPacket): 51 print("Location:", packet.latitude, packet.longitude, packet.altitude) 52 53 # Magnetometer 54 if isinstance(packet, MagnetometerPacket): 55 print("Magnetometer", packet.x, packet.y, packet.z) 56 57 # Quaternion 58 if isinstance(packet, QuaternionPacket): 59 print("Quaternion:", packet.x, packet.y, packet.z, packet.w) 60 61 # Disconnected 62 print("DISCONNECTED")