Giter Site home page Giter Site logo

berryimu's Introduction

berryimu's People

Contributors

clarkebowers avatar mwilliams03 avatar peterp-ozzmaker avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

berryimu's Issues

Erroneous Arduino values

While I may just be misunderstanding entirely, I would expect the Arduino code to spit out degrees between 0-360. When running on the GPS-IMU V2 I get:

#AccX	0.96	###  AccY  -88.85  ###  GyrX	41642.30  ###  GyrY  	2140885.00   ###  GyrZ	44169.29     ######    CFangleX	3.62   ######  CFangleY   	2874.74   ######  heading   	2.94    --Loop Time--	20
#AccX	0.70	###  AccY  -88.86  ###  GyrX	41642.38  ###  GyrY  	2140976.75   ###  GyrZ	44169.33     ######    CFangleX	3.62   ######  CFangleY   	2874.74   ######  heading   	2.75    --Loop Time--	20
#AccX	1.01	###  AccY  -88.86  ###  GyrX	41642.47  ###  GyrY  	2141068.50   ###  GyrZ	44169.37     ######    CFangleX	3.62   ######  CFangleY   	2874.73   ######  heading   	2.53    --Loop Time--	20
#AccX	0.75	###  AccY  -88.86  ###  GyrX	41642.56  ###  GyrY  	2141160.25   ###  GyrZ	44169.42     ######    CFangleX	3.62   ######  CFangleY   	2874.73   ######  heading   	2.54    --Loop Time--	20
#AccX	0.78	###  AccY  -88.84  ###  GyrX	41642.64  ###  GyrY  	2141252.00   ###  GyrZ	44169.46     ######    CFangleX	3.61   ######  CFangleY   	2874.72   ######  heading   	2.57    --Loop Time--	20
#AccX	0.78	###  AccY  -88.85  ###  GyrX	41642.72  ###  GyrY  	2141343.75   ###  GyrZ	44169.50     ######    CFangleX	3.61   ######  CFangleY   	2874.72   ######  heading   	2.54    --Loop Time--	20
#AccX	0.79	###  AccY  -88.86  ###  GyrX	41642.81  ###  GyrY  	2141435.50   ###  GyrZ	44169.55     ######    CFangleX	3.61   ######  CFangleY   	2874.72   ######  heading   	3.06    --Loop Time--	20

So the heading seems fine, I don't know what's going on with the rest of it.

Compile Error

I am currently trying to work my way through the tutorials, however, I can't get the three tutorials to compile due to various errors. The first and the third have errors where I2C_SMBUS_BLOCK_MAX is undeclared while the second one can't find the directory for "SDL.h". Is there anything that I might be missing here? Thank you

.pfx password

Please I need the password for the .pfx file in WindowsIoT-BerryIMU to deploy my project

Severity Code Description Project File Line Suppression State
Warning Certificate file 'L3G4200D_TemporaryKey.pfx' not found.
WindowsIoT-BerryIMU

Missing catch-all LICENSE file

The code in this repository is lacks a license, making it difficult to use in other projects. Some files mention that you can do whatever you like with the code, but it's unclear where files that lack such a statement fall (e.g., LSM9DS1.h).

Type Conversion error in base code for ArduinoBerryIMUv3

Copy pasted folder from https://github.com/ozzmaker/BerryIMU/tree/master/arduino-BerryIMU and ran it and faced this issue. No changes were made in the code. Error below:

C:\Users\F\arduino-BerryIMU\IMU.cpp: In function 'void enableIMU()':
C:\Users\F\arduino-BerryIMU\IMU.cpp:52:59: warning: invalid conversion from 'byte {aka unsigned char}' to 'byte* {aka unsigned char*}' [-fpermissive]
readFrom(LSM6DSL_ADDRESS,LIS3MDL_CTRL_REG3,1, temp);
^
C:\Users\F\arduino-BerryIMU\IMU.cpp:20:6: note: initializing argument 4 of 'void readFrom(int, byte, int, byte*)'
void readFrom(int device, byte address, int num, byte buff[]) {

XP and YP purpose in python-gyro-accel-compass example?

Hi, reading your code, it's not clear to me what is the purpose of these two parameters, are strictly related to kalmanFilterX and kalmanFilterY respectively? or they just dont depend on which angle you're considering? in this case why XPs parameters are never used? they have been only declared?

used this with MPU9250, modified accordingly and works but issue with heading

Hello there, first of all thank you so much for this amazing work! you are a life saver.

I used this and modified to get the readings from MPU9250. Accel works as expected, I was expecting the gyro to read similar magnitudes as the accel but the magnitudes are way smaller, even if I tilt the sensor -90Deg in the Y axis , the gyro measures only approx -6., but the accel measures approx -90. I thought the code was turning gyro information in Degrees? The accel in X goes crazy but i dont know if that is an expected reading.

Accel in X= 146.01047352241366
Accel in Y= -94.48802755114491 ##this is when i rotated the sensor to the left 90 deg approx
GyroX = 0.0958970146179199
GyroY = -6.615839959945679 ## shouldn't this be same reading as accel in Y?
GyroZ = 0.010706434631347735
Heading = 0.4136347527893839
Compensated Heading = -496.89575038831293

And lastly, as you can see the heading is not responding well...
If i rotate the sensor 180 deg, it goes from approx 25-> 0 -> 40 as i rotate...

I know im asking a lot, but if you have the time to reply would be amazing. Thank you so much!

tried running the python LSM9DS0-gyro-accel-compass

sudo python berryIMU.py
Result:
"Traceback (most recent call last):
File "berryIMU.py", line 126, in
writeACC(CTRL_REG1_XM, 0b01100111) #z,y,x axis enabled, continuos update, 100Hz data rate
File "berryIMU.py", line 38, in writeACC
bus.write_byte_data(ACC_ADDRESS , register, value)
IOError: [Errno 5] Input/output error"

my run of "sudo /usr/sbin/i2cdetect -y 1" resulted:
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- UU -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- UU -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

and of "sudo /usr/sbin/i2cdetect -y 0" resulted in:
Error: Could not open file /dev/i2c-0' or/dev/i2c/0': No such file or directory

Have i done something wrong? thank you!

Heading in Arduino is not correct before/and after calibration

I use use GPS-IMU V2 and when compile and run code from repository for heading i do not receive a real values.
Values that receive from sensors are before and after calibration (use calibration code from git) are [from ~30 to ~200] for 0-360 degree rotation.

Anybody with some solution for that ?

Berry_GPS

I might not have found it, but why not write a python script to facilitate serial capture of GPS and parsing of NMEA? The tutorials I found on ozzmaker talked a lot about different ways to see the serial output or store to file via command line, but that's not entirely useful for most applications. If this is something you would appreciate, I will be writing it for myself and I can merge it with you guys. Otherwise this board is awesome!

I2C_SMBUS_BLOCK_MAX

sensor.c:121:14: error: ‘I2C_SMBUS_BLOCK_MAX’ undeclared (first use in this function) while compiling gyro_accelerometer_tutorial01.c

Plans to support v4?

I noticed the code as is currently supports v3, 2, and 1. Are there plans to support v4? Are there some config changes or small tweaks that can make the code support v4?

Missing license for bmp280.py

I notice that many of the other files in this repo have a GPL license, but bmpy280.py (the only file I want to directly reuse, as it happens) had no license listed.

BerryGPS-IMU v4 "python-BerryIMU-gyro-accel-compass"

I am new at this so after reading and going through the tutorials and trying out the sample python code (/python-BerryIMU-gyro-accel-compass/berryIMU.py), I'm not seeing this as a usable compass. The values are off, even with calibration. And the calibration values change each time you run the calibration script anyway. The heading values even change for the same orientation if you continue to rotate the device. I can't even tell you which direction is "forward" on the unit because the values don't match any compass direction. And there is no tilt compensation even though there seems to be tilt compensation correction in the code.

So my question is, has anyone ever gotten this thing to behave like a real functioning compass like you have on a smart phone or is this unit not capable of doing it? Again, I am not an expert in this area.

Wrong register assignment in LSM6DSL.py

I believe the register address assigned in LSM6DSL.py (at least the one in the SPI example) on line 7. It assignes the same register address as line 6. Those being control registers, it renders any settings in-code incorrect, such as ODR.. The correct address for CTRL1_XL is 0x10, as in the file, but for CTRL8_XL it should be 0x17.

Usage of Wire library.

The Wire.requestFrom() should not be used in combination with Wire.beginTransmission() or Wire.endTransmission().
Explanation: Common-mistakes, number 2 and 3.
See also my alternative explanation of the functions of the Wire library.

I found the issue in the readFrom() function in:

  • BerryIMU/arduino-BerryIMU/IMU.cpp
  • BerryIMU/ESP8266-BerryIMU/BerryIMU_ESP8266_Graph_Temperature/bmp180.cpp
  • BerryIMU/Teensy-BerryIMU/Teensy3.6.BerryIMU/Teensy3.6.BerryIMU.ino
  • BerryIMU/ESP8266-BerryIMU/BerryIMU_ESP8266_simple_web/BerryIMU_ESP8266_simple_web.ino

Correct Y readings with X==90 degrees?

When I run the code from python-BerryIMU-gryo-accel-compass/berryIMU.py and tilt the BerryIMU 90 degrees to the right I would expect Y to be around 0, but instead it goes to about 100.

I asked a question about this behaviour on robotics.stackexchange, and the answer I got was that the problem was "estimating angles in regions of instability" in which they suggest to "modify unstable equations".

Can you confirm that this is the problem I'm having? Furthermore, I'm kinda lost in the maths they present, but do you have a suggestion how to incorporate this in your code?

Units of raw accelerometer

Hi,

I've just received the awesome board and I'm playing around with it. Could you tell me what the unit of the return value is for the following function:
def readACCx():
acc_l = bus.read_byte_data(ACC_ADDRESS, OUT_X_L_A)
acc_h = bus.read_byte_data(ACC_ADDRESS, OUT_X_H_A)
acc_combined = (acc_l | acc_h <<8)
return acc_combined if acc_combined < 32768 else acc_combined - 65536

is it g or mg or something else ?

NO IMU DETECTED (BerryGPS-IMU v4) w/ inclinometer

I got the output working for tutorial01 basic accel/gyro angles, but moving on to the 2nd tutorial regarding the inclinometer, when running the compiled program, i get "NO IMU DETECTED" and upon looking at the documentation, it looks like only v1 and v2 are supported with this code?

I even tried copying my header files from the tutorial01 into the tutorial02 folder but no luck (though at least I did get "BerryIMUv3 detected". It looked like it was starting to want to run the same "spit angles into the command window" code from the tutorial01.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.