Milestone 3
Dependencies
TCA9548A by Jonathan Dempsey
Adafruit_VL53L0X by Adafruit
Adafruit BNO055 by Adafruit
TCA9548A
#include "Wire.h"
#include "TCA9548A.h"
TCA9548A mux;
void setup() {
Serial.begin(115200);
mux.begin(Wire);
// memastikan semua channel tertutup
mux.closeAll();
}
void loop() {
mux.openChannel(0);
// ... komunikasi I2C untuk sensor
mux.closeChannel(0);
}
VL53L0X
#include "Adafruit_VL53L0X.h"
Adafruit_VL53L0X lox = Adafruit_VL53L0X();
void setup() {
Serial.begin(115200);
if (!lox.begin()) {
Serial.println("Failed to boot VL53L0X");
while(1);
}
}
void loop() {
VL53L0X_RangingMeasurementData_t measure;
lox.rangingTest(&measure);
if (measure.RangeStatus != 4) { // 4 = phase failures have incorrect data
Serial.print("Distance (mm): ");
Serial.println(measure.RangeMilliMeter);
} else {
Serial.println(" out of range ");
}
delay(100);
}
BNO055
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BNO055.h>
#include <utility/imumaths.h>
Adafruit_BNO055 bno = Adafruit_BNO055(-1, 0x28, &Wire);
void setup() {
Serial.begin(115200);
if(!bno.begin()) {
while(1);
}
bno.setExtCrystalUse(true);
}
void loop() {
imu::Vector<3> euler = bno.getVector(Adafruit_BNO055::VECTOR_EULER);
// jgn tanya kenapa z jadi x, x jadi z
// dan kenapa dikasih minus
// orientasi menurut Adafruit dan menurut fisik BNO055 beda
// udah nyoba bno.setAxisRemap() masih sama aja
double x = -euler.z();
double y = -euler.y();
double z = 360 - euler.x();
Serial.print("x: ");
Serial.print(x);
Serial.print(" y: ");
Serial.print(y);
Serial.print(" z: ");
Serial.println(z);
delay(10);
}