Skip navigation

IoT on Wheels Design Challenge

15 Posts authored by: fyaocn
1. With all the effort in 11 weeks, there is little surprise for the completion of this design by Nov. 13,2017. The software and hardware have passed test. Only need some platform to carry all the electronic parts and driving the wheels. Getting close view. Rear view with wheels. There have been too many wheels. 2. All the parts are make by recycling parts like carton package and plastic case for Nucleo board. Wiring with jumper lines. It works, but far from perfect.  I will try ...
1. Although the software has been completed there are still some problems with power supply. I supply power with battery via USB. The st-link part works and the main part with STM32L476 chip does not. It appears that  only PWR_EN is needed to enable the USB power. But it is not the case for Nucleo-F401 after test. The power supply is provided either by the host PC through the USB cable, or by an external source: VIN (7V-12V), E5V (5V) or +3.3V power supply pins on CN6 or CN7. Then I c ...
1. Finally all the software part is completed. It is obvious that PWM is most tricky part, since I do not know when it starts without and clear entry point. 2. The Software in mbed.org first the flyservice.h #ifndef __BLE_FLY_SERVICE_H__ #define __BLE_FLY_SERVICE_H__ class FLYService { public:     const static uint16_t FLY_SERVICE_UUID              = 0xA000;     const static uint16_t FLY_STATE_CHARACT ...
1. Having Tested all the software components, it is time to do hardware configuration. - N30 motor, 3-6V, 220mA and 20900rpm in 3.7V, maximum 1.5A, shaft diameter 1mm, length of shaft 6mm, size 20*10*12mm, 8.39g, - Propeller , diameter 75mm, center hole 0.95mm, 1.6g - 5-6V Battery Banks, it is idea to use portable battery bank for mobile 5V output, 4xAAA battery as optional - L298N H bridge driver, Logical-1: 2.3V~Vxx, Logical-0: -0.3V~1.5V. Peak current 2A.   2. Parameter design ...
1. I have tried many times to understand PWM function in mbed this week. Only to blink the LED by PWM in 60Hz, which turning to be very simple. As follows, #include "mbed.h" PwmOut mypwm(LED1); int main() {     mypwm.period_ms(1000);     mypwm=0.2;    while(1) { } } 2. PwmOut function packs many process of PWM output from clock setting, interrupt triggering. But all these is transparent to developers. It takes me long time to find out that the PWM starts w ...
1. To control the via BLE, the BLE service and BLE characteristics UUID shall be nominated. In the mbed projects, 0xA000 plus blue UUID default value -0000-1000-8000-00805f9b34fb shall be used. And set BLE characteristics UUID to 0xA001-0000-1000-8000-00805f9b34fb. Device name of FLY. With 1 received to LED on and 0 for LED off.as of     if ((params->handle == ledServicePtr->getValueHandle()) && (params->len == 1)) {         a ...
1. As I have mentioned, the X-NUCLEO-IDB04A1 is broken, I guess that the tight socket makes me pull hard to break lines by mistake. I shall take care later on. 2 Luckly  X-NUCLEO-IDB05A1 is still available for me to complete the BLE connection Here is the sample code form mbed   #include "mbed.h" #include "ble/BLE.h" #include "LEDService.h" DigitalOut actuatedLED(LED1, 0); const static char     DEVICE_NAME[] = "LED"; static const uint16_t uuid16_list[] = {LE ...
1. Present progress, I have tried to test the BlueNRG extension board. But come to find out the board is broke by mistake. It can not work. At the beginning of the design , I have flashed program and test with BLE scanning APP, everything goes fine. I have to skip the repair mode to next stage, I will figure out what happened later. For Remote control part, WIFI via cloud is challenge part as option work. I think I should use this part now. 2 Another work is migration of X-NUCLEO-IKS01A1 samp ...
1. After test the software component for this design, the mechanic part for the walking wheel shall be prepared and tested. 2. I have made wooden frame walking wheel plane driven by 5V motor and one propeller. Here are parts of the components. 3. The front wheels and rear wheels are passive wheels. The wooden wings shall keep the balance only. Assemble the parts as finally, 4. Test the two pins motor with positive of negative for rotary direction of the motor. Change the direction shall m ...
1. After setting of BLE connection, another part of work is PWM-controlled motor for propellers. This is especially easy with mbed. Since the PWM is embedded in mbedos system, include "mbed.h" first. #include "mbed.h" Then create one PWM handle, set the I/O pin. This pin can be in input and output state at the same time. pwm.write() and pwm.read() are available. This demo shows how to blink LED1 as of PWM siganls.   DigitalOut  my_led(LED1); InterruptIn my_button(USER_BUTTON); PwmOut& ...
1. Create new project, using BLUENRG template. 2. Codes and sending commands #include "mbed.h" #include "ble/BLE.h" #include "LEDService.h" DigitalOut actuatedLED(LED1, 0); const static char     DEVICE_NAME[] = "LED"; static const uint16_t uuid16_list[] = {LEDService::LED_SERVICE_UUID}; LEDService *ledServicePtr; void disconnectionCallback(const Gap::DisconnectionCallbackParams_t *params) {     (void)params;     BLE::Instance().gap(). ...
1. Although not going to use MEMS sensor boards, I am going to use nucleo extension board  X-NUCLEO-IKS01A2 to code with mother board of nucleo-STM32L476 The  X-NUCLEO-IKS01A2 is a motion MEMS and environmental sensor expansion board for the STM32 Nucleo It is equipped with Arduino UNO R3 connector layout and is designed around the LSM6DSL 3D accelerometer and 3D gyroscope the LSM303AGR 3D accelerometer and 3D magnetometer the  HTS221 humidity and temperature sensor and the LPS2 ...
1. All the design shall be based on mbed development environment for easy of use and good compatibility with STM-Nucleo board. It is not the case for other brand. In fact the mbed is not fully open sources, some definition is out of the reach of developers. Meantime, the mbed keeps evolving, it can be seen that the source link of  https://developer.mbed.org/  has been changed into https://os.mbed.com/ , when mbed OS 5 is published. That is interesting to tracing the pace of ARM in mb ...
1. Before introduce the hardware, it would be interesting to share one similar Design on Kickstarter.com. Of course, this paper airplane has no wheels. But it is really fun. And it shows some similarity with my idea, one thrown and let it go. My design is a glider crawl on road and water, hopefully, it can fly in the end. I have calculated that at least 0.5 meter wing span is needed for the glider to fly. 2. There have been many projects with Nucleo-L476 for its low power consumption and ...
1. Introduction of the design Design a kind of Glider with wheels to roll on road and floating barrel to float on water. The glider is driven by propellers and Wheels are passive. So the glider can not fly in this challenge, but it is ready to be thrown by hand landed on road or lake, if not crashed. 2. Schedule - Evaluation blog to STM32-L476 and BlueNRG board.(1 blog) - Demo design on mbed.org..(1 blog) - MBED program for L476+BlueNRG to link mobile via evothings..(2 blog) - Making of ...