stray '\357' なんとかエラー
2025.03.26
Arduinoで出てくるナゾのエラー。
ご存知の方は読まなくても構いません。
コンパイルすると、こんなエラーが出て中断。
stray '\357' in program
※円マークは実際にはバックスラッシュ。
私も初めて出くわした時には、わけがわからなくて困りました。
これは全角などの文字コードがソースに紛れ込んでいる為に起こります。
自分の経験で覚えているのは、Webサイトに掲載されたソースをコピー・ペーストしてきたときです。
簡単なプログラムだから通るだろうと思ったら、コンパイルが中断してしまう。
あれっおかしいなあ・・・
それで、いくらソースを隅々まで見てもわからない時があったのです。
全角スペースだったら、テキストエディタでソースを開いてみると(スペースも表示されるようにしておく)全角スペースを見つける事ができました。
先日経験した例では、それではありませんでした。
ソースの先頭から見ていこうとして、一番最初のところにカーソルを持ってきた。
カーソルキーを右へ移動しようとしても、なぜか引っかかったような感じでした。数回押すとやっと右へ1文字移動した。
ひょっとしてコレか!
見えない文字(コード)が挟まっていたわけですね。
その見えない文字相手に、DELキーを数回押して、それから改めてコンパイル・・・ようやく通りました。
こういうのってArduinoに限らず、自分の記憶ではかなり昔から有りました。
高校生の頃でした。COBOLのコンパイルが通らないのです。テキストエディタを開いてみてもどこにも誤りは無さそうです。
先生いわく、コントロールコード等が紛れ込んでいて、その見えない敵が悪さをしているということでした。
だから1行ずつ見ていって、あちこちでDELを押してみたりして挟まっている見えないコードを削除していったのです。
TABで区切られたところは、一旦TABを消して文字を詰めてから改めてTABを押し直す。
行末で改行を消し、次の行とくっつけてから改めて改行を押す。
こんなことを延々続けて、コンパイルしてみたら通ったのでした(笑)。
そういえばMSX-DOS2上のテキストエディタもおかしい時があったな。AKIDだったっけ。見えない文字が入っていると思って、カンでそのあたりを消してみたらアセンブルが通った。
ご存知の方は読まなくても構いません。
コンパイルすると、こんなエラーが出て中断。
stray '\357' in program
※円マークは実際にはバックスラッシュ。
私も初めて出くわした時には、わけがわからなくて困りました。
これは全角などの文字コードがソースに紛れ込んでいる為に起こります。
自分の経験で覚えているのは、Webサイトに掲載されたソースをコピー・ペーストしてきたときです。
簡単なプログラムだから通るだろうと思ったら、コンパイルが中断してしまう。
あれっおかしいなあ・・・
それで、いくらソースを隅々まで見てもわからない時があったのです。
全角スペースだったら、テキストエディタでソースを開いてみると(スペースも表示されるようにしておく)全角スペースを見つける事ができました。
先日経験した例では、それではありませんでした。
ソースの先頭から見ていこうとして、一番最初のところにカーソルを持ってきた。
カーソルキーを右へ移動しようとしても、なぜか引っかかったような感じでした。数回押すとやっと右へ1文字移動した。
ひょっとしてコレか!
見えない文字(コード)が挟まっていたわけですね。
その見えない文字相手に、DELキーを数回押して、それから改めてコンパイル・・・ようやく通りました。
こういうのってArduinoに限らず、自分の記憶ではかなり昔から有りました。
高校生の頃でした。COBOLのコンパイルが通らないのです。テキストエディタを開いてみてもどこにも誤りは無さそうです。
先生いわく、コントロールコード等が紛れ込んでいて、その見えない敵が悪さをしているということでした。
だから1行ずつ見ていって、あちこちでDELを押してみたりして挟まっている見えないコードを削除していったのです。
TABで区切られたところは、一旦TABを消して文字を詰めてから改めてTABを押し直す。
行末で改行を消し、次の行とくっつけてから改めて改行を押す。
こんなことを延々続けて、コンパイルしてみたら通ったのでした(笑)。
そういえばMSX-DOS2上のテキストエディタもおかしい時があったな。AKIDだったっけ。見えない文字が入っていると思って、カンでそのあたりを消してみたらアセンブルが通った。
エナジーハーベスト(2号機追加)
2025.03.26
本日、2号機を追加しました。1号機と並べて、一緒に耐久試験です。
2号機の特徴はBME280(温度・湿度・気圧センサー)を使用したことです。ケース内部の湿度と気圧も見たかったのです。
ちなみに1号機はLM61(温度センサー)でした。
結露のメカニズムの解明も目的のひとつで、
暖まると圧力が高まり、冷えると圧力が下がり、外部の空気と水を内部へ吸い込んでしまうのではないかと考えています。
そこで、空気は通すが水は通さない調湿弁を付けて、結露対策ができることの確認をしようとしています。そのために、湿度と気圧を見たいのです。
ところで、またひとつ面白い事に気づきました。
夕方暗くなると、1号機の方が先に休んでしまい、2号機は更に1時間後ぐらいまで頑張るのです。
総合的な消費電流の違いもあるのでしょう。2号機の方が少ない電流で動いており、日が暮れて暗くなり太陽電池の電力がなくなっても、蓄電を少しずつ使って動き続けていました。
蓄電といっても、1号機2号機ともに同じ220μFのチップ積層セラミックコンデンサです。
昼間にデータを受信しながら見ていると、1号機と2号機が交互にデータを送ってきて、まるで追いかけっこをしているようにも見えました。
どちらも同じ60秒ごとの送信ですが、同期はしていませんからそのタイミングは微妙にずれてきます。
だいたい18時半過ぎまで2号機はデータを送ってきていました。
電源電圧も同時にデータを送ってきていますから、毎回見るたびに下がっているのがわかるのです。けなげに良く働くものです。
最後まで絞りきってしまったところでお疲れ様でお休み~、明日(日の出まで)またね~という感じ。
2号機の特徴はBME280(温度・湿度・気圧センサー)を使用したことです。ケース内部の湿度と気圧も見たかったのです。
ちなみに1号機はLM61(温度センサー)でした。
結露のメカニズムの解明も目的のひとつで、
暖まると圧力が高まり、冷えると圧力が下がり、外部の空気と水を内部へ吸い込んでしまうのではないかと考えています。
そこで、空気は通すが水は通さない調湿弁を付けて、結露対策ができることの確認をしようとしています。そのために、湿度と気圧を見たいのです。
ところで、またひとつ面白い事に気づきました。
夕方暗くなると、1号機の方が先に休んでしまい、2号機は更に1時間後ぐらいまで頑張るのです。
総合的な消費電流の違いもあるのでしょう。2号機の方が少ない電流で動いており、日が暮れて暗くなり太陽電池の電力がなくなっても、蓄電を少しずつ使って動き続けていました。
蓄電といっても、1号機2号機ともに同じ220μFのチップ積層セラミックコンデンサです。
昼間にデータを受信しながら見ていると、1号機と2号機が交互にデータを送ってきて、まるで追いかけっこをしているようにも見えました。
どちらも同じ60秒ごとの送信ですが、同期はしていませんからそのタイミングは微妙にずれてきます。
だいたい18時半過ぎまで2号機はデータを送ってきていました。
電源電圧も同時にデータを送ってきていますから、毎回見るたびに下がっているのがわかるのです。けなげに良く働くものです。
最後まで絞りきってしまったところでお疲れ様でお休み~、明日(日の出まで)またね~という感じ。
ポリウレタン銅線(UEW)
2025.03.25
ユニバーサル基板の配線は、
最初の頃、適当なビニール線を使ってつないでいた。でも、太いからかさばってじゃまになる。
次にスズメッキ線を使ったが、裸線なので交差するような場所にはそのままでは使えない。出番は、電源の引き回しぐらい。
それからラッピング線を使い始めて、これはまあまあ良かった。
学生の頃にマイコン自作の本を買ってみたら、「ワイヤリングペン」というものが紹介されていた。
それに使われている細い線がUEWというものでポリウレタン銅線でした。
小学生の頃、電磁石の実験でおなじみだったエナメル線とは似て非なるものらしい。
エナメル線は紙やすりやマイナスドライバー(あるいはカッターナイフの背)でゴシゴシやって塗装を落とし、銅をむきだしにしてから接続していた。
一方、UEWは削っても良いが、ハンダゴテで加熱すると塗装が融けてくるので便利という。
マイコンにはバス配線が多い。たとえばデータバス。CPU、ROM、RAM、8255といった具合にデータバスを並列につなぐ必要がある。
同じ場所にビニール線を2本つけようとしても、はんだごてで加熱した時に片方のハンダが融けて浮いてしまったりする。(そこで、長めにむいてから巻き付けたりした)
UEW線の場合、接続したいピンに細い線を巻き付けていけば良い。途中で切らない。クルッと巻いて、次へ。
それからはんだごてで加熱してハンダを流すと、塗装が融けてハンダがなじんで接続される。
これがラッピング線だったら、被覆を剥いてピンにひっかけてはんだ付けして、余分を切って、次の接続箇所へ、また被覆を剥いてピンにひっかけてはんだ付け。
ワイヤーストリッパーを持ったり置いたりニッパーに持ち替えたりハンダゴテを持ち替えたりして忙しい。
本を読み、こりゃー画期的なものじゃないか、と思ってパーツ屋に行ったら売られていたわけ。それで買ってきて試した。学生時代ね。
ところが、言われているように簡単には融けない。おかしいなあ。相当加熱したら融けたけど、これじゃソケットが融けたりしないか、基板を傷めたりしないか、という感じ。
当時使っていたハンダゴテがだめだったのかもしれないけど・・・
これで接続不良が起きてトラブったらたまらんと思って、使うのをやめた。
なーんだこりゃーと放り投げて、結局その後も捨てずに持っていた(今でも有る)。

いま改めてハンダゴテを当ててみたら、いとも簡単に塗装が融けた!
やっぱり当時のハンダゴテがショボかったか。
こて先はC面(斜めカット)が良い。熱が伝わりやすい。
先日の話、たまたま手に入れたワイヤーがUEWだったのでした。
また削るのか面倒だな~と思ってハンダゴテを当ててみたら、あれっ、容易に塗装が融けるぞ!
なんだ、これくらいだったらどんどん使ったのになあと思えるぐらい。
(だけど、塗装を焼く臭いがくさい。身体に悪そうな臭いがする。部屋に染み込む臭い。換気を良くして使おう)
でも、これくらい容易に塗装が融けるなら実用性がある。だけど今さらという感じ。めったにユニバーサル基板で回路を組むことは少なくなった。残念。
なおUEWなどは本来ユニバーサル基板の配線専用じゃなくて、マグネットワイヤーといってモーターやトランスの巻線用に作られたもの。
最初の頃、適当なビニール線を使ってつないでいた。でも、太いからかさばってじゃまになる。
次にスズメッキ線を使ったが、裸線なので交差するような場所にはそのままでは使えない。出番は、電源の引き回しぐらい。
それからラッピング線を使い始めて、これはまあまあ良かった。
学生の頃にマイコン自作の本を買ってみたら、「ワイヤリングペン」というものが紹介されていた。
それに使われている細い線がUEWというものでポリウレタン銅線でした。
小学生の頃、電磁石の実験でおなじみだったエナメル線とは似て非なるものらしい。
エナメル線は紙やすりやマイナスドライバー(あるいはカッターナイフの背)でゴシゴシやって塗装を落とし、銅をむきだしにしてから接続していた。
一方、UEWは削っても良いが、ハンダゴテで加熱すると塗装が融けてくるので便利という。
マイコンにはバス配線が多い。たとえばデータバス。CPU、ROM、RAM、8255といった具合にデータバスを並列につなぐ必要がある。
同じ場所にビニール線を2本つけようとしても、はんだごてで加熱した時に片方のハンダが融けて浮いてしまったりする。(そこで、長めにむいてから巻き付けたりした)
UEW線の場合、接続したいピンに細い線を巻き付けていけば良い。途中で切らない。クルッと巻いて、次へ。
それからはんだごてで加熱してハンダを流すと、塗装が融けてハンダがなじんで接続される。
これがラッピング線だったら、被覆を剥いてピンにひっかけてはんだ付けして、余分を切って、次の接続箇所へ、また被覆を剥いてピンにひっかけてはんだ付け。
ワイヤーストリッパーを持ったり置いたりニッパーに持ち替えたりハンダゴテを持ち替えたりして忙しい。
本を読み、こりゃー画期的なものじゃないか、と思ってパーツ屋に行ったら売られていたわけ。それで買ってきて試した。学生時代ね。
ところが、言われているように簡単には融けない。おかしいなあ。相当加熱したら融けたけど、これじゃソケットが融けたりしないか、基板を傷めたりしないか、という感じ。
当時使っていたハンダゴテがだめだったのかもしれないけど・・・
これで接続不良が起きてトラブったらたまらんと思って、使うのをやめた。
なーんだこりゃーと放り投げて、結局その後も捨てずに持っていた(今でも有る)。

いま改めてハンダゴテを当ててみたら、いとも簡単に塗装が融けた!
やっぱり当時のハンダゴテがショボかったか。
こて先はC面(斜めカット)が良い。熱が伝わりやすい。
先日の話、たまたま手に入れたワイヤーがUEWだったのでした。
また削るのか面倒だな~と思ってハンダゴテを当ててみたら、あれっ、容易に塗装が融けるぞ!
なんだ、これくらいだったらどんどん使ったのになあと思えるぐらい。
(だけど、塗装を焼く臭いがくさい。身体に悪そうな臭いがする。部屋に染み込む臭い。換気を良くして使おう)
でも、これくらい容易に塗装が融けるなら実用性がある。だけど今さらという感じ。めったにユニバーサル基板で回路を組むことは少なくなった。残念。
なおUEWなどは本来ユニバーサル基板の配線専用じゃなくて、マグネットワイヤーといってモーターやトランスの巻線用に作られたもの。