同步控制汽车
我做了 Blynk 控制汽车使用 Adafruit 羽毛32u4 蓝果 le。我可以很容易地使用同步!
目次
配置
我使用配备了 ble 的微型计算机 Adafruit 32u4 blu夫 le 和电机驱动器 drv8835 来控制 blynk 的两个电机的旋转。
部分
- BLE-equipped microcomputer Adafruit Feather 32u4 bluefruit LE
- Motor driver DRV8835
- Li-ion polymer battery 400mAh
- Double gearbox
gear ratio is 344.2 : 1
- Universal Plate
- Off-road tyre set
- Ball caster
arduino 的 blynk 图书馆
最新的资料库如下所示。
https://github.com/blynkkk/blynk-library
阿达果羽毛32u4 蓝果 le。使用。因此, arduino 代码是参照以下内容生成的。
[Example] -> [Blynk] -> [Boards_BLE]-> [Adafruit_Feather_32u4_BLE]
混合设置
创建新项目。在硬件中选择 arduino uno, 因为还没有 Adafruit 羽毛 32u4 ble。auth token 将做一个笔记, 以便您在生成 arduino 代码 (或发送邮件) 时使用。
放置 ble 小部件和操纵杆小部件。
操纵杆设置。双轴的值在虚拟引脚 v0 中输出。x 和 y 的值分别为-255 到255。
arduino ide 代码
[Sketch Example]-> [Blynk]-> [boards_ble]-> [Adafruit_Feather_32u4_BLE] 由引用生成的代码。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
#define BLYNK_PRINT Serial #define BLYNK_USE_DIRECT_CONNECT #include <BlynkSimpleSerialBLE.h> #include <SPI.h> #include <Adafruit_BLE.h> #include <Adafruit_BluefruitLE_SPI.h> // You should get Auth Token in the Blynk App. // Go to the Project Settings (nut icon). char auth[] = "YourAuthToken"; // SHARED SPI SETTINGS (see adafruit webpages for details) #define BLUEFRUIT_SPI_CS 8 #define BLUEFRUIT_SPI_IRQ 7 #define BLUEFRUIT_SPI_RST 4 // Optional but recommended, set to -1 if unused #define BLUEFRUIT_VERBOSE_MODE true // Create ble instance, see pinouts above Adafruit_BluefruitLE_SPI ble(BLUEFRUIT_SPI_CS, BLUEFRUIT_SPI_IRQ, BLUEFRUIT_SPI_RST); //pin name const int forwardL = 11; const int rearL = 10; const int forwardR = 5; const int rearR = 6; long Speed; long SpeedL, SpeedR; BLYNK_WRITE(V0) { long x = param[0].asInt(); long y = param[1].asInt(); Serial.print("x: "); Serial.print(x); Serial.print(" y: "); Serial.print(y); Speed = sqrt(x*x+y*y); if(Speed > 255){ Speed = 255; } Serial.print(" Speed: "); Serial.println(Speed); if(y >= 0){ if(x >= 0){ SpeedL = 0; SpeedR = abs(x); }else{ SpeedL = abs(x); SpeedR = 0; } analogWrite(forwardL, Speed - SpeedL); analogWrite(rearL, 0); analogWrite(forwardR, Speed - SpeedR); analogWrite(rearR, 0); }else{ if(x >= 0){ SpeedL = 0; SpeedR = abs(x); }else{ SpeedL = abs(x); SpeedR = 0; } analogWrite(forwardL, 0); analogWrite(rearL, Speed - SpeedL); analogWrite(forwardR, 0); analogWrite(rearR, Speed - SpeedR); } } void setup() { Serial.begin(9600); Blynk.begin(auth, ble); ble.begin(BLUEFRUIT_VERBOSE_MODE); ble.factoryReset(); // Optional ble.setMode(BLUEFRUIT_MODE_DATA); } void loop() { Blynk.run(); } |
现在, 您可以通过接收 Blynk 操纵杆的两个值来控制两个电机, 并来回移动它们!
同步连接 ble
单击项目的 ble 小部件。
点击 “连接 ble 设备”。
然后, 点击 “确定” 加入 “Adafruit 蓝果 le”。
操作
在未来, 我想让这个相机安装在头戴式显示器 (智能手机): 卷: