element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Smarter Life
  • Challenges & Projects
  • Design Challenges
  • Smarter Life
  • More
  • Cancel
Smarter Life
Blog Smarter Life Challenge: GeoCar Final post
  • Blog
  • Forum
  • Documents
  • Files
  • Events
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: camuyano
  • Date Created: 16 Jan 2014 4:31 AM Date Created
  • Views 1742 views
  • Likes 3 likes
  • Comments 6 comments
  • puerto_rico
  • psoc4
  • geocar
  • gecar
  • winners
  • smarter_life
  • gocar
Related
Recommended

Smarter Life Challenge: GeoCar Final post

camuyano
camuyano
16 Jan 2014

Oh my, this is the final post of the challenge. This has been a great experience and I have learn a lot from all this. Now lets break it down.

 

On the project proposal I wrote all the functionality without knowing much about the PSoC4 product or the Pioneer Kit. Based on basic specs it seems possible to I set a big goal. Mostly I do this as a hobby however all I learn here I use for my regular job. So in my hobby side I dream and aim Big. On the main proposal I included a lot of peripherals which I latter learn that not all make were actually needed or become a challenge to interface.On the good side the LCD where included on the main system diagram but later learned that it was actually not needed so it was discharged. Other components were not so easy to skip. To avoid a super duper long post, I'll break it down in levels for summary.

 

Main Challenge:

Using a fully new development board and platform. Searching for code samples and getting use to the Pioneer kit was challenging. The key for learning to use the kit were the samples included on the Creator and the 100 projects in 100 days from element 14. Also finding samples of codes directly on the Cypress web site. I was used to run Arduino code where samples can be found everywhere but on the PSoC4 was not the case. Once I learned about the 100 projects and get a hang on the cypress web site it was all good. There is plenty of documentation for the platform and my development steps were always open the PSoC4 manual pdf and the Creator.

Once familiar with the platform the issue was knowing and learning how many physical resources the chip provides. In term of memory or processing speed I found no limit. On pins assignment and communication blocks like UART or SPI it took me a while to figure it out.

 

Project Challenges not completed:

For the project components that I tried to incorporate but were not possible were the sonar and Wifi. The Wifi was not required but nice to have. On the Wifi I tried to implement the code from the chip manufacturer into Creator by finishing the driver code but it was not successful. For the sonar it was a bummer. I was not able to figure out how to integrate the sonar, datasheet showed some charts for the signals and I do not have any oscilloscope to check them. I do not think that not having an oscilloscope were the deterministic factor, it was more of me not understanding how to connect it.

 

Project Accomplishments:

At the begging I had some issues with writing to the SDCard and thought I may run out of resources from the PSoC4 when adding more components. So I quickly learned that the Pionner kit had a PSoC5 on board that could be easily programmed and combined with the PSoC4. That plus my explorer spirit I flashed away the PSoC5 and put it to more use than a debugger. By using both chips I manage to connect the GPS, SDCard, Accelerometer, Bluetooth and an external digital sensor easily. Each one brought it own challenge but now all looks very easy. By using some Arduino compatible shields the first prototype was built. It was bulky and using the entire Pioneer kit.

Complementary to the PSoCs the project required two main components. One Android application and one web application to extract data from the PSoC and show to the user. Both were started as a proof of concept and base for development. Just enough time were assigned to these development so it is enough to know it is working but time were mostly focus on working with the Pioneer kit.

After the prototype on using both PSoCs I decided to challenge myself and move it all to the PSoC4. Having a stamp with a PSoC4 on it, this was the logic step to take. Move all into one single chip to create a cheaper solution since keeping it cheap is one my goals. Code were moved into the PSoC4 little by little. I learned how to build a bootloader and a bootable project for the PSoC4 for programming and reprogramming a chip outside of the Pioneer evaluation board. Documentation from the Cypress site and again projects from element14 where life savers.

In summary the code was moved into one PSoC4 solution and some circuitry soldered into a board to keep it simple. To reduce size without having to manufacture boards I tried to mix and use as much as already available components on different parts. For example the GPS module used has a voltage input that can be 5V and it provides a regulated output of 3.3V. The 3.3V output came handy when using the SDCard just because that is a friendly voltage level for the SD. That alone allowed me to wire up the SDCard directly to the PSoC4 since both were powered by the regulated 3.3V 100mA. The prototype will receive a 5V externally and the GPS module board takes care of leveling all out. With the pins output voltage of the PSoC4 in 3.3V eliminates the need of a bulky dip level shifter IC. For a manufactured board I would include a very tiny level shifter but with a perf board the less the better. The other module connected to the second prototype is the bluetooth module which works on 3.3V as well.

 

 

Prototype 1.2 - Button is used to activate bootloader for programming

On the top left is the GPS (upside down to reduce overall height.

On the middle is the SDCard, it is just wired up to a microSDCard jacket that holds a 2GB microSD card

On the right side is the bluetooth module. For this prototype the baud rate for the bluetooth was increaded to 57600 instead of 9600 on the first one for faster data transfer. Since the bluetooth is connected to the Rx and Tx pins that receives the new file for in field programming. In order to reprogram the board this board has to be taken out and wire the serial wires. Originally I wanted to update the board firmware via bluetooth but for some reason it doesn't work so I have to wire a regular usb serial adapter to where the bluetooth module is connected.

If look carefully there a pcb in the middle that holds the PSoC4.

image

 

Side by side from first prototype to second prototype. Only components missing on smaller prototype is the accelerometer but apart of that is the same, way smaller right!

image

 

Project box greatly reduced. Small project box shall have a usb cable for powering the device (not shown here).

image

 

Final thought:

From the original concept to what was build there is a slight variation, however main components are implemented plus there are available IO ports for expansions. I spoken to my friends about the project and most of the people like it. I consider this challenge to be a personal success and a great experience for me. I took upon the build of an ambitious project with an unknown platform and manage to get the hang of it. I learned the basics of a PSoC4 and plan to use it on other personal hacks/projects as needed. Thanks to the everyone from the organizer, participants to you reading this.

 

Future plans:

My future plans are first take a break for bit to spend family time. Soon after I am planning on using this daily on my car with a simple add on. To actually make it every of every day use, I will incorporate the gate beeper to make my car automatically open the in or out gate when I get close to it. Than only feature will produce daily use of the project and motivates me on continue developing more. Also when gate beeper linked I want to make a PCB for this to have a good looking circuit. Going back to the sonar and the Wifi is in the back of my head and will be revisited.

 

About Pioneer Kit:

This is an amazing development board. For us that work regularly with Visual Studio using the Creator is very familiar and the debugger is great. I found the board to be flexible. During the challenge some of the components were updated without any problem, very easy and straight trough process. Basically all tools updated with a simple mouse click. For using a Arduino SDCard shield I had to populate the J12 port on the board and it was very well documented on how to do it. Also I flashed and re-flashed the PSoC4 and the PSoC5 chips from the board without any problem. Switched all back to factory in a moment notice very quickly when needed. I also used the Pioneer kit as a programmer for an external chip without the need to remove a few resistors from the board. The option of using an evaluation board as a programmer allow me to graduate my projects out of the evaluation board.

The Pionner Kit is an economy board but very well packed. Just by the PSoC4 is great but been able to use the PSoC5 in the same board is amazing. Once can quickly test the basics of the PSoC5 without any other hardware.

 

Update, screen shots requested:

 

Android app Screen shots:

When click on the round button the app connects to the GeoCar via bluetooth and sends a character. When the PSoC receives that character it sends via UART all data in the GPS data file.. The PSoC receives the character as UART since the bluetooth modules behaves as a serial UART device.

imageimage

 

Web Application Screen shots:

This is the main page of the application. Here data should be separated on trips to show the plotted data. However for now the only option that is programmed is the the blue button that shows all the recorded data. This page is programmed in django and it has a rest api that allow the upload of data from a client. For development the database is in sqlite but any database supported by Django may be used.

image

The purple line (the API said blue but I see it more close to purple) is the actual data recorded from the PSoC. There are a bunch of dots from more than one trip. Actually there are 1 GPS location for every 5 seconds on the trip.

image

  • Sign in to reply
  • vsluiter
    vsluiter over 11 years ago in reply to camuyano

    Thanks!!

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • camuyano
    camuyano over 11 years ago in reply to vsluiter

    Just updated the post to add screen shots of the android app and the web application.I may not have a pc for most of the weekend so I will not be able to create more screenshots. Thanks for reading and showing interest.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • vsluiter
    vsluiter over 11 years ago in reply to camuyano

    Thanks! I was just wondering what it looked like. Can you make some screenshots?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • camuyano
    camuyano over 11 years ago in reply to vsluiter

    The web and Android is pretty much as the past posts. The Android app connects to the PSoC via bluetooth and pulls out the GPS data file, also listen to an SMS and sends a message to the PSoC. The web app has a python script that connects to the PSoC and pulls out the GPS data file and post it to the web database. The web app plots all data in the database into a map. I wanted to do like trips, divide data sets into trips so when the user wanted to print the map it is only for the desire trip or dates. Also there are a lot to add like users so you can have multiple GeoCar's with personalized spaces. Just the owner sees the actual data and much much more. Since the challenge is more about the PSoC and there is so much to learn there and to build upon I decided to focus on the hardware. It has been a learning experience and I love trying new stuff. On the web and Android is just doing one thing after the other but on the PSoC is walking on new roads and finding new challenges, actually creating stuff. I figure once I have the hardware I can do software anywhere but for the hardware I needed a desk and soldering.

    I have always dream on having a computer like device (home made) on the car and now this can be my thing, For a nerd adding up an electronic device to my car is very nice and maybe motivate others to pick up electronics. I think I may have some code without checking to github but the code is pretty much there.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • vsluiter
    vsluiter over 11 years ago

    Javier,

    Very nice writeup of what you've done. Good to see you managed to make everything so much smaller!

    How's the Android / Web stuff going?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
>
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube