-
ProgrammingGo
Hi,
I am checking the code on BLE see herebhttp://omz-software.com/pythonista/docs/ios/cb.html where the TI SensorTag is used and I saw that there is a did_disconnect_periperal function which is called in a case the SensorTag is disconnecting. My idea was that as soon as one of the TI Sensortags is disconnecting, that inside this function I am trying to reconnect the node again. I tried to re-connect it by calling cb.connect_peripheral(p) inside did_disconnect_peripheral and it connects the node , but it does not look like that it is going through the other functions to re-discover the services and characteristics because I am not receiving any values anymore.
My question is if there is a way to have a recursive function that as soon as one TI SensorTag is losing connecting it facilitates the reconnection of it ?
-
ProgrammingGo
I tried like that:
def did_discover_peripheral(self, p): if p.name and 'Polar' in p.name and not self.peripheral: self.peripheral = p print('Connecting to heart rate monitor...') cb.connect_peripheral(p) CBCentralManager = objc_util.ObjCClass('CBCentralManager') cb_manager = CBCentralManager.alloc().init() print(cb_manager.retrieveConnectedPeripherals())
but I not get anything out from it. Only connecting to heart rate monitor
-
ProgrammingGo
Hi mikael,
I tried it out but I am getting the error message "no Objective-c class named"CBCentralManager"WHat I am doing wrong?
-
ProgrammingGo
I found in the cb module description a similar function, but is it object-related : cb.cancel_peripheral_connection(peripheral)
and in the keyboard interrupt I do not have the reference to the peripheral object, see example which I am using from the documentation -
ProgrammingGo
Hi mikael,
I was trying but it did not work out. Should I exchange it with the cb.reset() for the delegate where the following code is??
try: while True: pass except KeyboardInterrupt: cb.reset()
-
ProgrammingGo
Hi mikael,
thank you for your response. Where should I integrate this code? should it be in the did_disconnect function of the example, or should I run this code as standalone?
-
ProgrammingGo
Hi,
I am using an Arduino 33 Nano Ble which has BLE functionality. So I was looking on the examples given in Pythonista how to use the cb module to connect to a BLE device.
Everything is clear and I am able to connect over Pythonista that is running on my iPad to the Arduino board. For the beginning, I used the example code here which I adapted slightly: http://omz-software.com/pythonista/docs/ios/cb.html
I have only one problem, when I am disconnecting from Bluetooth (pressing the x button in Pythonista) the app tells me that the board is disconnected, but the Arduino keeps still the Bluetooth connection alive. I tried it with an BLE app (LightBlue) from the Appstore and I am not having this problem. Do you know how I could solve it?
I have the feeling that the did_disconnect callback does not work good.
Can you give me some suggestions? -
ProgrammingGo
Hi I have a question based on the Bluetooth communication between Ti Sensortags and Pythonista.
Since I can send only max 20Bytes per packets with the sensor tag, I gave a look in the firmware of the Boards and there was a way to increase the MTU Size what I apparently did. --> This is the link of Ti where it was described: https://e2e.ti.com/support/wireless-connectivity/bluetooth/f/538/t/885399But how they are describing there I need an MTU exchange request. It means not only the Sensortag needs to have this but as well the phone. I tried it but I cannot receive the extended data package. Do you know how to do it on the iPhone with pythonista?
-
ProgrammingGo
okay, I will give a trial. What for me is unclear is how I can map the sensor values to the graphic. I mean I know that I have a referential coordinate system and based on that my sensor is moving, but it is not clear how to do it.
-
ProgrammingGo
@cvp Hi cvp thank you soo much. I will give a look on that. Thank you for your time. If I will have questions I will write here. I am thinking that it would be better to use quaternions instead of euler angler to avoid gimbal lock. I think there should be a lib for that, right?
-
ProgrammingGo
Hi guys, thank you soo much for your support. I need some time to go through the code, because I want to understand it. Thank you soo much and don't worry @cvp it is perfectly okay.
-
ProgrammingGo
Okay thank you soo much! Could I display human body as well?
-
ProgrammingGo
I know how to get the data, the problem is how to do the animation. Or what do you mean by problem with the data?
-
ProgrammingGo
Hi thank you for your feedback,
I want to depict a cube that is moving based on the incoming data from the wearable sensor. Maybe I could use Euler angles and Quaternions. I think it should be 3d. An example of something similar to that I want to do is this video: link text -
ProgrammingGo
Hi,
I wanted to ask if they are any examples of how to make up an animation moving based on incoming orientation data that is sent via Bluetooth from a wearable sensor?
I tried to use pygame but it did not work? I checked scene but it looks like it is not the right one.
-
ProgrammingGo
Hi,
I am using several CC2650 STK and I wanted to use kafka (producer and consumer) for data stream processing. I was trying to integrate the producer and consumer in the app, but it seems to me that I need to use threads to use Producer and Consumer simultaneously in the same app to be able to sending data to kafka and listening for answers. I was trying to separately implement them (two different apps) and it worked, but bundle them together I need to use threads. My problem is that looking at the given Sensortag example a delegate is used, so creating to classes and use threading is not working. Do you know how I can get solve the problem?
-
ProgrammingGo
Hi, I tried out to set up 16g range to the accelerometer, activating only accelerometer with range of 16g like the following: bytes([0b00111000, 0b00000011] and the to convert the raw data I used the formula stated in the wiki of TI: http://processors.wiki.ti.com/index.php/CC2650_SensorTag_User's_Guide#Movement_Sensor
---> v = (raw(data * 1.0) / (32768/16) for every axes and the output seems to be not right because in static position I get the following values for x, y, z: 1.9414, 0.0786, 0.225. Normally the first value(x) should be around 0.981. When I am changing the configuration to bytes([0b00111000, 0b00000010] which should be 8G range and use the following formula: v = (raw(data * 1.0) / (32768/8) then seems to be correct and in static position I have following values: 0.920 , 0.005, 0.200. Do you know what is the problem? I checked the formula and the settings but it should be right. The problem is well known, but not solved , See here: https://evothings.com/forum/viewtopic.php?t=1875
-
ProgrammingGo
@JonB yes you are right, the alternative is quite nice and there is this Serial number string, but when Iam reading it out it says N.A ---> not available and it seems to be the same for every sensor
-
ProgrammingGo
@JonB , hi :). How do you mean making up my own uuid?
-
ProgrammingGo
@ccc Hi , I looked for that and it seems to be that randomly it will make up a device uuid. But my target is that I want a fix uuid which I can use with all types of smartphones.
See here what TI says: https://e2e.ti.com/support/wireless-connectivity/bluetooth/f/538/p/277511/989118and here : https://e2e.ti.com/support/wireless-connectivity/bluetooth/f/538/t/481652
So does it mean I can choose all of the uuid types? But the difference is not clear between them?