Using multiple 9AXIS IMU TinyShield

Tacca

  • Jr. Member
  • **
    • Posts: 5
    • View Profile
Hello,

I am pretty new into the arduino and circuits world, and after doing some research I ended up here, strongly believing that tinycircuits might be the way for me.

I want to get data from multiple IMU's fixed at some body parts, I want these data timestamped/synced and collected on the go (like being feeded to a smartphone)...

My question is, am I able to stack multiple (3 or more) 9AXIS IMU shields together with a single TinyZero unit?

First idea was 1 TinyZero + 9AXIS + ExtenderCable + 9AXIS  + ExtenderCable + 9AXIS...
The data would be streamed via cable from the TinyZero to the Smartphone, and the energy source would be this too.

The second idea is a bit more expensive, a group of [1 TinyZero (lithium battery) + BLE + 9AXIS] per body part, so, 3 or more of each, then I would get all them via android app and figure out how to connect to multiple devices and sync the data from the multiple devices.

So before I spending quite a good amount in these circuits, is it possible? Is there a better way to achieve this?
If so, Is there any public projects near this that I can dig in?

Thank you very much.


lennevia

  • Administrator
  • Hero Member
  • *****
    • Posts: 115
    • View Profile
Hello Tacca,

We are actually about to come out with a Kickstarter that would allow you to use multiple 9-Axis sensors in a smaller and cheaper format that takes care of any addressing conflicts you would run into by stacking multiple 9-Axis TinyShields. They also have different sized cables that work well with having sensors on different parts of the body.

I would recommend signing up for the TinyCircuits newsletter so that you can see when our new line of boards come out. The format of the line of Whisker sensors would work perfectly for this application!

Best regards,
Laveréna Wienclaw



Tacca

  • Jr. Member
  • **
    • Posts: 5
    • View Profile
Hello Tacca,

We are actually about to come out with a Kickstarter that would allow you to use multiple 9-Axis sensors in a smaller and cheaper format that takes care of any addressing conflicts you would run into by stacking multiple 9-Axis TinyShields. They also have different sized cables that work well with having sensors on different parts of the body.

I would recommend signing up for the TinyCircuits newsletter so that you can see when our new line of boards come out. The format of the line of Whisker sensors would work perfectly for this application!

Best regards,
Laveréna Wienclaw

Hello Laveréna,

I will subscribe and I am looking forward to see this new project.
And depending on the mobility and depth that this Whisker sensor can provide, it would definitely help my master's project thesis.
Unfortunately, since it's not even on Kickstarter yet, I think it won't arrive in time for me to use it in my research, but who knows right.

Thank you.


lennevia

  • Administrator
  • Hero Member
  • *****
    • Posts: 115
    • View Profile
Tacca,

The Kickstarter will start in September and we project to ship in November if that helps! If you email info@tinycircuits.com we may be able to work something out to rush a few!

Thank you,

Laveréna


polar96

  • Newbie
  • *
    • Posts: 2
    • View Profile
Hi, I am also working on a similar project to the second idea. The purpose is to monitor the motion of different body parts during exercise.

I have already purchased the individual components (1 Tinyzero board + 9 axis IMU shield + Bluetooth Low Energy TinyShield) and assembled 4 sets to be used on 4 different body parts concurrently. Are there any codes to program them to be connected concurrently to the android app and sync data in real time to the app.

Alternatively, is it possible to do a master and slave system, where one of the device is the master and the other devices are slaves. The master receives the sensor data from the other slave devices and sends it to the app in real time.

Are there any resources for this? Need help with the coding

Thanks!


lennevia

  • Administrator
  • Hero Member
  • *****
    • Posts: 115
    • View Profile
polar96,

We do not have any formal documentation on the process or formal examples posted on our website, but I did manage to find some examples we developed in the past in the hopes of releasing them on our site at some point.

These examples will be a good place to start for pairing Bluetooth devices together, but will by no means fulfill all of your project desires - the 9-Axis data transmission will need to be added by you. Please keep in mind that these examples are unpublished due to limited testing. There might be bugs to solve, but I was able to use the programs and two ST BLE stacks to communicate with each other using TinyZero processors. (To test for yourself, you'll just need to open two different Arduino IDEs/serial monitors and plug two stacks into your computer with the different programs uploaded on the different stacks)

The blueNRGUARTPassThrough example is similar to what you already have available from our site but improved in some ways. This code will work for your non-central Bluetooth device.

The blueNRGCentralSenderNew example should be used on the Bluetooth module you want to be your central device.

When the code is uploaded to each correctly, you should be able to open the Serial Monitor and see the modules say “Hello!” to each other with timestamps.

This should be a good starting point for you.

Thanks,

Laveréna


polar96

  • Newbie
  • *
    • Posts: 2
    • View Profile
Hi Laveréna, thank you for the swift response! I have tested out the codes and it works! Would you be able to advise if a master is able to be paired to multiple slave devices (>3) and receive data from the connected slave devices concurrently? Or is it limited to only a 1-1 pairing between a master and slave? Will there be any conflict when the master tries to receive data from all the slave devices at one go? Thank you.


lennevia

  • Administrator
  • Hero Member
  • *****
    • Posts: 115
    • View Profile
The master (central) device can communicate with multiple slave (peripheral) devices, but the central is limited to talking to one peripheral at a time with the way the software is currently written. I tested this and have a picture attached with some colors so that you can see how it looks.

If you need data at the same time, I might recommend pairing the 9-Axis data with a timestamp so that you can get all the data you need at those specific time points, but there might be an easier solution!

It is true that BLE 4.1 is able to support concurrent data between multiple peripherals - but the software is rather complex and there is usually an easier solution in many Arduino situations, so this is why you will not often see the above method pursued.

I would recommend using your phone as the central device and then having the 4 BLE/9-Axis stacks as the peripherals. Depending on your phone's Bluetooth, I believe there will be enough resources online to make this method easier than needing to develop a Bluetooth library for Arduino.

I cannot help much on the Android side of things, but I hope that helps point you in the right direction!

Thanks,
Laveréna
« Last Edit: October 16, 2020, 11:47:54 AM by lennevia »


 

SMF spam blocked by CleanTalk