Skip to content

Rapidnack/Esp32IfTest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Esp32IfTest

Esp32IfTestプロジェクトは、C#ライブラリEsp32Ifと、そのサンプルアプリケーションEsp32IfTestを含んでいます。

C#ライブラリEsp32Ifは、別プロジェクトRemoteEsp32のArduinoライブラリと組み合わせることで、 Arduino core for the ESP32のほとんどの関数をC#から実行することができます。 Esp32If and RemoteEsp32

サンプルアプリケーションEsp32IfTestは、C#ライブラリEsp32Ifを使ったWindows.Formsアプリケーションです。ESP32のADC、DAC、LEDC、Touch、I2C、SPIをC#から操作しています。ESP32には別プロジェクトのArduinoライブラリRemoteEsp32のサンプルスケッチEsp32ServerStaTest.inoを書き込みます。 Esp32IfTest and Esp32ServerStaTest

Esp32IfTest screen

Esp32IfTest bread board

Arduino core for the ESP32の関数の内、下記をC#から実行できます。

  • double temperatureRead()
  • uint micros()
  • uint millis()
  • void delay(uint ms)
  • void delayMicroseconds(uint us)
  • int analogRead(int pin)
  • void analogReadResolution(int bits)
  • void analogSetWidth(int bits)
  • void analogSetCycles(int cycles)
  • void analogSetSamples(int samples)
  • void analogSetClockDiv(int clockDiv)
  • void analogSetAttenuation(AdcAttenuation attenuation)
  • void analogSetPinAttenuation(int pin, AdcAttenuation adcAttenuation)
  • int hallRead()
  • bool adcAttachPin(int pin)
  • bool adcStart(int pin)
  • bool adcBusy(int pin)
  • int adcEnd(int pin)
  • void dacWrite(int pin, int value)
  • void pinMode(int pin, GpioFunction mode)
  • void digitalWrite(int pin, int val)
  • int digitalRead(int pin)
  • void attachInterrupt(int pin, Action<int, UInt32> f, InterruptMode mode)
  • void detachInterrupt(int pin)
  • double ledcSetup(int channel, double freq, int resolution_bits)
  • void ledcWrite(int channel, int duty)
  • double ledcWriteTone(int channel, double freq)
  • double ledcWriteNote(int channel, Note note, int octave)
  • uint ledcRead(int channel)
  • double ledcReadFreq(int channel)
  • void ledcAttachPin(int pin, int channel)
  • void ledcDetachPin(int pin)
  • uint sigmaDeltaSetup(int channel, uint freq)
  • void sigmaDeltaWrite(int channel, int duty)
  • int sigmaDeltaRead(int channel)
  • void sigmaDeltaAttachPin(int pin, int channel)
  • void sigmaDeltaDetachPin(int pin)
  • void touchSetCycles(int measure, int sleep)
  • int touchRead(int pin)
  • void touchAttachInterrupt(int pin, Action<int, UInt32> f, int threshold)

I2C

  • void begin(int sda = -1, int scl = -1, uint frequency = 0)
  • void setClock(uint frequency)
  • uint getClock(uint frequency)
  • void setTimeOut(int timeOutMillis)
  • int getTimeOut()
  • int lastError()
  • string getErrorText(int err)
  • I2CError writeTransmission(int address, byte[] buff, bool sendStop = true)
  • I2CError readTransmission(int address, byte[] buff, bool sendStop, out uint readCount)
  • void beginTransmission(UInt16 address)
  • void beginTransmission(byte address)
  • void beginTransmission(int address)
  • int endTransmission(bool sendStop)
  • int endTransmission(int sendStop)
  • int endTransmission()
  • int requestFrom(UInt16 address, int size, bool sendStop)
  • int requestFrom(UInt16 address, int size, int sendStop)
  • int requestFrom(UInt16 address, int size)
  • int requestFrom(byte address, int size, int sendStop)
  • int requestFrom(byte address, int size)
  • int requestFrom(int address, int size, int sendStop)
  • int requestFrom(int address, int size)
  • uint write(byte data)
  • uint write(byte[] buff)
  • int available()
  • int read()
  • int peek()
  • void flush()
  • uint write(string s)
  • uint write(uint n)
  • uint write(int n)
  • uint write(UInt16 n)
  • uint write(Int16 n)
  • void dumpInts()
  • void dumpI2C()

SPI

  • void begin(int sck = -1, int miso = -1, int mosi = -1, int ss = -1)
  • void end()
  • void setHwCs(bool hwCs)
  • void setBitOrder(SPIBitOrder bitOrder)
  • void setDataMode(SPIMode mode)
  • void setFrequency(uint frequency)
  • void setClockDivider(uint clockDiv)
  • uint getClockDivider()
  • void beginTransaction(uint clock = 1000000, SPIBitOrder bitOrder = SPIBitOrder.MSBFIRST, SPIMode dataMode = SPIMode.MODE0)
  • void endTransaction()
  • int transfer(int data)
  • int transfer16(int data)
  • uint transfer32(uint data)
  • byte[] transferBytes(byte[] txBuf)
  • uint transferBits(uint data, int bits)
  • void write(int data)
  • void write16(int data)
  • void write32(uint data)
  • void writeBytes(byte[] data)
  • void writePixels(byte[] data)
  • void writePattern(byte[] data, uint repeat)

Dependency

  • Microsoft Visual Studio Community 2017
  • .NET Framework 4.6.1

Usage

ESP32の準備

  1. Arduino IDEをダウンロードしてインストールします。

  2. Arduino core for the ESP32のインストール手順に従ってライブラリマネージャに追加してインストールします。

  3. RemoteEsp32をZIPファイルを保存し、Sketch > Include Library > Add .ZIP Libraryでインストールします。

  4. ESP8266 and ESP32 Oled Driver for SSD1306 displayをライブラリマネージャで検索してインストールします。

  5. AD9833 LibraryをZIPファイルを保存し、Sketch > Include Library > Add .ZIP Libraryでインストールします。

  6. Adafruit Unified sensorをライブラリマネージャで検索してインストールします。

  7. Adafruit ADXL345をライブラリマネージャで検索してインストールします。

  8. ESP32とPCをUSBケーブルで繋ぎます。

  9. File > Examples > RemoteEsp32 > Esp32ServerStaTestでサンプルスケッチを開き、ESP32に書き込みます。

Authors

Rapidnack

References

https://github.com/Rapidnack/RemoteEsp32

About

Combining the Esp32If C# library with the RemoteEsp32 arduino library, You can use arduino functions in Visual Studio C#.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages