Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@0:4e684157ecca, 2018-09-06 (annotated)
- Committer:
- yamaotoko
- Date:
- Thu Sep 06 12:54:00 2018 +0000
- Revision:
- 0:4e684157ecca
- Child:
- 1:f43ebe88228e
first WIP
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| yamaotoko | 0:4e684157ecca | 1 | #include "mbed.h" |
| yamaotoko | 0:4e684157ecca | 2 | #include "HX711.hpp" |
| yamaotoko | 0:4e684157ecca | 3 | #include "Dynamixel.h" |
| yamaotoko | 0:4e684157ecca | 4 | |
| yamaotoko | 0:4e684157ecca | 5 | HX711 hx711(p21, p22); |
| yamaotoko | 0:4e684157ecca | 6 | Serial pc(USBTX, USBRX); |
| yamaotoko | 0:4e684157ecca | 7 | Dynamixel motor(p13,p14,p15,0xFE,57600); |
| yamaotoko | 0:4e684157ecca | 8 | |
| yamaotoko | 0:4e684157ecca | 9 | //Dynamixel回転方向対応用 |
| yamaotoko | 0:4e684157ecca | 10 | //多分11bitのうちMSBが符号,最上位で回転方向を指定している |
| yamaotoko | 0:4e684157ecca | 11 | move(int speed){ |
| yamaotoko | 0:4e684157ecca | 12 | if(speed >= 0) |
| yamaotoko | 0:4e684157ecca | 13 | motor.setSpeed(speed); |
| yamaotoko | 0:4e684157ecca | 14 | else{ |
| yamaotoko | 0:4e684157ecca | 15 | motor.setSpeed(-1*speed+1024); //11bitのうちMSBが符号 |
| yamaotoko | 0:4e684157ecca | 16 | } |
| yamaotoko | 0:4e684157ecca | 17 | } |
| yamaotoko | 0:4e684157ecca | 18 | |
| yamaotoko | 0:4e684157ecca | 19 | //--------------------HX711 |
| yamaotoko | 0:4e684157ecca | 20 | void calibrate(float gram){ |
| yamaotoko | 0:4e684157ecca | 21 | hx711.setScale(1.f); |
| yamaotoko | 0:4e684157ecca | 22 | hx711.tare(); |
| yamaotoko | 0:4e684157ecca | 23 | //この辺をProcessing用に組み替える |
| yamaotoko | 0:4e684157ecca | 24 | printf("place the weight and put any key\n"); |
| yamaotoko | 0:4e684157ecca | 25 | char c = pc.getc(); |
| yamaotoko | 0:4e684157ecca | 26 | |
| yamaotoko | 0:4e684157ecca | 27 | float natural = hx711.readGram(); |
| yamaotoko | 0:4e684157ecca | 28 | float calibVal = natural / gram; |
| yamaotoko | 0:4e684157ecca | 29 | hx711.setScale(calibVal); |
| yamaotoko | 0:4e684157ecca | 30 | //printf("calibrated! %f %f %d\n", calibVal, natural, hx711.read()); |
| yamaotoko | 0:4e684157ecca | 31 | } |
| yamaotoko | 0:4e684157ecca | 32 | |
| yamaotoko | 0:4e684157ecca | 33 | |
| yamaotoko | 0:4e684157ecca | 34 | int main() { |
| yamaotoko | 0:4e684157ecca | 35 | //ホイールモードにするための設定 |
| yamaotoko | 0:4e684157ecca | 36 | motor.setAngleLimit(0, ADDRESS_CW_ANGLE_LIMIT); |
| yamaotoko | 0:4e684157ecca | 37 | motor.setAngleLimit(0, ADDRESS_CCW_ANGLE_LIMIT); |
| yamaotoko | 0:4e684157ecca | 38 | while(1) { |
| yamaotoko | 0:4e684157ecca | 39 | } |
| yamaotoko | 0:4e684157ecca | 40 | } |