筆者が「C++と組み込み環境」(http://cppemb.blog17.fc2.com/)というブログを書き始めた数年前に比べると,組込み開発の現場でC++が利用されるケースがずいぶん増えてきました.特に大規模な開発でC++の利用機会が多いようです.今後もこの傾向は続くことでしょう.それにともない,Cの経験は豊富だけれども,C++はほとんど使ったことがないというエンジニアも,C++に触れる機会が多くなってきます. C++は非常に豊富な機能を備えたプログラム言語であり,一朝一夕にマスターできるものではありません.それでも,Cを使いこなせる経験者であれば,C++の機能の多くを使用することはあきらめ,Cの延長上にある導入しやすい機能だけを使った「より良いC」として,今日,明日にでもC++の便利さを享受することができます.しかしさらに,より良いCではなく,本格的にC++を使いこなせるようになれば
2月13 Arduinoでスケッチのコンパイル時 undefined reference to `loop' などが出る場合の対処 カテゴリ:Arduino 特にライブラリを作りながらスケッチも書いている場合、Arduino IDEでスケッチをコンパイルすると undefined reference to `setup' や undefined reference to `loop' が出てエラーになることがある。どうやらスケッチをスケッチとして認識せずC++ソースとみなしてコンパイルしているような動作。 以下は作業フォルダの例。 BYODというフォルダ以下に BYOD.ino (Arduino IDEスケッチ) BYOD.cpp (作成中のライブラリ) BYOD.h (同上) このような構成のときにエラーがでる。スケッチのファイル名はフォルダ名と同じでなければならないので、次のようにリネ
"error: expected unqualified-id before numeric constant"とかいうトンチキなエラーが2個連続で起きたら……エラーが指定されたトコではなく、全く例外の所に問題がある可能性があります。 実際のところ 実際に起きたエラーはこちら。 Controller:5: error: expected unqualified-id before numeric constant Controller:31: error: expected unqualified-id before numeric constantエラーは5行目、31行目とかなってます。 が、5行目はどうみてもただの変数定義。 31行目については関数と関数の間に「888」とか謎の文字列が追加されてました。 Arduino microで作ったUSB-Keyboradのデバッグ中に誤爆したよ
メールが来ました.学内の先生からです.アルドゥイーノのスケッチのプログラミングで,定数を定義するのに,ある本ではconst intを使っており,また別の本では#defineを使っているのだけれど,夏休みのプログラミング教室で教える際には,どちらのほうが良いのか,とのこと.…… const int ledPin = 13; と #define ledPin 13 の違い,というわけですが,一般論としては,const intで書く方が,“Cらしい”と言っていいでしょう. ただし,もしこのledPinが,配列宣言時の要素数(int array[ledPin];)や,switch〜caseのラベル(case ledPin:)として出現する場合には,変数名だと都合が悪いので,#define を選ぶ必要があります.まあ,const intを使っている本があるということなので,こんな事例はないのでしょう
ドローン製作記のメインページ 【完全自作】Arduinoを使用した自作ドローンの製作記(完成) ドローンが飛ぶためには姿勢角を求めるセンサーが必須です.これは,ドローンの中でも非常に重要なパーツです. プロペラを均等に回せば飛ぶんじゃないかと思っている人もいますが,そんなことしたら1秒で墜落します.というより,離陸すらできないかも? そこで,ドローンの姿勢を正確に推定していく必要があります. ちなみに,今回はMPU9250という9軸センサを使用しました.使い方はこちらにまとめてあります. 【9軸センサ】MPU9250の使い方とArduinoプログラム ドローンの状態推定 まず,ドローンの状態推定をして,機体姿勢を推定するには,角速度センサ(ジャイロセンサ)と加速度センサの両方が必要になります. 理論上はジャイロセンサの値を積分することで,機体の姿勢は求まります.しかし,ジャイロセンサにはド
APモードのESP-32にWiFi接続する方法を残しておこうと思った次第です。 というのも、 esp8266で使っていたソースが流用できない。 サンプルにAPモードでの接続のものが見当たらない。 という状況だったので、まとめようと決意しました。 では以下に方法をまとめていきます。 ※一つ前の記事で環境構築が済んでいることが前提です。 ■ESP-32でAPモードでWiFiを起動するソース 結論から言うと、以下のソースでいけます。 ESP32_WiFi.ino #include <WiFi.h> WiFiServer server(80); const char ssid[] = "ESP32-WiFi"; // SSID const char pass[] = "esp32wifi"; // password const IPAddress ip(192, 168, 20, 2); // I
ここでは、日本の電波法をクリアして、技術適合認証(技適マーク)を取得した、ESPRESSIF社の Wi-Fi マイコンボード ESP-WROOM-02 を Arduino IDE (統合開発環境) で開発するための ESP8266 ボードのインストール方法を説明します。 ESP-WROOM-02 は ESP8266 に技適マークが付いてパッケージ化されたものです。 Arduino UNO よりも計算速度が速く、Arduino MEGA よりもメモリが多く、3MB までのユーザーメモリを使用できて、しかも2.4GHzの無線LAN(Wi-Fi)で通信ができる、優れものボードです。 しかも、安い! その ESP-WROOM-02 を使うには、スイッチサイエンスさんの ESPr Developer ( ESP-WROOM-02 開発ボード ) をお勧めします。 USB-シリアル変換、電源レギュレー
はじめに PololuのArduino互換のロボットBalboa 32U4を動かすまでの記録です。Arduinoは初めてでいろいろ分からなかったので、その手順です。 準備・工作 スイッチサイエンスから購入しました。 https://www.switch-science.com/catalog/3243/ キット以外にもPololuのモーター2つ、タイヤ2つが最低限必要です。 Pololuからのドキュメントはこちら。 https://www.pololu.com/docs/0J70 組み立て方はドキュメントの4. Assembling the Balboa 32U4 kitからです。少し難く、5-6時間ぐらいかかりました。 注意点としては、モーターの極性を指示通りにつけること、アウトプットシャフトをボールベアリングに差し込むところがめちゃくちゃ固いこと、細かい部品(4極の磁気ディスクやネジな
※検索性向上のためタイトル変更しました(旧:Arduinoに慣れたら小さくて安くて最高な生AVRも使ってみてはいかがでしょうか) Arduinoに入ってるマイコンあるじゃないですか、あれがAVRです。逆にいうとAVRの周りにいろんな部品がついたのがArduinoです。 いろんな部品がついてるおかげでいろいろ便利になってるわけですが、普通にスイッチでLEDの制御するとかサーボ動かすだけとかの用途であれば、あのへんの部品はべつに要らないんですね。 なのでAVRだけで使いたいわけです。 上からArduino Uno、Arduino Nanoの互換品、AVR(ATmega88) Arduinoを買うと3000円くらいしますがAVRだけなら150~250円くらいで買えます。金額的にArduinoだと使い回し前提の使い方になりますが、AVRならマイコンごと基板にはんだ付けしちゃっても惜しくないです。
オープンソースハードウェアによって誰でも簡単に短時間且つ安価にM2M/IoTシステム構築が出来るノウハウを紹介。 Arduino上にStringクラス関数があることを知らない人は多いと思います。また良く知る人たちは、メモリリークのことを心配して使いたがらない人も多いと思います。 弊社では、3GIMのサンプルプログラムを作成したなかでは、ほとんど文字配列ではなく、Stringクラス関数を利用するようになりました。まわりからは、メモリリークが起きやすい、つまりメモリがどんどん増えて行ってプログラムが中断するなどと注意するようにと助言されました。 しかし現時点、多くのサンプルスケッチを作成しては、数か月も動かしているなかでは、特にメモリリークで困ったことはありません。 こんななかで、以下のサイトを発見しました。ただし、このサイトは、2009年に書かれたもので、メモリリークでの問題点を指摘し、改善
配線図 Arduinoで使用するデジタルピンが「1,2,4,8」ではなく「11,2,4,8」なのは後述します。 次は公式データシートより引用(42j.pdf) ※「C」がアノードコモン(アノード共通接続/Anode common) 次はスケッチの実行例です。 スケッチ(プログラム) 現在選択されているスイッチ番号の「2進化10進数」を表示します。左から42J02GBの「1,2,4,8」ピンです。 void setup() { Serial.begin(9600); pinMode(11,INPUT); pinMode(2,INPUT); pinMode(4,INPUT); pinMode(8,INPUT); } void loop() { Serial.print(digitalRead(11)); Serial.print(" "); Serial.print(digitalRead(2
前回紹介した、つまようじを使い隠し音声を鳴らす方法でも、全パターンの音声再生を試すことは可能ですが、TONGARISMではあくまで技術的に、シフトブレスから送信される赤外線パターンを解析します。 オシロスコープやロジックアナライザなどの機材があれば、時間を掛けずに簡単に解析することは可能です。ただし、これらの機材は高価なものであるため、技術力を以って極力お金を掛けずに解析する方法として、安価なArduino(アルデュイーノ)というワンボードマイコン(マイコンと入出力ピンを備えた1枚の基板)を使いました。 準備 使用機器 Arduino(アルデュイーノ) マイコンと入出力ピンを備えた基板です。写真はTONGARISMで使用したArduino Unoというモデルで、Amazonで3,240円で販売されています。海外から発送となる安価なモデルであれば、1,000円以下で販売されています。 赤外線
今年はレグホーン10周年記念にして、私が一人で長年開発を続 けてきた自作サーボ(NAKAYANサーボ→Nサーボ)がようやく完成と 言える状態になった年でもあります。 ロボット仲間の方達には”造っている”という話題だけは出していたの ですが、なかなかお見せできず、もどかしい思いをさせてしまった方 もおられると思いますので、ここに約10年の孤軍奮闘の軌跡を簡単 にまとめておきます。 興味のある方はご覧下さい。 第1章「さっそく断念」 2007年の末、私の愛機レグホーンがデビューして戦績が上がって きたころ。 当時のレグホーンはJ社のサーボを使っており、そのギアボックスの 貧弱さやモーターの発熱に大変苦労しつつロボットを楽しんでおり ました。 他のみなさんがK社のサーボで余裕を持ってロボットを楽しんでいる 様子を見て、このサーボではやっていけないなと実感しました。 しかし私は以前から”人と違うモ
購入したばかりのNexus 5は、1日使いまくっても途中で充電が切れてしまうことはなかったものの、使用から1年以上が経過した現在ではバッテリーの消耗が激しく、使っていてもバッテリーの心配ばかりしてしまいます。使い続けるにはどうしたらいいか熟考した結果、バッテリーを新品に交換してみるしかなさそう、という結論に達したので、自分でバッテリーを交換してみました。 ※ユーザー自身が端末の修理・分解を行うとメーカー保証がなくなってしまったり、端末が故障したりする可能性もあるので、十分に注意してください。 1年以上使用したNexus 5。使用感に全く問題はなく、むしろずっと使い続けたいくらいなのですが、使用し続けるのに立ちはだかったのがバッテリー持ちの悪さです。 下記は平日におけるバッテリー残量を示したグラフで、7時から9時くらいまでグラフが急激に下降しているのがわかります。これは通勤時にNexus 5
2019/06/27更新 IoT開発や電子工作を行う上で回路図を視覚的に表すのにFritzingがとても便利ですが、世の中に流通している膨大な種類の部品を網羅するのには無理があるためパーツとして用意されていないものも多数あります。 パーツを自作する方法も用意されていますが非常に手間がかかるうえにデザイン力も必要となるためなかなか手が出ません。 しかし巷にはこのパーツを作って公開されているかたも大勢いらっしゃるのでまとめていきます。 尚、パーツはfzpz形式で配布されており、解凍せずにそのままFritzingの[ファイル] > [開く]で配布ファイルを指定すればMINEカテゴリにパーツが追加されます。 Fritzingのインストールはとても簡単ですが、以下で手順を説明しています。 関連資料・記事 いろいろ parts submit (fritzing Forum) AdaFruit Frit
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く