-
Copyright notice for libs used in my project
08/19/2014 at 16:39 • 0 commentsI am author of mechanical and electrical design and author of majority of source code.
I used following libraries with corresponding licenses:
- STM32F4xx HAL Drivers - Redistribution and use in source and binary forms, with or without modification, are permitted provided that the some conditions are met.
- Library for our Adafruit 16-channel PWM & Servo driver - Written by Limor Fried/Ladyada for Adafruit Industries. BSD license.
- I2Cdev library collection - MPU6050 I2C device class, 6-axis MotionApps 2.0 implementation - code is placed under the MIT license, Copyright (c) 2012 Jeff Rowberg
. -
Robot competed at RobotChallenge 2014 in Austria
08/13/2014 at 17:35 • 0 commentsRobot competed at Robot Challenge 2014 in Vienna, Austria. Robot completed without implementation of stabilisation algorithms that use 6DOF orientation sensors. It competed under name JT#1.
21 robots registered to competition, only 14 of them started on the day of competition. My robot got 7th place and was one of 3 robots that weren't bought as kits.
I am extremely satisfied with the results, because robot wasn't built for speed. Main goal was to mimic human walk.
Many people came to me on the day of competition and told me, that I should get special reward because it was only home made robot, that mimicked human walk.
Because rules of this competition I had to add head and arms. First I didn't like the idea and wanted to take the extras off when competition was over, but now I became fond of the look of giant yellow head and I'm not gonna take it off.
Robot was also first robot from Slovenia which participated at this competition in its 10 year history.
-
I2C addressing with STM32CubeF4
08/13/2014 at 17:18 • 0 commentsDue to rules that project must contain 4 logs I have to transfer a few logs from my blog to hackaday.io. This one will be useful for all hackers trying to implement STM32Cube HAL software on their chips.
Half year ago STM published new set of tools and software examples that implement HAL (wikipedia: Hardware abstraction layer) on the many of theirs µC. They are calling this set of tools STM32CubeF4. I2C addressing (not the 10bit, i am talking about 7bit) has only 7 bits because one bit of 8 bit addressing space is reserved for flag denoting if operation will be reading or writing. That one bit is LSB (Least significant bit). If you are into details, you can more here.
Till now i worked with libraries that input a 7bit address and they automatically shift it for one bit to left. After that libs set LSB to the right value depending on the operation.
STM32CubeF4’s way is you have to shift the 7 bit address yourself.
Code examples are on my blog: http://jure.tuta.si/?p=7
-
Problems with I2C errors
08/13/2014 at 16:45 • 0 commentsMain thing that doesn't allow me to implement two 6 DOF units (GY-521 MPU-6050 Module 3 Axis gyro + 3 Axis Accelerometer) into running code is unstable data transfer over I2C connection. When i connect modules to I2C bus for about 30s everything works and after that it stops. I don't have access to an oscilloscope, but as far as I could investigate it seems that error occurs on I2C clock line. This error never happens when there is only PWM chip on bus and no MPU-6050.
My guess is that wires of I2C bus have to high capacity when connected to all 4 chips (STM, PWM, 2x MPU-6050). I2C is limited only by a maximum bus capacitance of 400 pF.
In future I will try to put all 3 peripheral chips on separate I2C busses. I hope that will solve the problem.