We're no longer updating This wiki!!

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
en:c1_tinkering [2016/02/29 14:25]
john1117 removed
en:c1_tinkering [2017/03/27 09:38] (current)
brian.kim [Python example]
Line 2: Line 2:
 {{http://​dn.odroid.com/​homebackup/​C-Breadboard1H.jpg?​500|}} {{http://​dn.odroid.com/​homebackup/​C-Breadboard1H.jpg?​500|}}
  
-You're probably itching to make some fun embedded computer projects with **ODROID-C1**. What you need is an add on prototyping T-breakout board, which can break out all those tasty power, GPIO, I2C, ADC pins from the 40 pin header onto a solderless breadboard. This set will make "​cobbling together"​ prototypes with the **ODROID-C1** super easy.+You're probably itching to make some fun embedded computer projects with **ODROID-C**. What you need is an add on prototyping T-breakout board, which can break out all those tasty power, GPIO, I2C, ADC pins from the 40 pin header onto a solderless breadboard. This set will make "​cobbling together"​ prototypes with the **ODROID-C** super easy.
  
 This kit comes with below many items. This kit comes with below many items.
Line 21: Line 21:
 [[http://​www.hardkernel.com/​main/​products/​prdt_info.php?​g_code=G141637532784|Where to buy]] [[http://​www.hardkernel.com/​main/​products/​prdt_info.php?​g_code=G141637532784|Where to buy]]
  
-===== DIY light level meter project =====+====== DIY light level meter project =====
 +Configuration tinkering kit such as below schematic.
  
-==== Linux ==== +Please refer to below links for ODROID-C2 user or details related to gpio mapping. 
-1. Configuration tinkering kit such as below schematic.\\ + 
-Light Level Meter schematic+[[en:​c1_hardware#​expansion_connectors | C1 Expansion Connectors]]\\ 
 +[[en:​c2_hardware#​expansion_connectors | C2 Expansion Connectors]]
  
 {{:​en:​c1:​tinkering.jpg?​500|}} {{:​en:​c1:​tinkering.jpg?​500|}}
  
-2. Get the wiringPi library compatible **ODROID-C1** +===== Linux ===== 
-<​code>​ +==== C example ==== 
-# git clone https://​github.com/​hardkernel/​wiringPi +1. Get the wiringPi library compatible **ODROID**
-</​code>​+
  
-3. Build the library +  git clone https://​github.com/hardkernel/wiringPi
-<​code>​ +
-# cd wiringPi +
-./build +
-</code>+
  
-4Compile and run the example source code.+2Build the library
  
-<file c example-led.c> +  cd wiringPi 
-//​------------------------------------------------------------------------------------------------------------ +  ​./build 
-// + 
-// ODROID-C GPIO(LED) / ADC Test Application. +3. Compile ​and run the example ​source ​code
-// + 
-// Defined port number is wiringPi port number. +{{http://dn.odroid.com/source_peripherals/ctinkeringkit/example-led.c|example-led.c}} 
-// +  ​wget http://dn.odroid.com/source_peripherals/ctinkeringkit/example-led.c 
-// Compile ​: gcc -o <create excute file name> <source ​file name> -lwiringPi -lwiringPiDev -lpthread +  ​gcc -o example-led example-led.c -lwiringPi ​-lwiringPiDev ​-lpthread 
-// Run : sudo ./<​created excute file name> +  ​sudo ./example-led 
-// + 
-//------------------------------------------------------------------------------------------------------------ +==== Python example ​====
-#include <stdio.h> +
-#include <stdlib.h> +
-#include <​stdint.h>​ +
-  +
-#include <​unistd.h>​ +
-#include <​string.h>​ +
-#include <​time.h>​ +
-  +
-#include <​wiringPi.h>​ +
-#include <​wiringPiI2C.h>​ +
-#include <​wiringSerial.h>​ +
-#include <​lcd.h>​ +
-  +
-//------------------------------------------------------------------------------------------------------------ +
-// +
-// Global handle Define +
-// +
-//------------------------------------------------------------------------------------------------------------ +
-  +
-#define DATA_UPDATE_PERIOD ​ 100 // 100ms +
-  +
-//​------------------------------------------------------------------------------------------------------------ +
-// +
-// ADC: +
-// +
-//​------------------------------------------------------------------------------------------------------------ +
-#define PORT_ADC1 ​  ​0 ​  // ADC.AIN0 +
-  +
-static int adcValue = 0; +
-  +
-//------------------------------------------------------------------------------------------------------------ +
-// +
-// LED: +
-// +
-//​------------------------------------------------------------------------------------------------------------ +
-static int ledPos = 0; +
-  +
-const int ledPorts[] = { +
-    24, // GPIOX.BIT0(#97) +
-    23, // GPIOX.BIT11(#​108) +
-    22, // GPIOX.BIT3(#​100) +
-    21, // GPIOX.BIT4(#​101) +
-    14, // GPIOX.BIT8(#​105) +
-    13, // GPIOX.BIT9(#​106) +
-    12, // GPIOX.BIT10(#​107) +
-    3,  // ​GPIOX.BIT18(#​115) +
-    2,  // GPIOX.BIT19(#​116) +
-    0,  ​// GPIOY.BIT8(#​88) +
-    7,  ​// GPIOY.BIT3(#83) +
-  +
-    1,  // GPIOY.BIT7(#​87) +
-    4,  // GPIOX.BIT7(#​104) +
-    5,  // GPIOX.BIT5(#​102) +
-    6,  // GPIOX.BIT6(#​103) +
-    10, // GPIOX.BIT20(#​117) +
-    26, // GPIOX.BIT2(#​99) +
-    11, // GPIOX.BIT21(#​118) +
-    27, // GPIOX.BIT1(#​98) +
-}; +
-  +
-#define MAX_LED_CNT sizeof(ledPorts) / sizeof(ledPorts[0]) +
-  +
-//------------------------------------------------------------------------------------------------------------ +
-//​------------------------------------------------------------------------------------------------------------ +
-// +
-// system init +
-// +
-//​------------------------------------------------------------------------------------------------------------ +
-int system_init(void) +
-+
-    int i; +
-  +
-    // GPIO Init(LED Port ALL Output) +
-    for(i = 0; i < MAX_LED_CNT;​ i++)    pinMode (ledPorts[i],​ OUTPUT); +
-  +
-    ​return ​ 0; +
- } +
-  +
-//------------------------------------------------------------------------------------------------------------ +
-// +
-// board data update +
-// +
-//​------------------------------------------------------------------------------------------------------------ +
-void boardDataUpdate(void) +
-+
-    int i; +
-  +
-    // adc value read +
-    if((adcValue ​analogRead (PORT_ADC1))) ​   { +
-        ledPos ​(adcValue * MAX_LED_CNT * 1000) / 1024; +
-        ledPos ​(MAX_LED_CNT - (ledPos / 1000)); +
-    } +
-    else +
-        ledPos ​0; +
-  +
-    //  LED Control +
-    for(i 0; i < MAX_LED_CNT;​ i++)    digitalWrite (ledPorts[i],​ 0); // LED All Clear +
-    for(i 0; i < ledPos; ​     i++)    digitalWrite (ledPorts[i],​ 1); // LED On +
-+
-  +
-//​------------------------------------------------------------------------------------------------------------ +
-// +
-// Start Program +
-// +
-//​------------------------------------------------------------------------------------------------------------ +
-int main (int argc, char *argv[]) +
-+
-    static int timer 0 ; +
-  +
-    wiringPiSetup (); +
-  +
-    if (system_init() < 0) +
-    { +
-        fprintf (stderr, "%s: System Init failed\n",​ __func__); ​    ​return -1; +
-    } +
-  +
-    for(;;​) ​   { +
-        usleep(100000);​ +
-        if (millis () < timer) ​ continue ; +
-  +
-        timer millis () + DATA_UPDATE_PERIOD;​ +
-  +
-        // All Data update +
-        boardDataUpdate();​ +
-    } +
-  +
-    return 0 ; +
-+
-  +
-//​------------------------------------------------------------------------------------------------------------ +
-//​------------------------------------------------------------------------------------------------------------ +
-</​file>​+
  
-== Python example == 
   * [[https://​github.com/​hardkernel/​WiringPi2-Python|WiringPi2-Python repository for ODROID]]   * [[https://​github.com/​hardkernel/​WiringPi2-Python|WiringPi2-Python repository for ODROID]]
-**Prerequisites**:​ You must have //​python-dev//​ and //​python-setuptools//​ installed If you manually rebuild the bindings with swig-python wiringpi.i 
  
 +**Prerequisites**:​ You must have //​**python-dev**//​ and //​**python-setuptools**//​ installed If you manually rebuild the bindings with swig-python wiringpi.i
 +
 +  sudo apt-get install python-dev python-setuptools swig3.0
 +  ​
 1. Get/setup WiringPi 2 for Python repository 1. Get/setup WiringPi 2 for Python repository
 +
 <​code>​ <​code>​
-git clone https://​github.com/​hardkernel/​WiringPi2-Python.git +git clone https://​github.com/​hardkernel/​WiringPi2-Python.git 
-cd WiringPi2-Python +cd WiringPi2-Python 
-git submodule init +git submodule init 
-git submodule update+git submodule update
 </​code>​ </​code>​
  
 2. Build & install 2. Build & install
-<​code>​ +  swig3.0 -python -threads wiringpi.i 
-# sudo python setup.py install +  ​sudo ​python setup.py build install
-</​code>​ +
- +
-3. Run the example source code +
-<​file ​python ​example-led.py> +
-#!/usr/bin/python +
-import wiringpi2 as wpi +
-import time +
- +
-leds = [24, 23, 22, 21, 14, 13, 12, 3, 2, 0, 7, 1, 4, 5, 6, 10, 26, 11, 27] +
- +
-wpi.wiringPiSetup() +
- +
-# GPOI pin setup +
-for x in leds: +
- wpi.pinMode(x, 1) +
- wpi.digitalWrite(x,​ 0) +
- +
-adc_unit = 4095 / len(leds) +
-while True: +
- time.sleep(0.05) +
- +
- # Read the adc value +
- adcValue = wpi.analogRead(0) +
- +
- # Set the LEDs +
- ledPos = (adcValue * len(leds) * 1000) / 1024 +
- ledPos = len(leds) - (ledPos / 1000)+
  
- for x in leds: +3Get/Run the example source code
- wpi.digitalWrite(x,​ 0)+
  
- for x in xrange(ledPos): +{{http://dn.odroid.com/​source_peripherals/​ctinkeringkit/​example-led.py|example-led.py}} 
- wpi.digitalWrite(leds[x],​ 1) +  wget http://​dn.odroid.com/​source_peripherals/​ctinkeringkit/​example-led.py 
-</file>+  sudo python example-led.py
  
-==== Android ====+===== Android ​=====
  
 This process explains how to make an Android app which can access IO ports.\\ This process explains how to make an Android app which can access IO ports.\\
en/c1_tinkering.1456725310.txt.gz · Last modified: 2016/02/29 14:25 by john1117
CC Attribution-Share Alike 3.0 Unported
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0