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.
Revision 0:c7eacabfa681, committed 2019-12-16
- Comitter:
- VPKD1669
- Date:
- Mon Dec 16 17:44:49 2019 +0000
- Commit message:
- This includes for the module RFID as well as ultrasonic sensor
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/.gitignore Mon Dec 16 17:44:49 2019 +0000 @@ -0,0 +1,4 @@ +.build +.mbed +projectfiles +*.py*
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/CONTRIBUTING.md Mon Dec 16 17:44:49 2019 +0000 @@ -0,0 +1,5 @@ +# Contributing to Mbed OS + +Mbed OS is an open-source, device software platform for the Internet of Things. Contributions are an important part of the platform, and our goal is to make it as simple as possible to become a contributor. + +To encourage productive collaboration, as well as robust, consistent and maintainable code, we have a set of guidelines for [contributing to Mbed OS](https://os.mbed.com/docs/mbed-os/latest/contributing/index.html).
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/MFRC522.lib Mon Dec 16 17:44:49 2019 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/users/AtomX/code/MFRC522/#63d729186747
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/README.md Mon Dec 16 17:44:49 2019 +0000 @@ -0,0 +1,64 @@ + +# Blinky Mbed OS example + +The example project is part of the [Arm Mbed OS Official Examples](https://os.mbed.com/code/) and is the [getting started example for Mbed OS](https://os.mbed.com/docs/mbed-os/v5.14/quick-start/index.html). It contains an application that repeatedly blinks an LED on supported [Mbed boards](https://os.mbed.com/platforms/). + +You can build the project with all supported [Mbed OS build tools](https://os.mbed.com/docs/mbed-os/latest/tools/index.html). However, this example project specifically refers to the command-line interface tool [Arm Mbed CLI](https://github.com/ARMmbed/mbed-cli#installing-mbed-cli). +(Note: To see a rendered example you can import into the Arm Online Compiler, please see our [import quick start](https://os.mbed.com/docs/mbed-os/latest/quick-start/online-with-the-online-compiler.html#importing-the-code).) + +1. [Install Mbed CLI](https://os.mbed.com/docs/mbed-os/latest/quick-start/offline-with-mbed-cli.html). + +1. Clone this repository on your system, and change the current directory to where the project was cloned: + + ```bash + $ git clone git@github.com:armmbed/mbed-os-example-blinky && cd mbed-os-example-blinky + ``` + + Alternatively, you can download the example project with Arm Mbed CLI using the `import` subcommand: + + ```bash + $ mbed import mbed-os-example-blinky && cd mbed-os-example-blinky + ``` + + +## Application functionality + +The `main()` function is the single thread in the application. It toggles the state of a digital output connected to an LED on the board. + +## Building and running + +1. Connect a USB cable between the USB port on the board and the host computer. +2. <a name="build_cmd"></a> Run the following command to build the example project and program the microcontroller flash memory: + ```bash + $ mbed compile -m <TARGET> -t <TOOLCHAIN> --flash + ``` +The binary is located at `./BUILD/<TARGET>/<TOOLCHAIN>/mbed-os-example-blinky.bin`. + +Alternatively, you can manually copy the binary to the board, which you mount on the host computer over USB. + +Depending on the target, you can build the example project with the `GCC_ARM`, `ARM` or `IAR` toolchain. After installing Arm Mbed CLI, run the command below to determine which toolchain supports your target: + +```bash +$ mbed compile -S +``` + +## Expected output +The LED on your target turns on and off every 500 milliseconds. + + +## Troubleshooting +If you have problems, you can review the [documentation](https://os.mbed.com/docs/latest/tutorials/debugging.html) for suggestions on what could be wrong and how to fix it. + +## Related Links + +* [Mbed OS Stats API](https://os.mbed.com/docs/latest/apis/mbed-statistics.html). +* [Mbed OS Configuration](https://os.mbed.com/docs/latest/reference/configuration.html). +* [Mbed OS Serial Communication](https://os.mbed.com/docs/latest/tutorials/serial-communication.html). +* [Mbed OS bare metal](https://os.mbed.com/docs/mbed-os/latest/reference/mbed-os-bare-metal.html). +* [Mbed boards](https://os.mbed.com/platforms/). + +### License and contributions + +The software is provided under Apache-2.0 license. Contributions to this project are accepted under the same license. Please see contributing.md for more info. + +This project contains code from other projects. The original license text is included in those source files. They must comply with our license guide.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/hcsr04.cpp Mon Dec 16 17:44:49 2019 +0000 @@ -0,0 +1,98 @@ +/* Copyright (c) 2013 Prabhu Desai + * pdtechworld@gmail.com + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this software + * and associated documentation files (the "Software"), to deal in the Software without restriction, + * including without limitation the rights to use, copy, modify, merge, publish, distribute, + * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all copies or + * substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + + +#include "hcsr04.h" + + +HCSR04::HCSR04(PinName TrigPin,PinName EchoPin): + trigger(TrigPin), echo(EchoPin) +{ + pulsetime.stop(); + pulsetime.reset(); + echo.rise(this,&HCSR04::isr_rise); + echo.fall(this,&HCSR04::isr_fall); + trigger=0; +} + +HCSR04::~HCSR04() +{ +} + +void HCSR04::isr_rise(void) +{ + pulsetime.start(); +} +void HCSR04::start(void) +{ + trigger=1; + wait_us(10); + trigger=0; +} + +void HCSR04::isr_fall(void) +{ + pulsetime.stop(); + pulsedur = pulsetime.read_us(); + distance= (pulsedur*343)/20000; + pulsetime.reset(); +} + +void HCSR04::rise (void (*fptr)(void)) +{ + echo.rise(fptr); +} +void HCSR04::fall (void (*fptr)(void)) +{ + echo.fall(fptr); +} + +unsigned int HCSR04::get_dist_cm() +{ + return distance; +} +unsigned int HCSR04::get_pulse_us() +{ + return pulsedur; +} + + + +/******************************************************* + Here is a sample code usage +********************************************************* +#include "hcsr04.h" +HCSR04 usensor(p25,p6); +int main() +{ + unsigned char count=0; + while(1) { + usensor.start(); + wait_ms(500); + dist=usensor.get_dist_cm(); + lcd.cls(); + lcd.locate(0,0); + lcd.printf("cm:%ld",dist ); + + count++; + lcd.locate(0,1); + lcd.printf("Distance =%d",count); + + } +*/ \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/hcsr04.h Mon Dec 16 17:44:49 2019 +0000 @@ -0,0 +1,68 @@ +/* Copyright (c) 2013 Prabhu Desai + * pdtechworld@gmail.com + * + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this software + * and associated documentation files (the "Software"), to deal in the Software without restriction, + * including without limitation the rights to use, copy, modify, merge, publish, distribute, + * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all copies or + * substantial portions of the Software. + * + * For more details on the sensor : + * http://www.elecfreaks.com/store/hcsr04-ultrasonic-sensor-distance-measuring-module-p-91.html?zenid=pgm8pgnvaodbe36dibq5s1soi3 + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#include "mbed.h" +#ifndef MBED_HCSR04_H +#define MBED_HCSR04_H + + +/** HCSR04 Class(es) + */ + +class HCSR04 +{ +public: + /** Create a HCSR04 object connected to the specified pin + * @param pin i/o pin to connect to + */ + HCSR04(PinName TrigPin,PinName EchoPin); + ~HCSR04(); + + /** Return the distance from obstacle in cm + * @param distance in cms and returns -1, in case of failure + */ + unsigned int get_dist_cm(void); + /** Return the pulse duration equal to sonic waves travelling to obstacle and back to receiver. + * @param pulse duration in microseconds. + */ + unsigned int get_pulse_us(void); + /** Generates the trigger pulse of 10us on the trigger PIN. + */ + void start(void ); + void isr_rise(void); + void isr_fall(void); + void fall (void (*fptr)(void)); + void rise (void (*fptr)(void)); + + + +private: + + Timer pulsetime; + DigitalOut trigger; + InterruptIn echo; + unsigned int pulsedur; + unsigned int distance; +}; + +#endif \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Mon Dec 16 17:44:49 2019 +0000 @@ -0,0 +1,163 @@ +/* mbed Microcontroller Library + * Copyright (c) 2019 ARM Limited + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "mbed.h" +//#include "platform/mbed_thread.h" +#include "hcsr04.h" + +DigitalOut myled(LED1); +Serial pc(USBTX,USBRX); +HCSR04 usensor(D8, D9); +unsigned int dist; +DigitalOut GREEN(D7); +DigitalOut BLUE(LED3); +Timer dt; + + +#include "MFRC522.h" +// FRDM-K64F (Freescale) Pin for MFRC522 reset +#define MF_RESET PTD0 +#define SERIAL_1 + +DigitalOut LedGreen(LED2); + +//Serial connection to PC for output +//Serial pc(PTC17, PTC16); // serial comm on the FRDM board + +//wireless bluetooth connection to Android Device for output +Serial blue(PTC15, PTC14); + + +//MFRC522 RfChip (SPI_MOSI, SPI_MISO, SPI_SCK, SPI_CS, MF_RESET); +MFRC522 RfChip (PTD2, PTD3, PTD1, PTE25, PTD0); + +int counter1 = 0; +int counter2 = 0; + + + +// Blinking rate in milliseconds +//#define BLINKING_RATE_MS 500 + + +int main() +{ + // Initialise the digital pin LED1 as an output + DigitalOut led(LED1); + + /*while (true) { + led = !led; + //thread_sleep_for(BLINKING_RATE_MS); + }*/ + BLUE=1; + pc.baud(9600); + dt.start(); + while(1) { + usensor.start(); + wait_ms(500); + dist=usensor.get_dist_cm(); + pc.printf("\n\r cm:%ld",dist); + + printf("Welcome to RFID Tag Reader Using FRDM K64F...\n\r"); + blue.printf("Welcome to RFID Tag Reader Uing FRDM K64F...\n\r"); + printf("Bluetooth Enable\r\n"); + blue.printf("Bluetooth Enable\r\n"); + RfChip.PCD_Init(); + + + LedGreen = 1; + + // Look for new cards + if ( ! RfChip.PICC_IsNewCardPresent()) + { + if (dist>20) + { + GREEN = !GREEN; + } + else + { + BLUE=0; + continue; + } + } + + // Select one of the cards + if ( ! RfChip.PICC_ReadCardSerial()) + { + if (dist>20) + { + GREEN = !GREEN; + } + else + { + BLUE=0; + continue; + } + } + LedGreen = 0; + int a=0; + + // Print Card UID + printf("Card UID:"); + blue.printf("Card UID:"); + for (uint8_t i = 0; i < RfChip.uid.size; i++) + { + printf(" %X02 ", RfChip.uid.uidByte[i]); + blue.printf(" %X02 ", RfChip.uid.uidByte[i]); + a = RfChip.uid.uidByte[0]; + } + printf("%d",a); + + //Print Card Type + if(a==73) + { + if(counter1 == 0){ + printf("\r\nMilk is in the fridge"); + blue.printf("\r\nWhite Card"); + counter1 = 1; + } + else if(counter1 == 1){ + printf("\r\nMilk is out of the fridge"); + counter1 = 0; + } + } + + if(a==207) + { + if (counter2 == 0) + { + printf("\r\nBeer is in the fridge"); + blue.printf("\r\nBlue Keychain"); + counter2 = 1; + } + else if (counter2 == 1){ + printf("\r\nBeer is out of the fridge"); + counter2 = 0; + } + } + //wait(1); + printf("\n\r"); + blue.printf("\n\r"); + + printf("\r\nParcel taken"); + blue.printf("\r\nParcel taken"); + + printf("\n\r"); + blue.printf("\n\r"); + + // Print RFID Card type + uint8_t piccType = RfChip.PICC_GetType(RfChip.uid.sak); + printf("PICC Type: %s \n\n\r\r", RfChip.PICC_GetTypeName(piccType)); + blue.printf("PICC Type: %s \n\n\r\r", RfChip.PICC_GetTypeName(piccType)); + break; + } + + blue.baud(9600); + pc.baud(9600); + } + + + +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed-os.lib Mon Dec 16 17:44:49 2019 +0000 @@ -0,0 +1,1 @@ +https://github.com/ARMmbed/mbed-os/#cf4f12a123c05fcae83fc56d76442015cb8a39e9
Binary file resources/official_armmbed_example_badge.png has changed