randomnerdtutorials.com/installing-the-esp32-board-in-arduino-ide-windows-instructions/

 

Installing ESP32 in Arduino IDE (Windows, Mac OS X, Linux) | Random Nerd Tutorials

Learn how to install the ESP32 board add-on in Arduino IDE in less than 1 minute. This guides works in any operating system: Windows PC, Mac OS X, and Linux.

randomnerdtutorials.com

 

 

 

There’s an add-on for the Arduino IDE that allows you to program the ESP32 using the Arduino IDE and its programming language. In this tutorial we’ll show you how to install the ESP32 board in Arduino IDE whether you’re using Windows, Mac OS X or Linux.

Watch the Video Tutorial

This tutorial is available in video format (watch below) and in written format (continue reading this page). 

 

If you have any problems during the installation procedure, take a look at the ESP32 Troubleshooting Guide.

If you like the ESP32, enroll in our course: Learn ESP32 with Arduino IDE.

Prerequisites: Arduino IDE Installed

Before starting this installation procedure, make sure you have the latest version of the Arduino IDE installed in your computer. If you don’t, uninstall it and install it again. Otherwise, it may not work.

Having the latest Arduino IDE software installed from arduino.cc/en/Main/Software, continue with this tutorial.

Do you need an ESP32 board? You can buy it here.

Installing ESP32 Add-on in Arduino IDE

To install the ESP32 board in your Arduino IDE, follow these next instructions:

  1. In your Arduino IDE, go to File> Preferences
  2. Enter https://dl.espressif.com/dl/package_esp32_index.json into the “Additional Board Manager URLs” field as shown in the figure below. Then, click the “OK” button:

    https://dl.espressif.com/dl/package_esp32_index.json, http://arduino.esp8266.com/stable/package_esp8266com_index.json
  3. Note: if you already have the ESP8266 boards URL, you can separate the URLs with a comma as follows:
  4.  
  5. Open the Boards Manager. Go to Tools > Board > Boards Manager…
  6. Search for ESP32 and press install button for the “ESP32 by Espressif Systems“:
  7. That’s it. It should be installed after a few seconds.

 

Testing the Installation

Plug the ESP32 board to your computer. With your Arduino IDE open, follow these steps:

1. Select your Board in Tools > Board menu (in my case it’s the DOIT ESP32 DEVKIT V1)

 

2. Select the Port (if you don’t see the COM Port in your Arduino IDE, you need to install the CP210x USB to UART Bridge VCP Drivers):

3. Open the following example under File > Examples > WiFi (ESP32) > WiFiScan

 

4. A new sketch opens in your Arduino IDE:

 

5. Press the Upload button in the Arduino IDE. Wait a few seconds while the code compiles and uploads to your board.

6. If everything went as expected, you should see a “Done uploading.” message.

7. Open the Arduino IDE Serial Monitor at a baud rate of 115200:

 

8. Press the ESP32 on-board Enable button and you should see the networks available near your ESP32:

Troubleshooting

If you try to upload a new sketch to your ESP32 and you get this error message “A fatal error occurred: Failed to connect to ESP32: Timed out… Connecting…“. It means that your ESP32 is not in flashing/uploading mode.

Having the right board name and COM por selected, follow these steps:

  • Hold-down the “BOOT” button in your ESP32 board

 

  • Press the “Upload” button in the Arduino IDE to upload your sketch:

  • After you see the  “Connecting….” message in your Arduino IDE, release the finger from the “BOOT” button:

  • After that, you should see the “Done uploading” message

That’s it. Your ESP32 should have the new sketch running. Press the “ENABLE” button to restart the ESP32 and run the new uploaded sketch.

You’ll also have to repeat that button sequence every time you want to upload a new sketch. But if you want to solve this issue once for all without the need to press the BOOT button, follow the suggestions in the next guide:

If you experience any problems or issues with your ESP32, take a look at our in-depth ESP32 Troubleshooting Guide.

Wrapping Up

This is a quick guide that illustrates how to prepare your Arduino IDE for the ESP32 on a Windows PC, Mac OS X, or Linux computer. If you encounter any issues during the installation procedure, take a look at the ESP32 troubleshooting guide.

Now, you can start building your own IoT projects with the ESP32!

 

Thanks for reading.

블로그 이미지

remoted

Remoted's IT LAB & POST DATABASE

댓글을 달아 주세요

App threw an error during load
Error: The module '\\?\C:\Users\talon\OneDrive\Desktop\focus\node_modules\cap\build\Release\cap.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 72. This version of Node.js requires
NODE_MODULE_VERSION 73. Please try re-compiling or re-installing
the module (for instance, using `npm rebuild` or `npm install`).
    at process.func (electron/js2c/asar.js:155:31)
    at process.func [as dlopen] (electron/js2c/asar.js:155:31)
    at Object.Module._extensions..node (internal/modules/cjs/loader.js:828:18)
    at Object.func (electron/js2c/asar.js:155:31)
    at Object.func [as .node] (electron/js2c/asar.js:155:31)
    at Module.load (internal/modules/cjs/loader.js:645:32)
    at Function.Module._load (internal/modules/cjs/loader.js:560:12)
    at Module.require (internal/modules/cjs/loader.js:685:19)
    at require (internal/modules/cjs/helpers.js:16:16)
    at Object.<anonymous> (C:\Users\talon\OneDrive\Desktop\focus\node_modules\cap\lib\Cap.js:3:13)

 

 

 

Thank you this helped! Just for reference if anyone is having the same issues, here are the commands you need to run that come from the link provided by @mscdex:

npm install --save-dev electron-rebuild

 

 

 

was compiled against a different Node.js version using
NODE_MODULE_VERSION 48. This version of Node.js requires
NODE_MODULE_VERSION 73. Please try re-compiling or re-installing
the module

I see, thanks for pointing that out!

I get it now: npm rebuild uses my local node (ABI 72), which isn't what electron has.

The question is, how can I get electron rebuild to work? I have the latest electron-rebuild, v 1.8.6.

This is what I've tried so far:

  • If I run npx electron-rebuild right now, then run Electron, I get the same 72 vs 73 error.
  • If I then remove node_modules and npm install, then the error becomes 48 vs 73.
  • If I then downgrade electron to ^5, re-install node_modules, error goes to 47 vs 70.
  • If I then run electron-rebuild, no change. 47 vs 70
  • If I then run npm rebuild, it goes to 72 vs 70 (seems to make sense, my node is v12, Electron v5 expects a lower ABI version).

Thanks for the help!

블로그 이미지

remoted

Remoted's IT LAB & POST DATABASE

댓글을 달아 주세요

안녕하세요, 라즈베이 파이를 이용해 CM700을 제어하려는 학생입니다.

 

로보플러스를 이용해 지그비 리모콘 U를 누르면 다이나믹셀 목표위치를 0으로, D를 누르면 1024로, 떼면 512로 이동하는 간단한 테스크를 짜서 동작을 확인했습니다.

물론 현재 지그비 리모콘으로는 매우 잘 작동하며, 제 목표는 라즈베리파이의 GPIO 출력핀, 또는 LN101 USB를 통해 CM700과 UART 통신을 통해 리모콘을 모방하는 것입니다.

현재 간단하게 아두이노로 시리얼통신을 테스트중인데요, 통신 패킷이 잘 이해가 가지 않습니다.

지그비 SDK를 살펴본 결과,

int zgb_tx_data(int data)
{
    unsigned char SndPacket[6];
    unsigned short word = (unsigned short)data;
    unsigned char lowbyte = (unsigned char)(word & 0xff);
    unsigned char highbyte = (unsigned char)((word >> 8) & 0xff);

    SndPacket[0] = 0xff;
    SndPacket[1] = 0x55;
    SndPacket[2] = lowbyte;
    SndPacket[3] = ~lowbyte;
    SndPacket[4] = highbyte;
    SndPacket[5] = ~highbyte;

    if( zgb_hal_tx( SndPacket, 6 ) != 6 )
        return 0;

    return 1;
}

에서, 즉, int data로 입력받은 정수를 16진수화시켜 6바이트 통신 패킷에 맞게 변환시키는 것 까지는 이해했습니다. 

이때, unsigned char을 사용하는데, 즉, 통신패킷에 맞게 변환된 값은 char 형태로 저장되는 건가요?

통신 패킷으로 전달하는 데이터가 char인지, int인지, int면 보낼때 DEC로 보내야 하는지, HEX로 보내야 하는지 잘 모르겠습니다.

또 SndPAcket[6]이라는, 일종의 문자열인데 한번에 string으로 전달하는 것인지, 순차적으로 하나하나 전달하는 것인지 궁금합니다.

 

현재 아두이노 상에서 for문을 사용해 순차적으로 명령을 내리는 것을 테스트해 보았습니다. SDK에서 위 함수 전환 부분만 copy하여 포인터 관련 부분은 지워버리고, SndPacket을 전역변수로 바꾸어 테스트 했습니다. 

unsigned char SndPacket[6];

int zgb_tx_data(int data)
{
    //unsigned char SndPacket[6];
    unsigned short word = (unsigned short)data;
    unsigned char lowbyte = (unsigned char)(word & 0xff);
    unsigned char highbyte = (unsigned char)((word >> 8) & 0xff);

    SndPacket[0] = 0xff;
    SndPacket[1] = 0x55;
    SndPacket[2] = lowbyte;
    SndPacket[3] = ~lowbyte;
    SndPacket[4] = highbyte;
    SndPacket[5] = ~highbyte;

    //if( zgb_hal_tx( SndPacket, 6 ) != 6 )
        return 0;

    //return 1;
}

int t=0;

zgb_tx_data(t);
   
for(int m=1; m<=6; m++)
{
   Serial.print(SndPacket[m],HEX);// Serial.println("thtest");
 }

위 소스를 이용해 tx,rx를 크로스해 CM700에 입력해본 결과, 제어기의 RX LED가 깜빡이는건 확인했습니다만 모터는 작동하지 않더군요. 

 

CM700 제어기에 명령을 전달할때, 통신 패킷에 따라 어떻게 전달해야 하는지 궁금합니다.

결론적으로,

1. 명령의 자료형(int,char)은 무엇인지, 전달할때 DEC인지 HEX인지,

2. 위처럼 for문을 사용해서 6개의 데이터를 순차적으로 전달해야 하는지,

3. 아니면 SndPAcket[6]이라는, 일종의 문자열을 한번에 string으로 전달하는 것인지,아니면 또 다른 방법이 필요한지 알려주시면 감사드리겠습니다.

 

두서없이 질문드려 죄송합니다. 많은 조언 부탁드립니다.

블로그 이미지

remoted

Remoted's IT LAB & POST DATABASE

댓글을 달아 주세요

 

에러에서 npm과 node가 latest_version 인지 확인하라는 메세지가 나온다.

환경단에서 gauge.isEnabled() 와 같이 등장할 수 있다.

 

1.

$ npm install latest-version

 

전체 환경인 상태에서 npm의 버전을 latest 로 올려준다.

또한, package-lock.json 이 found 되는 경우에도 라이브러리 설치에 여러모로 영향을 미치기 마련인데, 

 

package 관리자를 yarn 을 쓴다고 해서, yarn 으로 무조건 조져도 되는 것도 아니고... 

hang up 걸린 상태가 종종 등장하기 때문에, 

 

하드웨어 패키지 내부에서 npm install 대신에 yarn 을 설치해서 잡아줬어야 했고

전체 환경에서는 windows-build-tools 와 node-gyp 를 잡아줘야 했다.

 

어쨋든 @4.0.0 으로 설정하게 가버리면 완전 나가리가 된다.

블로그 이미지

remoted

Remoted's IT LAB & POST DATABASE

댓글을 달아 주세요

결국 앞전에서 삽질 하던것은 실패했다.

 

그래서 에러에 대해서 읽어보았다.

 

1.

 

그래 에러형이 까라면 까야지.

버전도 맘에 안들고 여러모로 맘에 안드니 "Desktop development with C++ "  Workload 환경이 맘에 안든다는 이야기고, 빡치면 문서 찾아보라그래서 들어가봤다.

 

 

2.

github.com/nodejs/node-gyp#on-windows

 

nodejs/node-gyp

Node.js native addon build tool. Contribute to nodejs/node-gyp development by creating an account on GitHub.

github.com

역시 킹허브 갓허브에는 해외 개발자들 답게 문서정리를 굉장히 잘해놓았다.

처들어가보니, 환경부터 수정해보란다.

 

On Windows

Install the current version of Python from the Microsoft Store package.

Install tools and configuration manually:

$ npm config set msvs_version 2017

 

If the above steps didn't work for you, please visit Microsoft's Node.js Guidelines for Windows for additional tips.

To target native ARM64 Node.js on Windows 10 on ARM, add the components "Visual C++ compilers and libraries for ARM64" and "Visual C++ ATL for ARM64".

 

 

3. 

응 형 수정해봤는데, 안되더라고... 근데 위에 보니까 링크를 또 남겨놨더라?

Visual Studio Build Tools 를 깔거나 (이건 실패했잖아), 그래서 Visual Studio 2017 Community 를 깔라길래 또 처들어갔다. (그러니까 대충 기반환경 만들어놓고 쌉쳐라 이런거지 뭐)

 

 

 

 

4.

느낌상 이번엔 되지 않을까? 싶은데 되야지 안되면 진짜 죽.. 아니야

블로그 이미지

remoted

Remoted's IT LAB & POST DATABASE

댓글을 달아 주세요

$ npm install --global --production windows-build-tools

 windows-build-tools 를 설치하다보면, 도중에 stuck (hang up)이라는 현상이 발견하게 되는데, 

대부분 해외 포럼에서는 windows-build-tools@4.0.0 을 설치하라고 하지만

 

문제는 난 그 다음에 node-gyp 를 설치하고 나서, working tree 의 dependency 때문에 작동을 잘 할 수 없어서

electron이 잘 작동하지 않고 에러를 뱉기 시작했다.

 

그래서 그냥 에러가 써있는대로 가서 폴더를 날려버렸다.

1.

..\Program Files (x86)\Microsoft Visual Studio\VS2017 

에 들어가면 맘에 안드는 녀석ㅇ ㅣ있는데 그녀석 부터 일단 날려버리고...

 

 

 

2.

그 다음에 명령어를 때려박아준다.,

$ npm remove windows-build-tools@4.0.0

install 의 반대말은 remove 아니겠는가? 그래서 때려박았더니 아주 잘 지워진다.

그것도 dependency 까지 확인하면서 친절하게 지워준다.

 

원래는 npm cache clean 을 넣다가도, 맘에안든다고 --force 를 주라길래 그렇게 했었는데도 안되길래 이렇게 넣어버렸다.

 

위에 @4.0.0 을 표시해준건 VS2015 환경에 대한 세팅을 돌려버리기 위해서다

 

 

 

3.

$ npm remove windows-build-tools

 

그러고 나서 또 꼬여있을 녀석을 위해서 한번더 지워준다

 

 

 

4.

그리고 나서, Stuck 구간이 발견되는 Python 2.7도 Uninstall 해준다.

 

 

5.

$npm install --global --production windows-build-tools

 

6.

그리고 다시 명령어를 때려박아서 위처럼 얌전히 기다린다. 보통 4분정도면 pass 된다고 하는데, 안되면 빡칠 것 같다.

 

 

 

 

블로그 이미지

remoted

Remoted's IT LAB & POST DATABASE

댓글을 달아 주세요

OLED 디스플레이 사용을 위해 필요한 라이브러리와 소스코드를 정리했습니다. 먼저 확인해야 할 것은 OLED 디스플레이의 드라이버 칩입니다. 드라이버 칩에 따라 라이브러리와 사용방법이 완전히 틀려집니다.

 

Adafruit 그래픽 라이브러리 (SSD 1306 및 일부 TFT LCD 등…)

일반적으로 많이 사용.  Adafruit 에서 제작한 라이브러리를 사용하거나 좀 더 원시적인 코드로 구동이 가능합니다. Adafruit 라이브러리는 각종 도형 및 폰트, 선, 채우기 함수를 제공하는 대신 그래픽 버퍼로 램을 꽤 많이 잡아 먹습니다.  아두이노가 보통 2KByte 램으로 돌아간다는 점을 생각하면 램이 부족한 경우가 생길 수 있습니다. 램이 부족할 경우 각종 변수값이 이상하게 입력되고 화면이 찢어지는(?) 현상이 발생합니다.

Adafruit 라이브러리는 2개로 구성되어 있습니다. GFX 라이브러리가 공통된 drawing 함수를 제공하고, 드라이버 칩에 따라 적절하게 동작하도록 드라이버 라이브러리가 맞물리도록 되어 있습니다.

==> OLED + Adafruit 라이브러리 사용방법 페이지

Adafruit OLED 모듈 및 라이브러리 사용법, Adafruit 라이브러리와 호환 가능한 디스플레이 및 드라이버 칩

SSD1306 칩 드라이버 직접 제어하는 방법 예제코드

 

u8glib 범용 그래픽 라이브러리

SSD1325, ST7565, ST7920, UC1608, UC1610, UC1701, PCD8544, PCF8812, KS0108, LC7981, SBN1661, SSD1306, T6963 등을 지원하는 범용 그래픽 드라이버로 u8glib 라이브러리가 있습니다. 8비트 마이크로 컨트롤러에서 사용할 수 있는 가장 막강한 라이브러리입니다. 화면 업데이트가 조금 느린대신 램을 적게 차지하고 안정적입니다.

==> 상세한 사용법 매뉴얼이 업데이트 되었습니다!! 링크로 확인하세요.

라이브러리 공식 페이지지원하는 디바이스 목록, 매뉴얼 및 예제 코드

 

 Character LCD, MGLCD, UTFT 라이브러리

위에서 적합한 라이브러리가 없는 경우 아래 링크를 확인하세요. 각종 LCD 및 UTFT 를 지원하는 라이브러리입니다.

http://www.henningkarlsen.com/electronics/library.php?id=51

 

GLCD 라이브러리

흔한건 아니지만.. KS0108 controller chip 기반한 LCD는 아래 링크로…

http://www.pjrc.com/teensy/td_libs_GLCD.html

OpenGLCD 라이브러리 프로젝트가 있습니다. 여기 라이브러리 주목할만 합니다.

https://bitbucket.org/bperrybap/openglcd/wiki/Home

 

SH1106 라이브러리

SSD1306과 비슷하지만 별도의 라이브러리가 필요한 것 같습니다. 아래 링크를 참고하세요.

http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&p=1150108

아래 라이브러리가 쓸만하다고 하네요.

https://github.com/stanleyhuangyc/MultiLCD

Wonho 님 께서 SH1106 칩셋용 Adafruit 라이브러리를 만들어서 공유중입니다. 아래 링크에 가시면 라이브러리를 받으실 수 있습니다.

https://github.com/wonho-maker/Adafruit_SH1106

 

wonho-maker/Adafruit_SH1106

Adafruit graphic library for SH1106 dirver lcds. Contribute to wonho-maker/Adafruit_SH1106 development by creating an account on GitHub.

github.com

 

 

그래픽 램의 용량 (2K) 때문에 Library 들 간에 Collision 으로 보이는 현상들이 발생했다.

Compatiblity Check 를 해본 결과

 

LiquidCrystal 과 Adafruit 간에 문제가 있는 것으로 생각을 했는데

LiquidCrystal_i2C는 LiquidCrystal을 SPI 용도로 제작한 것에서 i2c 방식으로 포팅을 해서 만든 개수 라이브러리 였고

사실상 Adafruit LiquidCrystal 을 기반해서 만들어졌기 때문에 별 문제가 없었던 것이다.

 

오히려 문제가 됬었던 것은 TM1637 FND Library 였는데 

내부 클래스에서 선언하는 방식과 사용하는 방식이 굉장히 비슷한 데다가 

 

일반적인 example 들이 display 로 생성자를 이용하여 사용하는 것을 볼 때, 메모리 간에 근접문제가 있었던 것이 아닌가 싶다.

 

일단 중요한 것은, 반드시 필요없는 라이브러리나 헤더를 추가하지 않는 것에 유의를 해야할 것 같다.

(특히나 용량이 60~70% 이상으로 올라가면 안정성이 떨어져 제대로 동작하지 않을 가능성이 추가적으로 늘어난다.)

 

블로그 이미지

remoted

Remoted's IT LAB & POST DATABASE

댓글을 달아 주세요

LiquidCrystal and Adafruit SSD1306(SSH1102) Collison Detected

- Library Collision, may be not distingsh between two I2C Sensors, LCD and OLED.

 

Trouble Shooting Processing Start..

블로그 이미지

remoted

Remoted's IT LAB & POST DATABASE

댓글을 달아 주세요