Nucleo-F401REでpython-on-a-chip(LEDチカチカ編)

Nucleo-F401REでPythonのサブセットのpython-on-a-chipを動かしてLEDチカチカするまでの簡単な手順です。 Nucleo-F401REの入手 国内で入手できる主な通販サイトです。 http://akizukidenshi.com/catalog/g/gM-07723/ 秋月電子通商 http://www.marutsu.co.jp/…

スレッドとジェネレーターを使ったLチカ例。

import mbed import sys myled = mbed.DigitalOut('LED1') def toggle(): while 1: yield 0 yield 1 def mythread1(): for n in toggle(): myled.write(n) sys.wait(200) sys.runInThread(mythread1) while 1: print sys.heap() sys.wait(1000) window.twttr…

MRT.cpp

#include "MRT.h" MRT::MRT(int channel) { LPC_SYSCON->SYSAHBCLKCTRL |= (1<<10); // enable MRT LPC_SYSCON->PRESETCTRL |= (1<<7); // reset MRT _ch = &LPC_MRT->Channel[channel]; _ch->CTRL |= (1<<1); // one-shot } void MRT::write(uint32_t inter…

MRT.h

#pragma once #include "LPC8xx.h" #define IDLE 0 #define RUNNING 1 class MRT { public: MRT(int channel); /** write down counter * @param interval start count */ void write(uint32_t interval); /** read down counter */ uint32_t read(); int st…

Multi-Rate Timer (MRT)

#include "mbed.h" DigitalOut led1(LED1); extern "C" void MRT_IRQHandler() { if (LPC_MRT->Channel[3].STAT & 1) { led1 = !led1; LPC_MRT->Channel[3].STAT |= 1; // clear interrupt } } int main() { LPC_SYSCON->SYSAHBCLKCTRL |= 1<<10; // enable …

main.cpp on LPC1114FN28

#include "mbed.h" #include "SWDSerial.h" SWDSerial pc; LocalFileSystem local("local"); int main() { FILE* fp = fopen("/local/MBED.HTM", "r"); // SYS_OPEN if (fp) { for(int i = 0; i < 176; i++) { pc.putc(fgetc(fp)); // SYS_READ,SYS_WRITEC }…

workspace_tools/export_example.py

# export_example.py 2013/8/11 """ mbed SDK Copyright (c) 2011-2013 ARM Limited Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the Li…

workspace_tools/private_settings.py

# private_settings.py from os.path import join ARM_PATH = "C:/Keil/ARM/ARMCC" ARM_BIN = join(ARM_PATH, "bin") ARM_INC = join(ARM_PATH, "include") ARM_LIB = join(ARM_PATH, "lib") ARM_CPPLIB = join(ARM_LIB, "cpplib")

pywinusbの使用例

# USBDAP.py 2013/4/25 import pywinusb.hid class USBDAP: def __init__(self, pname="CMSIS-DAP"): self.dev = None for dev in pywinusb.hid.find_all_hid_devices(): if dev.product_name.find(pname) >= 0: self.dev = dev break assert(self.dev) self…

zipfileとdifflibの使用例

# mydiff.py 2013/4/19 import zipfile import difflib import os.path import sys def mydiff(fromarc, toarc, n=3): to_zip = zipfile.ZipFile(toarc) from_zip = zipfile.ZipFile(fromarc) fromto = [] for t in to_zip.namelist(): name,ext = os.path.s…

LPC1114FN28

#include "LPC11xx.h" void SystemInit() { } void wait() { __IO int i = 200000; while(i-- > 0) ; } int main() { LPC_GPIO0->DIR = 1<<7; // PIO0_7 output while(1) { LPC_GPIO0->DATA ^= 1<<7; wait(); } }

MPL115A

#include "mbed.h" #include "mbed_debug.h" #if defined(TARGET_KL25Z) SPI spi(PTE1,PTE3,PTE2); // SPI_1 DigitalOut cs(PTE4); #endif int main() { cs = 1; debug(" Read Coefficient(a0,b1,b2,c12)\n"); cs = 0; for(int addr = 0x04; addr <= 0x0b; a…

app-board-LM75B mbed NXP LPC1768

# app-board-LM75B mbed NXP LPC1768 # http://mbed.org/users/chris/code/app-board-LM75B/ import mbed import sys class LM75B: LM75B_ADDR=0x90 LM75B_Conf=0x01 LM75B_Temp=0x00 def __init__(self, sda, scl): self.i2c = mbed.I2C(sda, scl) cmd = ch…

app-board-RGB mbed NXP LPC1768

# app-board-RGB mbed NXP LPC1768 # http://mbed.org/users/chris/code/app-board-RGB/ import mbed import sys r = mbed.PwmOut('p23') g = mbed.PwmOut('p24') b = mbed.PwmOut('p25') r.period(0.001); while 1: i = 0.0 while i < 1.0: p = 3.0 * i r.w…

app-board-LCD mbed NXP LPC1768

# app-board-LCD mbed NXP LPC1768 # http://mbed.org/users/chris/code/app-board-LCD/ # http://mbed.org/users/dreschpe/code/C12832_lcd/ import sys import mbed class C12832_LCD: def __init__(self): self._spi = mbed.SPI('p5','NC','p7') self._re…

FRDM-GPIO

# FRDM-GPIO # http://mbed.org/users/mbed_official/code/FRDM_GPIO/ import mbed import sys gpo = mbed.DigitalOut('PTB8') led = mbed.DigitalOut('LED_RED') while 1: gpo.write(1) led.write(1) # Off sys.wait(2*1000) gpo.write(0) led.write(0) # on…

FRDM_MMA8451Q

# FRDM_MMA8451Q # http://mbed.org/users/mbed_official/code/FRDM_MMA8451Q/ import mbed import sys def float(n): s = 1.0 if n < 0: s = -1.0 n *= -1 f = 0.0 a = 1.0 while n: if n & 1: f += a n >>= 1 a *= 2.0 f *= s return f def abs(a): if a <…

[pymite[KL25Z] FRDM_TSI Touch Sensor

# FRDM_TSI Touch Sensor # http://mbed.org/users/mbed_official/code/FRDM_TSI/ import sys import mbed led = mbed.PwmOut('LED_GREEN'); tsi = mbed.TSISensor() while 1: led.write(1.0 - tsi.readPercentage()) sys.wait(100)

websocket clientのテスト

# wsbench.py 2013/2/21 # coding: utf-8 # import websocket import base64 import time import argparse channel = "public-ch" url = "ws://sockets.mbed.org/ws/" + channel + "/rw"; CHUNK=2*30 def buf_to_websocket(buf, ws=None): print "image size…

QcamOrbitAFのモータ制御をする。

// BaseJpegDecode_example/main_QcamOrbitAF.cpp 2013/2/16 // simple color tracking for Logitech Qcam Orbit AF // #include "mbed.h" #include "rtos.h" #include "BaseUsbHost.h" #include "UvcCam.h" #include "BaseJpegDecode.h" #include "Terminal…

ExtensionUnitのテストプログラム

class ExtensionUnit : public RPC { public: ExtensionUnit(int cam, int UnitID = 9, const char* name = NULL):RPC(name), _UnitID(UnitID) { _cam = reinterpret_cast<BaseUvc*>(cam); } int PanTilt(int pan, int tilt) { struct PanTiltR { int16_t pan; int16_t</baseuvc*>…

RPC_Serial/main.cpp

RPC::constructの使用例を追加。 #include "mbed.h" #include "mbed_rpc.h" Serial pc(USBTX, USBRX); int i1; float f2; void func1(Arguments* arg, Reply* r) { pc.printf("obj_name: %s\n", arg->obj_name); pc.printf("method_name: %s\n", arg->method…

RPC_Serial/main.cpp

#include "mbed.h" #include "mbed_rpc.h" Serial pc(USBTX, USBRX); int i1; float f2; void func1(Arguments* arg, Reply* r) { pc.printf("obj_name: %s\n", arg->obj_name); pc.printf("method_name: %s\n", arg->method_name); pc.printf("argc: %d\n",…

jpeg2bmp.py

# coding:utf-8 # jpeg2bmp.py 2012.10.28 import logging import math import BaseJpegDecode import bmp24 zigzag = [ 0, 1, 8, 16, 9, 2, 3,10,17,24, 32,25,18,11, 4, 5,12,19,26,33,40, 48,41,34,27,20,13,6, 7,14,21,28,35,42,49,56, 57,50,43,36,29,2…

BaseJpegDecode.py

#!/usr/bin/env python # coding:utf-8 # BaseJpegDecode.py 2012.10.23 import abc import logging from collections import Counter class BitPattern: def __init__(self, data=0, size=0): self.data = data self.size = size def clear(self): self.dat…

bmp24.py

# coding:utf-8 # bmp24.py 2012.10.26 import logging def LE32write(buf, i, value): buf[i] = value & 0xff buf[i+1] = (value>>8) & 0xff buf[i+2] = (value>>16) & 0xff buf[i+3] = (value>>24) & 0xff class bmp24(): def __init__(self, width = 160,…

BaseJpegDecode.py

DQTの処理の追加をする。 #!/usr/bin/env python # coding:utf-8 # BaseJpegDecode.py 2012.10.23 import abc import logging from collections import Counter class BitPattern: def __init__(self, data=0, size=0): self.data = data self.size = size d…

BaseJpegDecode.py

MCUの垂直サンプリングファクタを修正する。 #!/usr/bin/env python # coding:utf-8 # BaseJpegDecode.py 2012.10.3 import abc import logging from collections import Counter class BitPattern: def __init__(self, data=0, size=0): self.data = data s…

kisyo.py

気象情報システムからデータを取得してcosmにPUTする。 #!/usr/bin/env python # coding:utf-8 # kisyo.py 2012.9.30 import logging import webapp2 from google.appengine.api import urlfetch from xml.dom import minidom from collections import Order…

BaseJpegDecode.py

JPEGのHuffman decodeのテスト。 #!/usr/bin/env python # coding:utf-8 # BaseJpegDecode.py 2012.9.27 import abc import logging from collections import Counter class BitPattern: def __init__(self, data=0, size=0): self.data = data self.size = …